Documentation

TauCeti.LinearAlgebra.IntegralLattice.ConstructionA.CoordinateDiscriminant

The coordinate alphabet as the discriminant module of m ℤ^ι #

Construction A applied to the zero code produces the lattice L₀ with carrier m ℤ^ι inside ℚ^ι and form B_m (x, y) = (∑ i, xᵢ yᵢ) / m. Its dual carrier is the full integer coordinate lattice ℤ^ι, so its discriminant group is ℤ^ι / m ℤ^ι, which reduction modulo m identifies with the word space (ℤ/m)^ι.

This file exhibits that identification as an isometry of finite bilinear modules

A_{L₀} ≅ (ℤ/m)^ι,

where the right-hand side is the coordinate power of the standard alphabet TauCeti.FiniteBilinearModule.zmodStandard, whose pairing is xy / m. The class of an integer vector z goes to its coordinatewise reduction, and the discriminant pairing of two such classes is (∑ i, zᵢ wᵢ) / m modulo ℤ. When m is even, L₀ is an even lattice and the same map is an isometry of finite quadratic modules for the half-norm convention: the discriminant quadratic value of the class of z is (∑ i, zᵢ²) / (2m) modulo ℤ.

Through this identification an additive code over ℤ/m is literally a subgroup of the discriminant module of an integral lattice, which is the form in which codes feed the isotropic-subgroup and gluing constructions for lattices.

References #

The zero-code lattice and its dual carrier #

The Construction A lattice of the zero code: the lattice L₀ with carrier m ℤ^ι in ℚ^ι, carrying the normalized form B_m.

Its dual carrier is the full integer coordinate lattice, and its discriminant module is the coordinate alphabet in which codes over ℤ/m live.

Instances For
    @[simp]
    theorem TauCeti.ConstructionA.zeroLattice_form (m : ℕ) [NeZero m] (ι : Type u_1) [Fintype ι] :
    @[simp]
    theorem TauCeti.ConstructionA.intCast_mem_zeroLattice_carrier_iff (m : ℕ) [NeZero m] (ι : Type u_1) [Fintype ι] (z : ι → ℤ) :
    (fun (i : ι) => ↑(z i)) ∈ (zeroLattice m ι).carrier ↔ ∀ (i : ι), ↑m ∣ z i

    The carrier of the zero-code lattice is m ℤ^ι: an integer vector lies in it exactly when m divides each of its coordinates.

    @[simp]

    The dual carrier of the zero-code lattice is ℤ^ι, the Construction A carrier of the whole word space.

    theorem TauCeti.ConstructionA.mem_zeroLattice_dualCarrier_iff (m : ℕ) [NeZero m] (ι : Type u_1) [Fintype ι] {x : ι → ℚ} :
    x ∈ (zeroLattice m ι).dualCarrier ↔ ∃ (z : ι → ℤ), (fun (i : ι) => ↑(z i)) = x

    A rational vector is dual to the zero-code lattice exactly when it has integer coordinates.

    noncomputable def TauCeti.ConstructionA.dualCarrierIntEquiv (m : ℕ) [NeZero m] (ι : Type u_1) [Fintype ι] :

    The dual carrier of the zero-code lattice is the integer coordinate lattice, presented as a ℤ-linear equivalence with ℤ^ι given by the coordinatewise integer cast.

    Instances For
      @[simp]
      theorem TauCeti.ConstructionA.coe_dualCarrierIntEquiv_apply (m : ℕ) [NeZero m] (ι : Type u_1) [Fintype ι] (z : ι → ℤ) :
      ↑((dualCarrierIntEquiv m ι) z) = fun (i : ι) => ↑(z i)

      The discriminant group as the word space over ℤ/m #

      noncomputable def TauCeti.ConstructionA.discriminantEquiv (m : ℕ) [NeZero m] (ι : Type u_1) [Fintype ι] :

      Reduction modulo m identifies the discriminant group of the zero-code lattice with the word space (ℤ/m)^ι.

      Instances For
        @[simp]
        theorem TauCeti.ConstructionA.discriminantEquiv_mk_intCast (m : ℕ) [NeZero m] (ι : Type u_1) [Fintype ι] (z : ι → ℤ) :
        (discriminantEquiv m ι) (Submodule.Quotient.mk ((dualCarrierIntEquiv m ι) z)) = fun (i : ι) => ↑(z i)

        The discriminant class of an integer vector goes to its coordinatewise reduction modulo m.

        theorem TauCeti.ConstructionA.discriminantEquiv_mk_of_intCast (m : ℕ) [NeZero m] (ι : Type u_1) [Fintype ι] (z : ι → ℤ) (hz : (fun (i : ι) => ↑(z i)) ∈ (zeroLattice m ι).dualCarrier) :
        (discriminantEquiv m ι) (Submodule.Quotient.mk ⟨fun (i : ι) => ↑(z i), hz⟩) = fun (i : ι) => ↑(z i)

        Reduction of a quotient representative whose underlying dual vector has integer coordinates. This form is independent of the proof that the displayed vector belongs to the dual carrier.

        @[simp]
        theorem TauCeti.ConstructionA.discriminantEquiv_symm_intCast (m : ℕ) [NeZero m] (ι : Type u_1) [Fintype ι] (z : ι → ℤ) :
        ((discriminantEquiv m ι).symm fun (i : ι) => ↑(z i)) = Submodule.Quotient.mk ((dualCarrierIntEquiv m ι) z)

        The inverse identification sends a word to the discriminant class of any coordinatewise integer lift.

        theorem TauCeti.ConstructionA.zeroLattice_discriminantPairing_mk_intCast (m : ℕ) [NeZero m] (ι : Type u_1) [Fintype ι] (z w : ι → ℤ) :
        ((zeroLattice m ι).discriminantPairing (Submodule.Quotient.mk ((dualCarrierIntEquiv m ι) z))) (Submodule.Quotient.mk ((dualCarrierIntEquiv m ι) w)) = ↑((∑ i : ι, ↑(z i) * ↑(w i)) / ↑m)

        The discriminant pairing of the zero-code lattice is the normalized dot product of integer lifts, (∑ i, zᵢ wᵢ) / m modulo ℤ.

        The discriminant module of the zero-code lattice is the coordinate alphabet over ℤ/m.

        The underlying equivalence is reduction modulo m of integer coordinates.

        Instances For

          The quadratic refinement for an even modulus #

          theorem TauCeti.ConstructionA.isEven_zeroLattice (m : ℕ) [NeZero m] (ι : Type u_1) [Fintype ι] (hm : Even m) :

          Over an even modulus the zero-code lattice is even: the code ⊥ is quadratically isotropic for the coordinate alphabet.

          theorem TauCeti.ConstructionA.zeroLattice_discriminantQuadraticMap_mk_intCast (m : ℕ) [NeZero m] (ι : Type u_1) [Fintype ι] (hm : Even m) (z : ι → ℤ) :
          ((zeroLattice m ι).discriminantQuadraticMap ⋯) (Submodule.Quotient.mk ((dualCarrierIntEquiv m ι) z)) = ↑((∑ i : ι, ↑(z i) ^ 2) / (2 * ↑m))

          The discriminant quadratic value of the zero-code lattice is the normalized sum of squares of an integer lift, (∑ i, zᵢ²) / (2m) modulo ℤ.

          Over an even modulus the discriminant quadratic module of the zero-code lattice is the quadratic coordinate alphabet over ℤ/m, in the half-norm convention.

          Instances For
            @[simp]

            Forgetting the quadratic map from the even-modulus isometry recovers the bilinear identification of the discriminant module with the coordinate alphabet.