Scaling and negating integral lattices #
Multiplying the form of an integral lattice by an integer leaves its carrier fixed and preserves
integrality. This file equips integral lattices with that scalar action and computes the induced
integral form, Gram matrix, determinant, discriminant, radical, and signature. Positive scaling
preserves the positive and negative indices of inertia, while negative scaling exchanges them;
negating the form is the special case -1.
The scalar is integral because arbitrary rational scaling need not preserve an integral form. A later development may admit rational scalars together with the necessary integrality hypothesis; the canonical operation internal to integral lattices is the integer action defined here.
Main definitions and results #
TauCeti.IntegralLattice.scale: multiply the rational form by an integer while keeping the carrier fixed.TauCeti.IntegralLattice.instMulActionInt: the integer multiplicative action on integral lattices.TauCeti.IntegralLattice.instInvolutiveNeg: form negation, defined as scaling by-1.TauCeti.IntegralLattice.isEven_neg_iff: form negation preserves evenness.TauCeti.IntegralLattice.gramMatrix_smul: scaling multiplies every Gram-matrix entry.TauCeti.IntegralLattice.determinant_smul: the determinant is multiplied by the scalar to the lattice rank.TauCeti.IntegralLattice.discriminant_smul: the discriminant is multiplied by the absolute scalar to the lattice rank.TauCeti.IntegralLattice.signature_smul_of_posandTauCeti.IntegralLattice.signature_smul_of_neg: scaling preserves or exchanges the two non-null indices according to the sign.TauCeti.IntegralLattice.discriminant_neg: form negation preserves the discriminant.TauCeti.IntegralLattice.signature_neg: form negation exchanges the positive and negative indices and preserves the null index.
References #
- W. Ebeling, Lattices and Codes, Chapter 1.
TauCetiRoadmap/IntegralLattices/README.md, Layer 1, form scaling and negation.
Integer scaling #
Scale the form of an integral lattice by an integer, leaving its carrier unchanged.
Integer scaling preserves integrality because an integer multiple of every integral pairing is
again integral. The scalar acts on the rational form through the canonical map ℤ → ℚ.
The definition is marked @[reducible] because the carriers (scale n L).carrier and
L.carrier are definitionally equal, so a Basis ι ℤ L is definitionally a
Basis ι ℤ (scale n L) and instance search requires reducible unfolding to elaborate statements
without boilerplate transports.
Equations
Instances For
Integral lattices carry the canonical multiplicative action which scales their forms by integers.
Equations
- TauCeti.IntegralLattice.instMulActionInt = { smul := TauCeti.IntegralLattice.scale, mul_smul := ⋯, one_smul := ⋯ }
Definitional bridge between scalar multiplication and scale.
Scaling the form does not change the rank of the carrier.
The integral form of a scaled lattice is the corresponding integer multiple of the original integral form.
Scaling commutes with the construction of the restricted integral form.
Gram matrices and invariants #
Scaling a lattice multiplies every entry of every Gram matrix by the scalar.
The Gram determinant of a scaled lattice is multiplied by the scalar to the size of the basis.
Scaling multiplies the signed determinant by the scalar to the rank of the lattice.
Scaling by a nonzero integer preserves nondegeneracy of the rational form.
This is a named API lemma rather than a simp lemma: simplification already derives it from
smul_form and the corresponding bilinear-form result.
Radical and signature #
Scaling by a nonzero integer preserves the radical.
Scaling by a nonzero integer preserves the null index.
Scaling by a positive integer preserves the positive index.
Scaling by a positive integer preserves the negative index.
Scaling by a positive integer preserves the signature.
Scaling by a negative integer exchanges the positive and negative indices.
Scaling by a negative integer exchanges the negative and positive indices.
Scaling by a negative integer exchanges the positive and negative indices and preserves the null index.
Scaling multiplies the discriminant by the absolute scalar to the rank of the lattice.
Form negation #
Negating an integral lattice negates its form and leaves its carrier fixed.
Equations
- TauCeti.IntegralLattice.instInvolutiveNeg = { neg := fun (L : TauCeti.IntegralLattice V) => -1 • L, neg_neg := ⋯ }
Definitional bridge between negation and scaling by -1.
Negating the form does not change the rank of the carrier.
The integral form of the negated lattice is the negative of the original integral form.
Form negation commutes with the construction of the restricted integral form.
An integral lattice is even if and only if its form negation is even.
Negation multiplies every Gram-matrix entry by -1.
Negating the form multiplies a Gram determinant by (-1) to the size of its basis.
Negating the form multiplies the signed determinant by (-1) to the lattice rank.
Form negation preserves nondegeneracy.
This is a named API lemma rather than a simp lemma: simplification already derives it from
neg_form and the corresponding bilinear-form result.
Negating the form of a nondegenerate integral lattice preserves nondegeneracy.
Form negation preserves the radical.
Form negation preserves the null index.
Form negation exchanges the positive and negative indices.
Form negation exchanges the negative and positive indices.
Form negation preserves the nonnegative discriminant.