A lattice basis adapted to a flag #
Let L be a discrete ℤ-submodule of a finite-dimensional real normed space E, and let
v 0, …, v (n - 1) be ℝ-linearly independent vectors of L, with n = finrank ℝ E. This file
builds a ℤ-basis b 0, …, b (n - 1) of L adapted to the flag the v i span: for every j,
the first j members of b are a ℤ-basis of L ∩ span ℝ (v 0, …, v (j - 1)).
Main definitions #
ZLattice.flagPart: thej-th stepL ∩ span ℝ (v 0, …, v (j - 1))of the flag, as aℤ-submodule. The construction below is an induction along it, and so is the basis from the successive minima of Layer 4.6.
Main results #
ZLattice.exists_basis_adapted: the adapted basis, stated both integrally — theℤ-span of the firstjbasis vectors is exactly the part ofLin the span of the firstjof thev i— and in the weakerℝ-form, that the two flags of subspaces coincide.ZLattice.exists_basis_mem_span_int_of_mem_span_real: the consequence the geometry of numbers uses, that a lattice point in the span of the firstjof thev iis an integer combination of the firstjbasis vectors.ZLattice.exists_extending: the induction step in isolation — across a saturated step of rank one, a single vectorygenerates the quotient, in the formBasis.mkFinSnocOfLEconsumes.ZLattice.extending_congr: that generating vector is determined only modulo the smaller module, which is the freedom Layer 4.6 spends on making the new basis vector short.ZLattice.discreteTopology_of_leandZLattice.finrank_int_eq_finrank_real: the two facts about a submodule of a discrete lattice that the construction rests on, stated at arbitrary rank — it is discrete, and itsℤ-rank is theℝ-dimension of its span. Minkowski's second theorem needs both for the sublattices cut out by the flag.
Implementation notes #
The construction is the modern one and not Cassels': the part flagPart L v j of L in the
j-th subspace of the flag is saturated in flagPart L v (j + 1) — no nonzero multiple of a
lattice point lies in it unless the point does, because the subspaces are ℝ-subspaces — so the
quotient is finitely generated and torsion-free, hence free, and its rank is 1 by the
rank-nullity theorem. A generator of that quotient extends a basis of flagPart L v j to a basis
of flagPart L v (j + 1) through Mathlib's Basis.mkFinSnocOfLE, and n steps reach L itself.
⚠ All the analysis is in one rank computation. Discreteness is used twice: to know that the
parts of L are finitely generated over ℤ, which is Mathlib's
instModuleFinite_of_discrete_submodule, and — indispensably — for
finrank ℤ (flagPart L v j) = finrank ℝ (span ℝ (flagPart L v j)), which is Mathlib's
Real.finrank_eq_int_finrank_of_discrete. A non-discrete subgroup such as ℤ + ℤ √2 ⊆ ℝ is
finitely generated but has ℤ-rank larger than the dimension of its span, and then the quotients
above are free of rank > 1 and no single vector extends the basis. The induction step is
therefore stated with no topology at all: it asks for the rank as a hypothesis.
⚠ IsZLattice ℝ L is not needed. The independent family already spans E over ℝ, so a
lattice that contains it spans E; asking for the instance would be asking for a consequence of
the hypotheses.
References #
J. W. S. Cassels, An Introduction to the Geometry of Numbers, Springer (1959), Chapter I,
Theorem I: for a sublattice Λ of a lattice M and a basis a 1, …, a n of Λ, a basis
b 1, …, b n of M with a i = ∑_{j ≤ i} v i j • b j and v i i ≠ 0 (part B; part A is the
converse, the Hermite normal form of a sublattice). That triangular shape is the ℝ-form below,
and the integral form follows from it because the b i are a basis of M.
This is the lattice content of Chapter VIII, Lemma 2 — the basis such that F x < λ i forces x
to be an integer combination of b 1, …, b (i - 1) — which is Cassels' Theorem I of Chapter I
applied to the family of Lemma 1, the family realizing the successive minima.
This is infrastructure for Layers 4.2 and 4.6 of the ArithmeticHeights roadmap.
Discreteness and rank #
A ℤ-submodule of a discrete one is discrete: the inclusion is a continuous injection. This
is stated for a submodule of arbitrary rank, which is what the sublattices cut out by a flag of
subspaces need; Mathlib's instances for lattices assume full rank.
The ℤ-rank of a submodule of a discrete lattice is the ℝ-dimension of its span. This is
the step discreteness is indispensable for: ℤ + ℤ √2 has ℤ-rank two inside a line.
The flag of an independent family #
The part of a lattice L inside the ℝ-span of the first j members of a family v: the
j-th step of the flag along which an adapted basis is built.
Equations
- ZLattice.flagPart L v j = L ⊓ Submodule.restrictScalars ℤ (Submodule.span ℝ (v '' {i : Fin n | ↑i < j}))
Instances For
The steps of the flag span the subspaces they were cut out of: no ℝ-dimension is lost by
intersecting with the lattice, because the lattice already contains a spanning family.
The steps of the flag are saturated. A lattice point a nonzero multiple of which lies in
flagPart L v j lies there itself: the j-th subspace is an ℝ-subspace, so it is closed under
dividing by a nonzero integer.
The j-th step of the flag has ℤ-rank j. This is where discreteness enters.
The last step of the flag is the whole lattice.
The induction step #
A generator of a saturated rank-one step. If N ≤ N' are ℤ-submodules, N' has rank
one more than N, and N is saturated in N' — a point of N' a nonzero multiple of which lies
in N lies in N itself — then a single vector y of N' generates the quotient, in exactly
the two clauses Basis.mkFinSnocOfLE asks for.
No topology enters: the geometric situation supplies the rank and the saturation, and the rest is
that a finitely generated torsion-free ℤ-module of rank 1 is ℤ.
The generator is determined only modulo the smaller module. Moving y by an element of
N preserves both clauses of ZLattice.exists_extending, so the basis vector added at each step
may be shortened before it is added. This is the whole freedom Layer 4.6 has.
The adapted basis #
A ℤ-basis adapted to the flag of an independent family. For ℝ-linearly independent
lattice vectors v 0, …, v (n - 1) spanning E, some ℤ-basis b of L has, for every j, its
first j members a ℤ-basis of the part of L in the span of v 0, …, v (j - 1); in particular
the two flags of subspaces coincide.
This is Cassels' Chapter I, Theorem I, part B, in the form Chapter VIII, Lemma 2 uses it. Only
discreteness of L is assumed: IsZLattice ℝ L follows from the hypotheses on v.
The integral form. With the basis of ZLattice.exists_basis_adapted, a lattice point in
the ℝ-span of v 0, …, v (j - 1) is an integer combination of b 0, …, b (j - 1). This is the
shape of Cassels' Chapter VIII, Lemma 2, and it is the shape the second theorem consumes.