Dual submodules of lattices #
This file develops the duality theory for free full lattices in vector spaces equipped with a nondegenerate bilinear form over a fraction field.
Main declarations #
LinearMap.BilinForm.dualSubmoduleToDual_surjective: surjectivity ofdualSubmoduleToDualfor a free full lattice and nondegenerate bilinear form.LinearMap.BilinForm.dualSubmoduleEquivDual: the perfect linear equivalenceB.dualSubmodule N ≃ₗ[R] Module.Dual R N.LinearMap.BilinForm.dualSubmoduleEquivDual_apply: evaluation ofdualSubmoduleEquivDualisB.dualSubmoduleToDual N.LinearMap.BilinForm.dualSubmodule_dualSubmodule_flip: double duality for general full lattices usingB.flip.LinearMap.BilinForm.dualSubmodule_flip_dualSubmodule: double duality for general full lattices withB.flipon the outside.
theorem
LinearMap.BilinForm.dualSubmoduleToDual_surjective
{R : Type u_1}
{K : Type u_2}
{V : Type u_3}
[CommRing R]
[IsDomain R]
[Field K]
[Algebra R K]
[IsFractionRing R K]
[Module.IsTorsionFree R K]
[AddCommGroup V]
[Module R V]
[Module K V]
[IsScalarTower R K V]
(B : LinearMap.BilinForm K V)
(hB : B.Nondegenerate)
(N : Submodule R V)
[Submodule.IsLattice K N]
[Module.Free R ↥N]
:
Surjectivity of Mathlib's canonical pairing dualSubmoduleToDual for a free full lattice
and a nondegenerate bilinear form.
noncomputable def
LinearMap.BilinForm.dualSubmoduleEquivDual
{R : Type u_1}
{K : Type u_2}
{V : Type u_3}
[CommRing R]
[IsDomain R]
[Field K]
[Algebra R K]
[IsFractionRing R K]
[Module.IsTorsionFree R K]
[AddCommGroup V]
[Module R V]
[Module K V]
[IsScalarTower R K V]
(B : LinearMap.BilinForm K V)
(hB : B.Nondegenerate)
(N : Submodule R V)
[hN : Submodule.IsLattice K N]
[Module.Free R ↥N]
:
The canonical pairing between the dual submodule of a free full lattice and the lattice
itself is a linear equivalence over R whenever the ambient bilinear form is nondegenerate.
Equations
- B.dualSubmoduleEquivDual hB N = LinearEquiv.ofBijective (B.dualSubmoduleToDual N) ⋯
Instances For
@[simp]
theorem
LinearMap.BilinForm.dualSubmoduleEquivDual_apply
{R : Type u_1}
{K : Type u_2}
{V : Type u_3}
[CommRing R]
[IsDomain R]
[Field K]
[Algebra R K]
[IsFractionRing R K]
[Module.IsTorsionFree R K]
[AddCommGroup V]
[Module R V]
[Module K V]
[IsScalarTower R K V]
(B : LinearMap.BilinForm K V)
(hB : B.Nondegenerate)
(N : Submodule R V)
[Submodule.IsLattice K N]
[Module.Free R ↥N]
(x : ↥(B.dualSubmodule N))
:
The underlying linear map of dualSubmoduleEquivDual is B.dualSubmoduleToDual N.
theorem
LinearMap.BilinForm.dualSubmodule_dualSubmodule_flip
{R : Type u_1}
{K : Type u_2}
{V : Type u_3}
[CommRing R]
[Field K]
[Algebra R K]
[IsFractionRing R K]
[AddCommGroup V]
[Module R V]
[Module K V]
[IsScalarTower R K V]
(B : LinearMap.BilinForm K V)
(hB : B.Nondegenerate)
(N : Submodule R V)
[Submodule.IsLattice K N]
[Module.Free R ↥N]
:
Dualizing by B.flip and then by B recovers the original free full lattice.
theorem
LinearMap.BilinForm.dualSubmodule_flip_dualSubmodule
{R : Type u_1}
{K : Type u_2}
{V : Type u_3}
[CommRing R]
[Field K]
[Algebra R K]
[IsFractionRing R K]
[AddCommGroup V]
[Module R V]
[Module K V]
[IsScalarTower R K V]
(B : LinearMap.BilinForm K V)
(hB : B.Nondegenerate)
(N : Submodule R V)
[Submodule.IsLattice K N]
[Module.Free R ↥N]
:
Dualizing by B and then by B.flip recovers the original free full lattice.