Documentation

SpherePacking.Basic.SpherePacking

Density of Sphere Packings #

Let X ⊆ ℝ^d be a set of points such that distinct points are at least distance r apart. Putting a ball of radius r / 2 around each point, we have a configuration of sphere packing. We call X the sphere packing centers.

We also define the density of the configuration.

structure SpherePacking (d : ) :
Instances For
    structure PeriodicSpherePacking (d : ) extends SpherePacking d :
    Instances For
      theorem SpherePacking.centers_dist' {d : } (S : SpherePacking d) (x y : EuclideanSpace (Fin d)) (hx : x S.centers) (hy : y S.centers) (hxy : x y) :
      noncomputable instance PeriodicSpherePacking.addAction {d : } (S : PeriodicSpherePacking d) :
      Equations
      theorem PeriodicSpherePacking.addAction_vadd {d : } (S : PeriodicSpherePacking d) {x : S.lattice} {y : S.centers} :
      x +ᵥ y = x + y,
      @[reducible, inline]
      Equations
      Instances For
        noncomputable def SpherePacking.density {d : } (S : SpherePacking d) :
        Equations
        Instances For
          def SpherePacking.scale {d : } (S : SpherePacking d) {c : } (hc : 0 < c) :
          Equations
          Instances For
            noncomputable def PeriodicSpherePacking.scale {d : } (S : PeriodicSpherePacking d) {c : } (hc : 0 < c) :
            Equations
            • S.scale hc = { toSpherePacking := S.scale hc, lattice := c S.lattice, lattice_action := , lattice_discrete := , lattice_isZLattice := }
            Instances For
              theorem SpherePacking.scale_balls {d : } {S : SpherePacking d} {c : } (hc : 0 < c) :
              (S.scale hc).balls = c S.balls
              theorem PeriodicSpherePacking.scale_balls {d : } {S : PeriodicSpherePacking d} {c : } (hc : 0 < c) :
              (S.scale hc).balls = c S.balls

              The PeriodicSpherePackingConstant in dimension d is the supremum of the density of all periodic packings. See also <TODO> for specifying the separation radius of the packings.

              Equations
              Instances For

                The SpherePackingConstant in dimension d is the supremum of the density of all packings. See also <TODO> for specifying the separation radius of the packings.

                Equations
                Instances For
                  @[simp]
                  theorem SpherePacking.scale_finiteDensity {d : } :
                  0 < d∀ (S : SpherePacking d) {c : } (hc : 0 < c) (R : ), (S.scale hc).finiteDensity (c * R) = S.finiteDensity R

                  Finite density of a scaled packing.

                  @[simp]
                  theorem SpherePacking.scale_finiteDensity' {d : } (hd : 0 < d) (S : SpherePacking d) {c : } (hc : 0 < c) (R : ) :
                  theorem SpherePacking.scale_density {d : } (hd : 0 < d) (S : SpherePacking d) {c : } (hc : 0 < c) :

                  Density of a scaled packing.

                  theorem biUnion_inter_balls_subset_biUnion_balls_inter {d : } (X : Set (EuclideanSpace (Fin d))) (r R : ) :
                  xX Metric.ball 0 R, Metric.ball x r (⋃ xX, Metric.ball x r) Metric.ball 0 (R + r)
                  theorem biUnion_balls_inter_subset_biUnion_inter_balls {d : } (X : Set (EuclideanSpace (Fin d))) (r R : ) :
                  (⋃ xX, Metric.ball x r) Metric.ball 0 (R - r) xX Metric.ball 0 R, Metric.ball x r
                  theorem SpherePacking.volume_iUnion_balls_eq_tsum {d : } (S : SpherePacking d) (R : ) {r' : } (hr' : r' S.separation / 2) :
                  MeasureTheory.volume (⋃ (x : ↑(S.centers Metric.ball 0 R)), Metric.ball (↑x) r') = ∑' (x : ↑(S.centers Metric.ball 0 R)), MeasureTheory.volume (Metric.ball (↑x) r')

                  This gives an upper bound on the number of points in the sphere packing X with norm less than R.

                  This gives an upper bound on the number of points in the sphere packing X with norm less than R.

                  theorem aux6 {d : } (S : SpherePacking d) (R : ) :