Documentation

Mathlib.LinearAlgebra.BilinearForm.DualLattice

Dual submodule with respect to a bilinear form. #

Main definitions and results #

TODO #

Properly develop the material in the context of lattices.

def BilinForm.dualSubmodule {R : Type u_1} {S : Type u_2} {M : Type u_3} [CommRing R] [Field S] [AddCommGroup M] [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M] (B : BilinForm S M) (N : Submodule R M) :

The dual submodule of a submodule with respect to a bilinear form.

Equations
  • BilinForm.dualSubmodule B N = { toAddSubmonoid := { toAddSubsemigroup := { carrier := {x : M | yN, B.bilin x y 1}, add_mem' := }, zero_mem' := }, smul_mem' := }
Instances For
    theorem BilinForm.mem_dualSubmodule {R : Type u_1} {S : Type u_3} {M : Type u_2} [CommRing R] [Field S] [AddCommGroup M] [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M] (B : BilinForm S M) {N : Submodule R M} {x : M} :
    x BilinForm.dualSubmodule B N yN, B.bilin x y 1
    theorem BilinForm.le_flip_dualSubmodule {R : Type u_1} {S : Type u_3} {M : Type u_2} [CommRing R] [Field S] [AddCommGroup M] [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M] (B : BilinForm S M) {N₁ : Submodule R M} {N₂ : Submodule R M} :
    N₁ BilinForm.dualSubmodule (BilinForm.flip B) N₂ N₂ BilinForm.dualSubmodule B N₁
    noncomputable def BilinForm.dualSubmoduleParing {R : Type u_1} {S : Type u_2} {M : Type u_3} [CommRing R] [Field S] [AddCommGroup M] [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M] (B : BilinForm S M) {N : Submodule R M} (x : (BilinForm.dualSubmodule B N)) (y : N) :
    R

    The natural paring of B.dualSubmodule N and N. This is bundled as a bilinear map in BilinForm.dualSubmoduleToDual.

    Equations
    Instances For
      @[simp]
      theorem BilinForm.dualSubmoduleParing_spec {R : Type u_1} {S : Type u_3} {M : Type u_2} [CommRing R] [Field S] [AddCommGroup M] [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M] (B : BilinForm S M) {N : Submodule R M} (x : (BilinForm.dualSubmodule B N)) (y : N) :
      (algebraMap R S) (BilinForm.dualSubmoduleParing B x y) = B.bilin x y
      @[simp]
      theorem BilinForm.dualSubmoduleToDual_apply_apply {R : Type u_1} {S : Type u_2} {M : Type u_3} [CommRing R] [Field S] [AddCommGroup M] [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M] (B : BilinForm S M) [NoZeroSMulDivisors R S] (N : Submodule R M) (x : (BilinForm.dualSubmodule B N)) (y : N) :
      noncomputable def BilinForm.dualSubmoduleToDual {R : Type u_1} {S : Type u_2} {M : Type u_3} [CommRing R] [Field S] [AddCommGroup M] [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M] (B : BilinForm S M) [NoZeroSMulDivisors R S] (N : Submodule R M) :

      The natural paring of B.dualSubmodule N and N.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem BilinForm.dualSubmodule_span_of_basis {R : Type u_4} {S : Type u_3} {M : Type u_2} [CommRing R] [Field S] [AddCommGroup M] [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M] (B : BilinForm S M) {ι : Type u_1} [Finite ι] [DecidableEq ι] (hB : BilinForm.Nondegenerate B) (b : Basis ι S M) :
        theorem BilinForm.dualSubmodule_dualSubmodule_flip_of_basis {R : Type u_4} {S : Type u_3} {M : Type u_2} [CommRing R] [Field S] [AddCommGroup M] [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M] (B : BilinForm S M) {ι : Type u_1} [Finite ι] (hB : BilinForm.Nondegenerate B) (b : Basis ι S M) :
        theorem BilinForm.dualSubmodule_flip_dualSubmodule_of_basis {R : Type u_4} {S : Type u_3} {M : Type u_2} [CommRing R] [Field S] [AddCommGroup M] [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M] (B : BilinForm S M) {ι : Type u_1} [Finite ι] (hB : BilinForm.Nondegenerate B) (b : Basis ι S M) :