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 (E8_Matrix), 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.

Main theorems #

TODO #

E₈ is characterised as the set of vectors with (1) coordinates summing to an even integer, and (2) all its coordinates either an integer or a half-integer.

Equations
Instances For
    theorem E8.mem_E8_Set {v : EuclideanSpace (Fin 8)} :
    v E8_Set ((∀ (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 E8.mem_E8_Set' {v : EuclideanSpace (Fin 8)} :
    v E8_Set ((∀ (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]
    def E8.E8' :
    Matrix (Fin 8) (Fin 8)

    E₈ is also characterised as the ℤ-span of the following vectors.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def E8.F8' :
      Matrix (Fin 8) (Fin 8)

      F8 is the inverse matrix of E₈, used to assist computation below.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem E8.E8_mul_F8_eq_id_Q :
        E8' * F8' = !![1, 0, 0, 0, 0, 0, 0, 0; 0, 1, 0, 0, 0, 0, 0, 0; 0, 0, 1, 0, 0, 0, 0, 0; 0, 0, 0, 1, 0, 0, 0, 0; 0, 0, 0, 0, 1, 0, 0, 0; 0, 0, 0, 0, 0, 1, 0, 0; 0, 0, 0, 0, 0, 0, 1, 0; 0, 0, 0, 0, 0, 0, 0, 1]
        theorem E8.E8'_updateRow₆₇ :
        (E8'.updateRow 6 (∑ k : Fin 8, E8.c₆✝ k E8' k)).updateRow 7 (∑ k : Fin 8, E8.c₇✝ k E8'.updateRow 6 (∑ k : Fin 8, E8.c₆✝ k E8' k) k) = !![1, -1, 0, 0, 0, 0, 0, 0; 0, 1, -1, 0, 0, 0, 0, 0; 0, 0, 1, -1, 0, 0, 0, 0; 0, 0, 0, 1, -1, 0, 0, 0; 0, 0, 0, 0, 1, -1, 0, 0; 0, 0, 0, 0, 0, 1, 1, 0; 0, 0, 0, 0, 0, 0, 5 / 2, -1 / 2; 0, 0, 0, 0, 0, 0, 0, -2 / 5]
        theorem E8.E8'_det_aux_4 :
        !![1, -1, 0, 0, 0, 0, 0, 0; 0, 1, -1, 0, 0, 0, 0, 0; 0, 0, 1, -1, 0, 0, 0, 0; 0, 0, 0, 1, -1, 0, 0, 0; 0, 0, 0, 0, 1, -1, 0, 0; 0, 0, 0, 0, 0, 1, 1, 0; 0, 0, 0, 0, 0, 0, 5 / 2, -1 / 2; 0, 0, 0, 0, 0, 0, 0, -2 / 5].det = -1
        theorem E8.E8_Matrix_apply {i j : Fin 8} :
        E8_Matrix i j = (E8' i j)
        theorem E8.E8_Matrix_apply_row {i : Fin 8} :
        E8_Matrix i = fun (j : Fin 8) => (E8' i j)
        theorem E8.E8_sum_apply_0 {α : Type u_1} [Semiring α] [Module α ] (y : Fin 8α) :
        (∑ j : Fin 8, y j E8_Matrix j) 0 = y 0 1 - y 6 (1 / 2)
        theorem E8.E8_sum_apply_1 {α : Type u_1} [Semiring α] [Module α ] (y : Fin 8α) :
        (∑ j : Fin 8, y j E8_Matrix j) 1 = y 0 -1 + y 1 1 - y 6 (1 / 2)
        theorem E8.E8_sum_apply_2 {α : Type u_1} [Semiring α] [Module α ] (y : Fin 8α) :
        (∑ j : Fin 8, y j E8_Matrix j) 2 = y 1 -1 + y 2 1 - y 6 (1 / 2)
        theorem E8.E8_sum_apply_3 {α : Type u_1} [Semiring α] [Module α ] (y : Fin 8α) :
        (∑ j : Fin 8, y j E8_Matrix j) 3 = y 2 -1 + y 3 1 - y 6 (1 / 2)
        theorem E8.E8_sum_apply_4 {α : Type u_1} [Semiring α] [Module α ] (y : Fin 8α) :
        (∑ j : Fin 8, y j E8_Matrix j) 4 = y 3 -1 + y 4 1 - y 6 (1 / 2)
        theorem E8.E8_sum_apply_5 {α : Type u_1} [Semiring α] [Module α ] (y : Fin 8α) :
        (∑ j : Fin 8, y j E8_Matrix j) 5 = y 4 -1 + y 5 1 - y 6 (1 / 2) + y 7 1
        theorem E8.E8_sum_apply_6 {α : Type u_1} [Semiring α] [Module α ] (y : Fin 8α) :
        (∑ j : Fin 8, y j E8_Matrix j) 6 = y 5 1 - y 6 (1 / 2) - y 7 1
        theorem E8.E8_sum_apply_7 {α : Type u_1} [Semiring α] [Module α ] (y : Fin 8α) :
        (∑ j : Fin 8, y j E8_Matrix j) 7 = y 6 (-1 / 2)
        theorem E8.E8_add_mem {a b : EuclideanSpace (Fin 8)} (ha : a E8_Set) (hb : b E8_Set) :
        Equations
        Instances For
          Equations
          Instances For
            theorem E8.E8_Matrix_inner {i j : Fin 8} :
            inner (E8_Matrix i) (E8_Matrix j) = (∑ k : Fin 8, E8' i k * E8' j k)
            theorem E8.E8_norm_eq_sqrt_even (v : E8_Lattice) :
            ∃ (n : ), Even n v ^ 2 = n

            All vectors in E₈ have norm √(2n)

            noncomputable def E8.E8Packing :
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              noncomputable def E8.E8_Basis :
              Equations
              Instances For