Documentation

SpherePacking.Basic.E8

Basic properties of the E₈ lattice #

We define the E₈ lattice in two ways, as the ℤ-span of a chosen basis (E8Matrix), and as the set of vectors in ℝ^8 with sum of coordinates an even integer and coordinates either all integers or half-integers (E8_Set). We prove these two definitions are equivalent, and prove various properties about the E₈ lattice.

See also earlier work which inspired this one, by Gareth Ma: https://github.com/thefundamentaltheor3m/Sphere-Packing-Lean/blob/42c839d1002f5bcc1f8d2eb73190d97cd9c52852/SpherePacking/Basic/E8.lean

Main declarations #

theorem AddCommGroup.ModEq.zsmul' {α : Type u_2} [AddCommGroup α] {p a b : α} {n : } (h : a b [PMOD p]) :
n a n b [PMOD p]
def LinearMap.intCast {ι : Type u_2} (R : Type u_3) [Ring R] :
(ι) →ₗ[] ιR
Equations
Instances For
    @[simp]
    theorem LinearMap.intCast_apply {ι : Type u_2} (R : Type u_3) [Ring R] (f : ι) (i : ι) :
    (intCast R) f i = (f i)
    Equations
    Instances For
      theorem Submodule.coe_evenLattice (R : Type u_2) (n : ) [Ring R] [CharZero R] :
      (evenLattice R n) = {v : Fin nR | (∀ (i : Fin n), ∃ (n : ), n = v i) i : Fin n, v i 0 [PMOD 2]}
      theorem Submodule.mem_evenLattice {R : Type u_2} [Ring R] [CharZero R] (n : ) {v : Fin nR} :
      v evenLattice R n (∀ (i : Fin n), ∃ (n : ), n = v i) i : Fin n, v i 0 [PMOD 2]
      noncomputable def Submodule.E8 (R : Type u_2) [Field R] [NeZero 2] :
      Submodule (Fin 8R)
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem Submodule.mem_E8 {R : Type u_2} [Field R] [NeZero 2] {v : Fin 8R} :
        v E8 R ((∀ (i : Fin 8), ∃ (n : ), n = v i) ∀ (i : Fin 8), ∃ (n : ), Odd n n = 2 v i) i : Fin 8, v i 0 [PMOD 2]
        theorem Submodule.mem_E8' {R : Type u_2} [Field R] [NeZero 2] {v : Fin 8R} :
        v E8 R ((∀ (i : Fin 8), ∃ (n : ), Even n n = 2 v i) ∀ (i : Fin 8), ∃ (n : ), Odd n n = 2 v i) i : Fin 8, v i 0 [PMOD 2]
        theorem Submodule.mem_E8'' {R : Type u_2} [Field R] [NeZero 2] {v : Fin 8R} :
        v E8 R ((∀ (i : Fin 8), ∃ (n : ), n = v i) ∀ (i : Fin 8), ∃ (n : ), n + 2⁻¹ = v i) i : Fin 8, v i 0 [PMOD 2]
        theorem Submodule.E8_eq_sup (R : Type u_2) [Field R] [CharZero R] :
        E8 R = evenLattice R 8span {fun (x : Fin 8) => 2⁻¹}
        def E8Matrix (R : Type u_2) [Field R] :
        Matrix (Fin 8) (Fin 8) R
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem E8Matrix_row_mem_E8 {R : Type u_1} [Field R] [CharZero R] (i : Fin 8) :
          theorem E8Matrix_unimodular (R : Type u_2) [Field R] [NeZero 2] :
          (E8Matrix R).det = 1
          noncomputable def E8Basis (R : Type u_2) [Field R] [NeZero 2] :
          Module.Basis (Fin 8) R (Fin 8R)
          Equations
          Instances For
            theorem E8Basis_apply {R : Type u_1} [Field R] [NeZero 2] (i : Fin 8) :
            (E8Basis R) i = (E8Matrix R).row i
            def E8.inn :
            Matrix (Fin 8) (Fin 8)
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem dotProduct_eq_inn {R : Type u_2} [Field R] [CharZero R] (i j : Fin 8) :
              (E8Matrix R).row i ⬝ᵥ (E8Matrix R).row j = (E8.inn i j)
              theorem dotProduct_is_integer {R : Type u_2} [Field R] [CharZero R] (i j : Fin 8) :
              ∃ (z : ), z = (E8Matrix R).row i ⬝ᵥ (E8Matrix R).row j
              theorem E8_integral {R : Type u_2} [Field R] [CharZero R] (v w : Fin 8R) (hv : v Submodule.E8 R) (hw : w Submodule.E8 R) :
              ∃ (z : ), z = v ⬝ᵥ w
              theorem E8_integral_self {R : Type u_2} [Field R] [CharZero R] (v : Fin 8R) (hv : v Submodule.E8 R) :
              ∃ (z : ), Even z z = v ⬝ᵥ v
              theorem E8_norm_eq_sqrt_even (v : Fin 8) (hv : v Submodule.E8 ) :
              ∃ (n : ), Even n n = WithLp.toLp 2 v ^ 2
              @[reducible, inline]
              noncomputable abbrev E8Lattice :
              Equations
              Instances For
                theorem Submodule.span_restrict {ι : Type u_2} {M : Type u_3} [AddCommMonoid M] [Module M] (p : Submodule M) (f : ιM) (h : ∀ (i : ι), f i p) :
                (span (Set.range f)).submoduleOf p = span (Set.range fun (i : ι) => f i, )
                noncomputable def E8Packing :
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def Matrix.myDet {n : Type u_2} [DecidableEq n] [Fintype n] {R : Type u_3} [CommRing R] (M : Matrix n n R) :
                  R
                  Equations
                  Instances For
                    theorem E8Matrix_myDet_eq_one (R : Type u_2) [Field R] [NeZero 2] :
                    theorem test'' {ι : Type u_2} [Fintype ι] (s : Set (EuclideanSpace ι)) :
                    MeasureTheory.volume ((WithLp.equiv 2 ((i : ι) → (fun (x : ι) => ) i)).symm ⁻¹' s) = MeasureTheory.volume s