Bilinear form and linear maps #
This file describes the relation between bilinear forms and linear maps.
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,
Auxiliary definition to define toLinHom
; see below.
Equations
- BilinForm.toLinHomAux₁ A x = { toAddHom := { toFun := fun (y : M) => A.bilin x y, map_add' := ⋯ }, map_smul' := ⋯ }
Instances For
Auxiliary definition to define toLinHom
; see below.
Equations
- BilinForm.toLinHomAux₂ A = { toAddHom := { toFun := BilinForm.toLinHomAux₁ A, map_add' := ⋯ }, map_smul' := ⋯ }
Instances For
The linear map obtained from a BilinForm
by fixing the left co-ordinate and evaluating in
the right.
Equations
- BilinForm.toLinHom = { toAddHom := { toFun := BilinForm.toLinHomAux₂, map_add' := ⋯ }, map_smul' := ⋯ }
Instances For
The linear map obtained from a BilinForm
by fixing the right co-ordinate and evaluating in
the left.
Equations
- BilinForm.toLinHomFlip = LinearMap.comp BilinForm.toLinHom ↑BilinForm.flipHom
Instances For
A map with two arguments that is linear in both is a bilinear form.
This is an auxiliary definition for the full linear equivalence LinearMap.toBilin
.
Equations
- LinearMap.toBilinAux f = { bilin := fun (x y : M) => (f x) y, bilin_add_left := ⋯, bilin_smul_left := ⋯, bilin_add_right := ⋯, bilin_smul_right := ⋯ }
Instances For
Bilinear forms are linearly equivalent to maps with two arguments that are linear in both.
Equations
- BilinForm.toLin = let __src := BilinForm.toLinHom; { toLinearMap := __src, invFun := LinearMap.toBilinAux, left_inv := ⋯, right_inv := ⋯ }
Instances For
A map with two arguments that is linear in both is linearly equivalent to bilinear form.
Equations
- LinearMap.toBilin = LinearEquiv.symm BilinForm.toLin
Instances For
Apply a linear map on the output of a bilinear form.
Equations
- LinearMap.compBilinForm f B = { bilin := fun (x y : M) => f (B.bilin x y), bilin_add_left := ⋯, bilin_smul_left := ⋯, bilin_add_right := ⋯, bilin_smul_right := ⋯ }
Instances For
Apply a linear map on the left and right argument of a bilinear form.
Equations
- BilinForm.comp B l r = { bilin := fun (x y : M) => B.bilin (l x) (r y), bilin_add_left := ⋯, bilin_smul_left := ⋯, bilin_add_right := ⋯, bilin_smul_right := ⋯ }
Instances For
Apply a linear map to the left argument of a bilinear form.
Equations
- BilinForm.compLeft B f = BilinForm.comp B f LinearMap.id
Instances For
Apply a linear map to the right argument of a bilinear form.
Equations
- BilinForm.compRight B f = BilinForm.comp B LinearMap.id f
Instances For
Apply a linear equivalence on the arguments of a bilinear form.
Equations
- One or more equations did not get rendered due to their size.
Instances For
linMulLin f g
is the bilinear form mapping x
and y
to f x * g y
Equations
- BilinForm.linMulLin f g = { bilin := fun (x y : M) => f x * g y, bilin_add_left := ⋯, bilin_smul_left := ⋯, bilin_add_right := ⋯, bilin_smul_right := ⋯ }
Instances For
Two bilinear forms are equal when they are equal on all basis vectors.
Write out B x y
as a sum over B (b i) (b j)
if b
is a basis.