Shortest lattice vectors, greedy flags and Blichfeldt's bound #
Main results #
ZLattice.exists_shortest_vector_notMem: if a real subspaceUof a finite-dimensional normed space does not contain the full-rank latticeL, some vector ofLoutsideUhas minimal norm among the vectors ofLoutsideU. Iterating this gives the greedy successive-minima flag ofL.ZLattice.measureReal_le_covolume: Blichfeldt's principle; a measurable set whose distinct points never differ by a lattice vector has volume at most the covolume.
The greedy flag is built one vector at a time with Fin.snoc; the following lemmas describe the
initial segments of such a tuple, and count the pairs of its indices:
Fin.snoc_image_Iio_castSucc:Fin.snoc v x '' Set.Iio i.castSucc = v '' Set.Iio i.Fin.snoc_image_Iio_last:Fin.snoc v x '' Set.Iio (Fin.last k) = Set.range v.Fin.sum_card_Ioi: there aren.choose 2pairsi < jinFin n.
Counting the pairs i < j in Fin n by their smaller element gives n.choose 2.
theorem
ZLattice.exists_shortest_vector_notMem
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
[FiniteDimensional ℝ E]
(L : Submodule ℤ E)
[DiscreteTopology ↥L]
[IsZLattice ℝ L]
(U : Submodule ℝ E)
(hU : U ≠ ⊤)
:
If a real subspace U does not contain the full-rank lattice L, some lattice vector outside
U has minimal norm among all lattice vectors outside U.
theorem
ZLattice.measureReal_le_covolume
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
(L : Submodule ℤ E)
[DiscreteTopology ↥L]
[IsZLattice ℝ L]
(μ : MeasureTheory.Measure E)
[μ.IsAddHaarMeasure]
{S : Set E}
(hS : MeasurableSet S)
(hsep : ∀ x ∈ S, ∀ y ∈ S, x - y ∈ L → x = y)
:
Blichfeldt's principle: a measurable set whose distinct points never differ by a lattice vector has volume at most the covolume of the lattice.