Documentation

LeanPool.ErdosGinzburgZiv.EGZ.Convex.AffineLattice

Affine lattices generated by rational points #

A finite rational set has a common denominator. Consequently its affine integer span is contained in a rescaled copy of the standard integer lattice, so its intersection with a compact set is finite.

The explicit finite-combination definition of affineIntSpan agrees with Mathlib's affine span over ℤ. This characterization supplies the closure laws of the support-generated lattices used by the face flag.

theorem EGZ.affineIntSpan_mono {d : ℕ} {S T : Set (RealCoord d)} (hST : S ⊆ T) :

Affine integer span is monotone.

Taking the affine integer span twice does not enlarge it.

theorem EGZ.subset_affineIntSpan {d : ℕ} (S : Set (RealCoord d)) :

Every generator belongs to its affine integer span.

theorem EGZ.isRational_of_mem_affineIntSpan {d : ℕ} {S : Set (RealCoord d)} (hS : ∀ q ∈ S, IsRational q) {q : RealCoord d} (hq : q ∈ affineIntSpan S) :

Integer affine combinations of rational points are rational.

theorem EGZ.IsRational.exists_integral_nsmul {d : ℕ} {q : RealCoord d} (hq : IsRational q) :
∃ (D : ℕ), 0 < D ∧ IsIntegral (↑D • q)

A rational point becomes integral after multiplication by one positive integer.

theorem EGZ.IsIntegral.nat_smul {d : ℕ} {q : RealCoord d} (hq : IsIntegral q) (m : ℕ) :
IsIntegral (↑m • q)

Integral points remain integral after multiplication by a natural number.

theorem EGZ.Set.Finite.exists_common_integral_nsmul {d : ℕ} {S : Set (RealCoord d)} (hS : S.Finite) (hSrational : ∀ q ∈ S, IsRational q) :
∃ (D : ℕ), 0 < D ∧ ∀ q ∈ S, IsIntegral (↑D • q)

A finite set of rational points admits one positive common denominator in every coordinate.

theorem EGZ.isIntegral_nsmul_of_mem_affineIntSpan {d D : ℕ} {S : Set (RealCoord d)} (hS : ∀ q ∈ S, IsIntegral (↑D • q)) {q : RealCoord d} (hq : q ∈ affineIntSpan S) :
IsIntegral (↑D • q)

A common denominator for the generators is also a common denominator for every integer affine combination of them.

theorem EGZ.finite_inter_affineIntSpan_of_isCompact {d : ℕ} {S K : Set (RealCoord d)} (hSfinite : S.Finite) (hSrational : ∀ q ∈ S, IsRational q) (hK : IsCompact K) :

A compact set meets the affine integer span of a finite rational set in only finitely many points. No affine independence or full-dimensionality is required.

A finitely generated rational polytope is compact.

Abstract affine lattices #

For convex flags we only need the carrier of an affine lattice, closure under integer affine combinations, and local finiteness. Packaging precisely those properties lets a flag use a different lattice in every fibre without first choosing bases which identify all of them with standard integer coordinates.

structure EGZ.AffineLattice (d : ℕ) :

A locally finite affine ℤ-lattice in real coordinate space.

The carrier is required to be nonempty and closed under finite integer affine combinations. finite_inter_compact is the operational discreteness property used to make the population of integral points in a bounded flag fibre finite.

Instances For
    @[simp]

    Membership in an affine lattice is membership in its carrier.

    Only finitely many points of an affine lattice lie in a compact set.

    The standard integer lattice in the chosen coordinates.

    Equations
    Instances For
      noncomputable def EGZ.AffineLattice.span {d : ℕ} (S : Set (RealCoord d)) (hfinite : S.Finite) (hnonempty : S.Nonempty) (hrational : ∀ q ∈ S, IsRational q) :

      The affine lattice generated by a finite nonempty rational set.

      Equations
      Instances For