Sphere Packing in R^8

5. Fourier Analysis🔗

Recall the definition of a Fourier transform.

Definition5.1
Group: Fourier transform and Schwartz-space preliminaries. (3)
Group member previews
Preview
Lemma 5.2
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 0
Used by 4
Reverse dependency previews
markupTeXL∃∀N

The Fourier transform of an L^1-function f:\R^d\to\C is defined as \mathcal{F}(f)(y) = \widehat{f}(y) := \int_{\R^d} f(x)e^{-2\pi i \langle x, y \rangle} \,\mathrm{d}x, \quad y \in \R^d where \langle x, y \rangle = \frac12\|x\|^2 + \frac12\|y\|^2 - \frac12\|x - y\|^2 is the standard scalar product in \R^d.

Lean code for Definition5.11 definition
  • defdefined in Mathlib/Analysis/Fourier/FourierTransform.lean
    complete
    def VectorFourier.fourierIntegral.{u_1, u_2, u_3, u_4} {𝕜 : Type u_1}
      [CommRing 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V]
      [MeasurableSpace V] {W : Type u_3} [AddCommGroup W] [Module 𝕜 W]
      {E : Type u_4} [NormedAddCommGroup E] [NormedSpace  E]
      (e : AddChar 𝕜 Circle) (μ : MeasureTheory.Measure V)
      (L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜) (f : V  E) (w : W) : E
    def VectorFourier.fourierIntegral.{u_1, u_2,
        u_3, u_4}
      {𝕜 : Type u_1} [CommRing 𝕜]
      {V : Type u_2} [AddCommGroup V]
      [Module 𝕜 V] [MeasurableSpace V]
      {W : Type u_3} [AddCommGroup W]
      [Module 𝕜 W] {E : Type u_4}
      [NormedAddCommGroup E] [NormedSpace  E]
      (e : AddChar 𝕜 Circle)
      (μ : MeasureTheory.Measure V)
      (L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜) (f : V  E)
      (w : W) : E
    The Fourier transform integral for `f : V → E`, with respect to a bilinear form `L : V × W → 𝕜`
    and an additive character `e`. 

The following computational result will be of use later on.

Lemma5.2
Group: Fourier transform and Schwartz-space preliminaries. (3)
Group member previews
Preview
Definition 5.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1
Used by 2
Reverse dependency previews
Preview
Lemma 8.12
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
markupTeXXL∃∀N

\mathcal{F}(e^{\pi i \|x\|^2 z})(y) = z^{-4}\,e^{\pi i \|y\|^2 \,(\frac{-1}{z}) }.

Proof for Lemma 5.2
uses 0

Fill in proof.

Of great interest to us is a specific family of functions, known as Schwartz functions. The Fourier transform behaves particularly well when acting on Schwartz functions. We elaborate in the following subsections.

Definition5.3
Group: Fourier transform and Schwartz-space preliminaries. (3)
Group member previews
Preview
Definition 5.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 0
Used by 3
Reverse dependency previews
Preview
Lemma 5.4
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
markupTeXL∃∀N

A C^\infty function f:\R^d\to\C is called a Schwartz function if it decays to zero as \|x\|\to\infty faster than any inverse power of \|x\|, and the same holds for all partial derivatives of f. That is, for all k, n \in \N, there exists a constant C \in \R such that for all x \in \R^d, \norm{x}^k \cdot \norm{f^{(n)}(x)} \leq C, where f^{(n)} denotes the n-th derivative of f together with the appropriate operator norm. The set of all Schwartz functions from \R^d to \C is called the Schwartz space. It is an \R-vector space.

Lean code for Definition5.31 definition
  • abbrevdefined in SpherePackingBlueprint/Formalization.lean
    complete
    abbrev BlueprintDocAliases.SchwartzMap.{u_1, u_2} (E : Type u_1) (F : Type u_2)
      [NormedAddCommGroup E] [NormedSpace  E] [NormedAddCommGroup F]
      [NormedSpace  F] : Type (max u_1 u_2)
    abbrev BlueprintDocAliases.SchwartzMap.{u_1, u_2}
      (E : Type u_1) (F : Type u_2)
      [NormedAddCommGroup E] [NormedSpace  E]
      [NormedAddCommGroup F]
      [NormedSpace  F] : Type (max u_1 u_2)
    The space of Schwartz functions. 
Lemma5.4
Group: Fourier transform and Schwartz-space preliminaries. (3)
Group member previews
Preview
Definition 5.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 5.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0markupTeXL∃∀N

The Fourier transform is a continuous linear automorphism of the space of Schwartz functions.

Lean code for Lemma5.41 definition
  • defdefined in Mathlib/Analysis/Distribution/SchwartzSpace/Fourier.lean
    complete
    def SchwartzMap.fourierTransformCLM.{u_1, u_2, u_3} (𝕜 : Type u_1)
      [RCLike 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace  E]
      [NormedSpace 𝕜 E] [SMulCommClass  𝕜 E] {V : Type u_3}
      [NormedAddCommGroup V] [InnerProductSpace  V] [FiniteDimensional  V]
      [MeasurableSpace V] [BorelSpace V] :
      SchwartzMap V E →L[𝕜] SchwartzMap V E
    def SchwartzMap.fourierTransformCLM.{u_1, u_2,
        u_3}
      (𝕜 : Type u_1) [RCLike 𝕜] {E : Type u_2}
      [NormedAddCommGroup E] [NormedSpace  E]
      [NormedSpace 𝕜 E] [SMulCommClass  𝕜 E]
      {V : Type u_3} [NormedAddCommGroup V]
      [InnerProductSpace  V]
      [FiniteDimensional  V]
      [MeasurableSpace V] [BorelSpace V] :
      SchwartzMap V E →L[𝕜] SchwartzMap V E
    The Fourier transform on a real inner product space, as a continuous linear map on the
    Schwartz space.
    
    This definition is only to define the Fourier transform, use `FourierTransform.fourierCLM` instead.
    
Proof for Lemma 5.4
uses 0

We do not elaborate here, as the result already exists in Mathlib. We do, however, mention that the Lean implementation defines a continuous linear equivalence on the Schwartz space using the Fourier transform. The proof that for any Schwartz function f, its Fourier transform and its image under this continuous linear equivalence are the same \R^d \to \R function is stated in Mathlib solely for the purpose of rw and simp, and is proved simply by rfl.

Another reason we are interested in Schwartz functions is that they behave well under infinite sums. This will be useful when proving the Cohn-Elkies linear programming bound.

We begin by stating a general summability result over specific subsets of \R^d.

Lemma5.5
Group: Summability lemmas and Poisson summation over lattices. (3)
Group member previews
Preview
Lemma 5.6
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 0used by 1markupTeXXL∃∀N

Let X \subset \R^d be a set of sphere-packing centers of separation 1 that is periodic with some lattice \Lambda \subset \R^d. Then there exists k \in \N sufficiently large such that \sum_{x \in X} \frac{1}{\norm{x}^{k}} < \infty.

Proof for Lemma 5.5
uses 0

First, note that it does not matter how we number the countably many elements of the discrete set X: if we prove absolute convergence for one numbering, we prove absolute convergence for any numbering. The idea is to bound the sequence of partial sums by considering the volumes of concentric d-spheres of the appropriate radii, or scaled versions of a zero-centered fundamental domain. /- source paragraph break -/ Finish.

The decaying property of Schwartz functions means that they can be compared with the absolutely convergent power series above.

Lemma5.6
Group: Summability lemmas and Poisson summation over lattices. (3)
Group member previews
Preview
Lemma 5.5
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 1markupTeXXL∃∀N

Let f : \R^d \to \C be a Schwartz function and let X \subset \R^d be periodic with respect to some lattice \Lambda \subset \R^d. Then \sum_{x \in X} |f(x)| < \infty.

Proof for Lemma 5.6
uses 0

Without loss of generality, assume that 0 \notin X: if 0 \in X, we can add the f(0) term to the sum over nonzero elements of X. We know that for all k \in \N there exists some constant C such that |f(x)| \leq C\norm{x}^{-k} for all x \in \R^d. Choosing k to be sufficiently large, we obtain \sum_{x \in X} |f(x)| \leq \sum_{x \in X} \frac{C}{\norm{x}^{k}} = C \sum_{x \in X} \frac{1}{\norm{x}^k} < \infty.

We end with a crucial result on Schwartz functions, the statement of which only makes sense because of the above result.

Theorem5.7
Group: Summability lemmas and Poisson summation over lattices. (3)
Group member previews
Preview
Lemma 5.5
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 5
Statement dependency previews
used by 1markupTeXL∃∀N

Let \Lambda be a lattice in \R^d, and let f:\R^d\to\R be a Schwartz function. Then, for all v \in \R^d, \sum_{\ell\in\Lambda}f(\ell + v) = \frac{1}{\Vol{\R^d/\Lambda}} \sum_{m\in\Lambda^*}\widehat{f}(m) e^{-2\pi i \ang{v, m}}.

Lean code for Theorem5.71 theorem, incomplete
  • contains sorry
    theorem SchwartzMap.PoissonSummation_Lattices {d : } [Fact (0 < d)]
      (Λ : Submodule  (EuclideanSpace  (Fin d))) [DiscreteTopology Λ]
      [IsZLattice  Λ] (f : SchwartzMap (EuclideanSpace  (Fin d)) )
      (v : EuclideanSpace  (Fin d)) :
      ∑' ( : Λ), f (v + ) =
        1 / (ZLattice.covolume Λ MeasureTheory.volume) *
          ∑' (m :
            (LinearMap.BilinForm.dualSubmodule
                (innerₗ (EuclideanSpace  (Fin d))) Λ)),
            FourierTransform.fourier f m *
              Complex.exp
                (2 * Real.pi * Complex.I *
                  (RCLike.wInner 1 v.ofLp (↑m).ofLp))
    theorem SchwartzMap.PoissonSummation_Lattices
      {d : } [Fact (0 < d)]
      (Λ :
        Submodule 
          (EuclideanSpace  (Fin d)))
      [DiscreteTopology Λ] [IsZLattice  Λ]
      (f :
        SchwartzMap (EuclideanSpace  (Fin d))
          )
      (v : EuclideanSpace  (Fin d)) :
      ∑' ( : Λ), f (v + ) =
        1 /
            (ZLattice.covolume Λ
                MeasureTheory.volume) *
          ∑' (m :
            (LinearMap.BilinForm.dualSubmodule
                (innerₗ
                  (EuclideanSpace  (Fin d)))
                Λ)),
            FourierTransform.fourier f m *
              Complex.exp
                (2 * Real.pi * Complex.I *
                  (RCLike.wInner 1 v.ofLp
                      (↑m).ofLp))
Proof for Theorem 5.7
uses 0

One possible proof would be by induction on d. However, there are numerous nuances involved, particularly in manipulating nested infinite sums. Ideas would be appreciated.

While the Poisson summation formula over lattices can be stated in greater generality and probably should be formalised as such in Mathlib due to its many applications, we stick with Schwartz functions because that should be sufficient for our purposes.

Theorem5.8
Group: Summability lemmas and Poisson summation over lattices. (3)
Group member previews
Preview
Lemma 5.5
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 0
Used by 2
Reverse dependency previews
Preview
Lemma 8.11
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
markupTeXXL∃∀N

Assume f : \R \to \C is smooth on [0, \infty) and for all k, n \in \N there exists C \in \R such that x^{\frac{k}{2}} \cdot |f^{(n)}(x)| \leq C. Then, for all d \in \N, the function f_d : \R^d \to \C, \quad f_d(x) := f(\|x\|^2) is a Schwartz function.