Bilinear form and linear maps #
This file describes the relation between bilinear forms and linear maps.
TODO #
A lot of this file is now redundant following the replacement of the dedicated _root_.BilinForm
structure with LinearMap.BilinForm
, which is just an alias for M →ₗ[R] M →ₗ[R] R
. For example
LinearMap.BilinForm.toLinHom
is now just the identity map. This redundant code should be removed.
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
- A.toLinHomAux₁ x = A x
Instances For
Auxiliary definition to define toLinHom
; see below.
Equations
- A.toLinHomAux₂ = A
Instances For
The linear map obtained from a BilinForm
by fixing the left co-ordinate and evaluating in
the right.
Equations
- LinearMap.BilinForm.toLinHom = LinearMap.id
Instances For
The linear map obtained from a BilinForm
by fixing the right co-ordinate and evaluating in
the left.
Equations
- LinearMap.BilinForm.toLinHomFlip = ↑LinearMap.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
- f.toBilinAux = f
Instances For
Bilinear forms are linearly equivalent to maps with two arguments that are linear in both.
Equations
- LinearMap.BilinForm.toLin = { toLinearMap := LinearMap.BilinForm.toLinHom, 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 = LinearMap.BilinForm.toLin.symm
Instances For
Apply a linear map on the output of a bilinear form.
Equations
- f.compBilinForm B = (LinearMap.restrictScalars₁₂ R' R' B).compr₂ f
Instances For
Apply a linear map on the left and right argument of a bilinear form.
Equations
- B.comp l r = LinearMap.compl₁₂ B l r
Instances For
Apply a linear map to the left argument of a bilinear form.
Equations
- B.compLeft f = B.comp f LinearMap.id
Instances For
Apply a linear map to the right argument of a bilinear form.
Equations
- B.compRight f = B.comp LinearMap.id f
Instances For
Apply a linear equivalence on the arguments of a bilinear form.
Equations
- LinearMap.BilinForm.congr e = (LinearEquiv.congrLeft R R e).congrRight.trans (LinearEquiv.congrLeft (M' →ₗ[R] R) R e)
Instances For
When N₁
and N₂
are equivalent, bilinear maps on M
into N₁
are equivalent to bilinear
maps into N₂
.
Equations
- e.congrRight₂ = e.congrRight.congrRight
Instances For
linMulLin f g
is the bilinear form mapping x
and y
to f x * g y
Equations
- LinearMap.BilinForm.linMulLin f g = (LinearMap.mul R R).compl₁₂ f g
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.