Bilinear form #
This file defines a bilinear form over a module. Basic ideas such as orthogonality are also introduced, as well as reflexive, symmetric, non-degenerate and alternating bilinear forms. Adjoints of linear maps with respect to a bilinear form are also introduced.
A bilinear form on an R
-(semi)module M
, is a function from M × M
to R
,
that is linear in both arguments. Comments will typically abbreviate
"(semi)module" as just "module", but the definitions should be as general as
possible.
The result that there exists an orthogonal basis with respect to a symmetric,
nondegenerate bilinear form can be found in QuadraticForm.lean
with
exists_orthogonal_basis
.
Notations #
Given any term B
of type BilinForm
, due to a coercion, can use
the notation B x y
to refer to the function field, ie. B x y = B.bilin x y
.
In this file we use the following type variables:
M
,M'
, ... are modules over the commutative semiringR
,M₁
,M₁'
, ... are modules over the commutative ringR₁
,V
, ... is a vector space over the fieldK
.
References #
Tags #
Bilinear form,
coeFn
as an AddMonoidHom
Equations
- LinearMap.BilinForm.coeFnAddMonoidHom = { toFun := fun (B : LinearMap.BilinForm R M) (x y : M) => (B x) y, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Auxiliary construction for the flip of a bilinear form, obtained by exchanging the left and
right arguments. This version is a LinearMap
; it is later upgraded to a LinearEquiv
in flipHom
.
Equations
- LinearMap.BilinForm.flipHomAux = { toFun := fun (A : LinearMap.BilinForm R M) => LinearMap.flip A, map_add' := ⋯, map_smul' := ⋯ }
Instances For
The flip of a bilinear form, obtained by exchanging the left and right arguments.
Equations
- LinearMap.BilinForm.flipHom = { toLinearMap := LinearMap.BilinForm.flipHomAux, invFun := ⇑LinearMap.BilinForm.flipHomAux, left_inv := ⋯, right_inv := ⋯ }
Instances For
The flip
of a bilinear form over a commutative ring, obtained by exchanging the left and
right arguments.
Equations
- B.flip = LinearMap.BilinForm.flipHom B
Instances For
The restriction of a bilinear form on a submodule.
Equations
- B.restrict W = LinearMap.domRestrict₁₂ B W W