Documentation

TauCeti.LinearAlgebra.IntegralLattice.Basic

Integral symmetric lattices #

An integral symmetric lattice in a rational vector space consists of a full finitely generated ℤ-submodule together with a symmetric ℚ-bilinear form whose values on the lattice are integers. The integrality condition is expressed using Mathlib's LinearMap.BilinForm.dualSubmodule: the carrier is contained in its dual submodule.

The form restricts to a canonical ℤ-bilinear form on the carrier. Conversely, a finite ℚ-basis and an integral symmetric Gram matrix construct an integral lattice.

References #

Main definitions #

An integral symmetric lattice in a rational vector space.

The field le_dual says exactly that the form takes integer values on pairs of vectors in carrier.

Instances For

    The carrier of an integral lattice is a Mathlib lattice.

    @[instance_reducible]

    An integral lattice coerces to the type of its vectors.

    Equations
    @[instance_reducible]

    An integral lattice coerces to its rational bilinear form.

    Equations
    @[simp]
    theorem TauCeti.IntegralLattice.coe_form_apply {V : Type u} [AddCommGroup V] [Module ℚ V] (L : IntegralLattice V) (x y : V) :
    (fun (x y : V) => (L.form x) y) x y = (L.form x) y
    @[simp]

    The flipped rational bilinear form of an integral lattice equals the form itself.

    theorem TauCeti.IntegralLattice.form_mem_one {V : Type u} [AddCommGroup V] [Module ℚ V] (L : IntegralLattice V) (x y : ↥L.carrier) :
    (L.form ↑x) ↑y ∈ 1

    The value of the rational form on lattice vectors is integral.

    Every ambient submodule contained in the carrier is integral for the lattice form.

    The chosen ℤ-basis of an integral lattice extends to a ℚ-basis of the ambient space.

    Equations
    Instances For

      The ambient rational vector space of an integral lattice is finite-dimensional.

      The ℤ-finrank of the carrier of an integral lattice equals the ℚ-finrank of the ambient space.

      theorem TauCeti.IntegralLattice.ext {V : Type u} [AddCommGroup V] [Module ℚ V] {L M : IntegralLattice V} (hcarrier : L.carrier = M.carrier) (hform : L.form = M.form) :
      L = M

      Two integral lattices are equal if their carriers and rational forms are equal.

      An integral lattice is nondegenerate when its ambient rational bilinear form is nondegenerate. This is a mixin rather than a field of IntegralLattice, so degenerate lattices remain objects of the same type.

      Instances

        The ambient form of a nondegenerate integral lattice is nondegenerate.

        The integral bilinear form induced on the carrier.

        This is the integral-valued restriction of L.form, obtained from Mathlib's canonical pairing between a submodule and its dual submodule.

        Equations
        Instances For
          @[simp]
          theorem TauCeti.IntegralLattice.integralForm_cast {V : Type u} [AddCommGroup V] [Module ℚ V] (L : IntegralLattice V) (x y : ↥L.carrier) :
          ↑((L.integralForm x) y) = (L.form ↑x) ↑y

          The integral form recovers the rational form after coercion to ℚ.

          The induced integral form is symmetric.

          Construct an integral lattice from a full submodule, a symmetric rational bilinear form, and an integrality proof.

          Equations
          Instances For
            @[simp]

            The ℤ-span of a finite rational basis is a Mathlib lattice.

            noncomputable def TauCeti.IntegralLattice.ofBasis {V : Type u} [AddCommGroup V] [Module ℚ V] {ι : Type u_1} [Finite ι] (b : Module.Basis ι ℚ V) (B : LinearMap.BilinForm ℚ V) (hB : B.IsSymm) (hint : ∀ (i j : ι), (B (b i)) (b j) ∈ 1) :

            A symmetric rational form that is integral on basis vectors defines an integral lattice.

            The carrier is the ℤ-span of the basis. Bilinearity propagates the integral-value hypothesis from basis vectors to their integral span.

            Equations
            Instances For
              @[simp]
              theorem TauCeti.IntegralLattice.ofBasis_carrier {V : Type u} [AddCommGroup V] [Module ℚ V] {ι : Type u_1} [Finite ι] (b : Module.Basis ι ℚ V) (B : LinearMap.BilinForm ℚ V) (hB : B.IsSymm) (hint : ∀ (i j : ι), (B (b i)) (b j) ∈ 1) :
              @[simp]
              theorem TauCeti.IntegralLattice.ofBasis_form {V : Type u} [AddCommGroup V] [Module ℚ V] {ι : Type u_1} [Finite ι] (b : Module.Basis ι ℚ V) (B : LinearMap.BilinForm ℚ V) (hB : B.IsSymm) (hint : ∀ (i j : ι), (B (b i)) (b j) ∈ 1) :
              (ofBasis b B hB hint).form = B
              noncomputable def TauCeti.IntegralLattice.ofBasis.basis {V : Type u} [AddCommGroup V] [Module ℚ V] {ι : Type u_1} [Finite ι] (b : Module.Basis ι ℚ V) (B : LinearMap.BilinForm ℚ V) (hB : B.IsSymm) (hint : ∀ (i j : ι), (B (b i)) (b j) ∈ 1) :
              Module.Basis ι ℤ ↥(ofBasis b B hB hint).carrier

              The canonical carrier basis of ofBasis b B hB hint induced by b.

              Equations
              Instances For
                @[simp]
                theorem TauCeti.IntegralLattice.ofBasis.coe_basis {V : Type u} [AddCommGroup V] [Module ℚ V] {ι : Type u_1} [Finite ι] (b : Module.Basis ι ℚ V) (B : LinearMap.BilinForm ℚ V) (hB : B.IsSymm) (hint : ∀ (i j : ι), (B (b i)) (b j) ∈ 1) (i : ι) :
                ↑((basis b B hB hint) i) = b i
                noncomputable def TauCeti.IntegralLattice.ofGramMatrix {V : Type u} [AddCommGroup V] [Module ℚ V] {ι : Type u_1} [Fintype ι] (b : Module.Basis ι ℚ V) (G : Matrix ι ι ℤ) (hG : G.IsSymm) :

                Construct an integral lattice from a finite rational basis and an integral symmetric Gram matrix.

                Equations
                Instances For
                  @[simp]
                  theorem TauCeti.IntegralLattice.ofGramMatrix_carrier {V : Type u} [AddCommGroup V] [Module ℚ V] {ι : Type u_1} [Fintype ι] (b : Module.Basis ι ℚ V) (G : Matrix ι ι ℤ) (hG : G.IsSymm) :
                  @[simp]
                  theorem TauCeti.IntegralLattice.ofGramMatrix_form {V : Type u} [AddCommGroup V] [Module ℚ V] {ι : Type u_1} [Fintype ι] (b : Module.Basis ι ℚ V) (G : Matrix ι ι ℤ) (hG : G.IsSymm) :
                  noncomputable def TauCeti.IntegralLattice.ofGramMatrix.basis {V : Type u} [AddCommGroup V] [Module ℚ V] {ι : Type u_1} [Fintype ι] (b : Module.Basis ι ℚ V) (G : Matrix ι ι ℤ) (hG : G.IsSymm) :

                  The canonical carrier basis of ofGramMatrix b G hG induced by b.

                  Equations
                  Instances For
                    @[simp]
                    theorem TauCeti.IntegralLattice.ofGramMatrix.coe_basis {V : Type u} [AddCommGroup V] [Module ℚ V] {ι : Type u_1} [Fintype ι] (b : Module.Basis ι ℚ V) (G : Matrix ι ι ℤ) (hG : G.IsSymm) (i : ι) :
                    ↑((basis b G hG) i) = b i
                    @[simp]
                    theorem TauCeti.IntegralLattice.integralForm_ofGramMatrix_apply {V : Type u} [AddCommGroup V] [Module ℚ V] {ι : Type u_1} [Fintype ι] (b : Module.Basis ι ℚ V) (G : Matrix ι ι ℤ) (hG : G.IsSymm) (i j : ι) :
                    ((ofGramMatrix b G hG).integralForm ((ofGramMatrix.basis b G hG) i)) ((ofGramMatrix.basis b G hG) j) = G i j

                    Evaluating the induced integral form of ofGramMatrix on embedded basis vectors recovers the corresponding entry of the Gram matrix.