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 semiringR
,M₁
,M₁'
, ... are modules over the ringR₁
,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,
- bilin : M → M → R
- bilin_add_left : ∀ (x y z : M), BilinForm.bilin s (x + y) z = BilinForm.bilin s x z + BilinForm.bilin s y z
- bilin_smul_left : ∀ (a : R) (x y : M), BilinForm.bilin s (a • x) y = a * BilinForm.bilin s x y
- bilin_add_right : ∀ (x y z : M), BilinForm.bilin s x (y + z) = BilinForm.bilin s x y + BilinForm.bilin s x z
- bilin_smul_right : ∀ (a : R) (x y : M), BilinForm.bilin s x (a • y) = a * BilinForm.bilin s x y
BilinForm R M
is the type of R
-bilinear functions M → M → R
.
Instances For
Equations
- BilinForm.instCoeFunBilinFormForAll = { coe := BilinForm.bilin }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
BilinForm R M
inherits the scalar action by α
on R
if this is compatible with
multiplication.
When R
itself is commutative, this provides an R
-action via Algebra.id
.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- BilinForm.instInhabitedBilinForm = { default := 0 }
coeFn
as an AddMonoidHom
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
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
- One or more equations did not get rendered due to their size.
Instances For
The flip of a bilinear form, obtained by exchanging the left and right arguments. This is a
less structured version of the equiv which applies to general (noncommutative) rings R
with a
distinguished commutative subring R₂
; over a commutative ring use flip
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The flip of a bilinear form over a ring, obtained by exchanging the left and right arguments,
here considered as an ℕ
-linear equivalence, i.e. an additive equivalence.
Equations
- BilinForm.flip' = BilinForm.flipHom ℕ
Instances For
The flip
of a bilinear form over a commutative ring, obtained by exchanging the left and
right arguments.
Equations
- BilinForm.flip = BilinForm.flipHom R₂
Instances For
Auxiliary definition to define toLinHom
; see below.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The linear map obtained from a BilinForm
by fixing the left co-ordinate and evaluating in
the right.
This is the most general version of the construction; it is R₂
-linear for some distinguished
commutative subsemiring R₂
of the scalar ring. Over a semiring with no particular distinguished
such subsemiring, use toLin'
, which is ℕ
-linear. Over a commutative semiring, use toLin
,
which is linear.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The linear map obtained from a BilinForm
by fixing the left co-ordinate and evaluating in
the right.
Over a commutative semiring, use toLin
, which is linear rather than ℕ
-linear.
Equations
- BilinForm.toLin' = BilinForm.toLinHom ℕ
Instances For
The linear map obtained from a BilinForm
by fixing the right co-ordinate and evaluating in
the left.
This is the most general version of the construction; it is R₂
-linear for some distinguished
commutative subsemiring R₂
of the scalar ring. Over semiring with no particular distinguished
such subsemiring, use toLin'Flip
, which is ℕ
-linear. Over a commutative semiring, use
toLinFlip
, which is linear.
Equations
- BilinForm.toLinHomFlip R₂ = LinearMap.comp (BilinForm.toLinHom R₂) ↑(BilinForm.flipHom R₂)
Instances For
The linear map obtained from a BilinForm
by fixing the right co-ordinate and evaluating in
the left.
Over a commutative semiring, use toLinFlip
, which is linear rather than ℕ
-linear.
Equations
- BilinForm.toLin'Flip = BilinForm.toLinHomFlip ℕ
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
- One or more equations did not get rendered due to their size.
Instances For
Bilinear forms are linearly equivalent to maps with two arguments that are linear in both.
Equations
- One or more equations did not get rendered due to their size.
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
- One or more equations did not get rendered due to their size.
Instances For
Apply a linear map on the left and right argument of a bilinear form.
Equations
- One or more equations did not get rendered due to their size.
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
- One or more equations did not get rendered due to their size.
Instances For
The proposition that two elements of a bilinear form space are orthogonal. For orthogonality
of an indexed set of elements, use BilinForm.iIsOrtho
.
Equations
- BilinForm.IsOrtho B x y = (BilinForm.bilin B x y = 0)
Instances For
A set of vectors v
is orthogonal with respect to some bilinear form B
if and only
if for all i ≠ j
, B (v i) (v j) = 0
. For orthogonality between two elements, use
BilinForm.IsOrtho
Equations
- BilinForm.iIsOrtho B v = Pairwise (BilinForm.IsOrtho B on v)
Instances For
A set of orthogonal vectors v
with respect to some bilinear form B
is linearly independent
if for all i
, B (v i) (v i) ≠ 0
.
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.
Reflexivity, symmetry, and alternativity #
The proposition that a bilinear form is reflexive
Equations
- BilinForm.IsRefl B = ∀ (x y : M), BilinForm.bilin B x y = 0 → BilinForm.bilin B y x = 0
Instances For
The proposition that a bilinear form is symmetric
Equations
- BilinForm.IsSymm B = ∀ (x y : M), BilinForm.bilin B x y = BilinForm.bilin B y x
Instances For
The proposition that a bilinear form is alternating
Equations
- BilinForm.IsAlt B = ∀ (x : M), BilinForm.bilin B x x = 0
Instances For
Linear adjoints #
Given a pair of modules equipped with bilinear forms, this is the condition for a pair of maps between them to be mutually adjoint.
Equations
- BilinForm.IsAdjointPair B B' f g = ∀ ⦃x : M⦄ ⦃y : M'⦄, BilinForm.bilin B' (↑f x) y = BilinForm.bilin B x (↑g y)
Instances For
The condition for an endomorphism to be "self-adjoint" with respect to a pair of bilinear forms on the underlying module. In the case that these two forms are identical, this is the usual concept of self adjointness. In the case that one of the forms is the negation of the other, this is the usual concept of skew adjointness.
Equations
- BilinForm.IsPairSelfAdjoint B F f = BilinForm.IsAdjointPair B F f f
Instances For
The set of pair-self-adjoint endomorphisms are a submodule of the type of all endomorphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An endomorphism of a module is self-adjoint with respect to a bilinear form if it serves as an adjoint for itself.
Equations
- BilinForm.IsSelfAdjoint B f = BilinForm.IsAdjointPair B B f f
Instances For
An endomorphism of a module is skew-adjoint with respect to a bilinear form if its negation serves as an adjoint.
Equations
- BilinForm.IsSkewAdjoint B₁ f = BilinForm.IsAdjointPair B₁ B₁ f (-f)
Instances For
The set of self-adjoint endomorphisms of a module with bilinear form is a submodule. (In fact it is a Jordan subalgebra.)
Equations
Instances For
The set of skew-adjoint endomorphisms of a module with bilinear form is a submodule. (In fact it is a Lie subalgebra.)
Equations
Instances For
The orthogonal complement of a submodule N
with respect to some bilinear form is the set of
elements x
which are orthogonal to all elements of N
; i.e., for all y
in N
, B x y = 0
.
Note that for general (neither symmetric nor antisymmetric) bilinear forms this definition has a
chirality; in addition to this "left" orthogonal complement one could define a "right" orthogonal
complement for which, for all y
in N
, B y x = 0
. This variant definition is not currently
provided in mathlib.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a bilinear form B
and some x
such that B x x ≠ 0
, the span of the singleton of x
is complement to its orthogonal complement.
The restriction of a bilinear form on a submodule.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The restriction of a symmetric bilinear form on a submodule is also symmetric.
A nondegenerate bilinear form is a bilinear form such that the only element that is orthogonal
to every other element is 0
; i.e., for all nonzero m
in M
, there exists n
in M
with
B m n ≠ 0
.
Note that for general (neither symmetric nor antisymmetric) bilinear forms this definition has a
chirality; in addition to this "left" nondegeneracy condition one could define a "right"
nondegeneracy condition that in the situation described, B n m ≠ 0
. This variant definition is
not currently provided in mathlib. In finite dimension either definition implies the other.
Equations
- BilinForm.Nondegenerate B = ∀ (m : M), (∀ (n : M), BilinForm.bilin B m n = 0) → m = 0
Instances For
In a non-trivial module, zero is not non-degenerate.
A bilinear form is nondegenerate if and only if it has a trivial kernel.
The restriction of a reflexive bilinear form B
onto a submodule W
is
nondegenerate if Disjoint W (B.orthogonal W)
.
An orthogonal basis with respect to a nondegenerate bilinear form has no self-orthogonal elements.
Given an orthogonal basis with respect to a bilinear form, the bilinear form is nondegenerate iff the basis has no elements which are self-orthogonal.
A subspace is complement to its orthogonal complement with respect to some reflexive bilinear form if that bilinear form restricted on to the subspace is nondegenerate.
A subspace is complement to its orthogonal complement with respect to some reflexive bilinear form if and only if that bilinear form restricted on to the subspace is nondegenerate.
Given a nondegenerate bilinear form B
on a finite-dimensional vector space, B.toDual
is
the linear equivalence between a vector space and its dual with the underlying linear map
B.toLin
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The B
-dual basis B.dualBasis hB b
to a finite basis b
satisfies
B (B.dualBasis hB b i) (b j) = B (b i) (B.dualBasis hB b j) = if i = j then 1 else 0
,
where B
is a nondegenerate (symmetric) bilinear form and b
is a finite basis.
Equations
- BilinForm.dualBasis B hB b = Basis.map (Basis.dualBasis b) (LinearEquiv.symm (BilinForm.toDual B hB))
Instances For
We note that we cannot use BilinForm.restrict_nondegenerate_iff_isCompl_orthogonal
for the
lemma below since the below lemma does not require V
to be finite dimensional. However,
BilinForm.restrict_nondegenerate_iff_isCompl_orthogonal
does not require B
to be nondegenerate
on the whole space.
The restriction of a reflexive, non-degenerate bilinear form on the orthogonal complement of the span of a singleton is also non-degenerate.
Given bilinear forms B₁, B₂
where B₂
is nondegenerate, symmCompOfNondegenerate
is the linear map B₂.toLin⁻¹ ∘ B₁.toLin
.
Equations
- BilinForm.symmCompOfNondegenerate B₁ B₂ b₂ = LinearMap.comp (↑(LinearEquiv.symm (BilinForm.toDual B₂ b₂))) (↑BilinForm.toLin B₁)
Instances For
Given the nondegenerate bilinear form B
and the linear map φ
,
leftAdjointOfNondegenerate
provides the left adjoint of φ
with respect to B
.
The lemma proving this property is BilinForm.isAdjointPairLeftAdjointOfNondegenerate
.
Equations
Instances For
Given the nondegenerate bilinear form B
, the linear map φ
has a unique left adjoint given by
BilinForm.leftAdjointOfNondegenerate
.