Documentation

SpherePacking.ModularForms.JacobiTheta

Jacobi theta functions #

Define Jacobi theta functions Θ₂, Θ₃, Θ₄ and their fourth powers H₂, H₃, H₄. Prove that H₂, H₃, H₄ are modualar forms of weight 2 and level Γ(2). Also Jacobi identity: Θ₂^4 + Θ₄^4 = Θ₃^4.

noncomputable def Θ₂_term (n : ) (τ : UpperHalfPlane) :

Define Θ₂, Θ₃, Θ₄ as series.

Equations
Instances For
    noncomputable def Θ₃_term (n : ) (τ : UpperHalfPlane) :
    Equations
    Instances For
      noncomputable def Θ₄_term (n : ) (τ : UpperHalfPlane) :
      Equations
      Instances For
        noncomputable def Θ₂ (τ : UpperHalfPlane) :
        Equations
        Instances For
          noncomputable def Θ₃ (τ : UpperHalfPlane) :
          Equations
          Instances For
            noncomputable def Θ₄ (τ : UpperHalfPlane) :
            Equations
            Instances For
              noncomputable def H₂ (τ : UpperHalfPlane) :
              Equations
              Instances For
                noncomputable def H₃ (τ : UpperHalfPlane) :
                Equations
                Instances For
                  noncomputable def H₄ (τ : UpperHalfPlane) :
                  Equations
                  Instances For

                    Theta functions as specializations of jacobiTheta₂

                    Slash action of various elements on H₂, H₃, H₄

                    These three transformation laws follow directly from tsum definition.

                    Use α = T * T

                    Use jacobiTheta₂_functional_equation

                    Use β = -S * α^(-1) * S

                    H₂, H₃, H₄ are modular forms of weight 2 and level Γ(2)

                    Equations
                    Instances For
                      Equations
                      Instances For
                        Equations
                        Instances For
                          @[simp]
                          @[simp]
                          @[simp]

                          Differentiability of t ↦ jacobiTheta₂(t/2, t) at points in the upper half-plane.

                          theorem jacobiTheta₂_term_half_apply (n : ) (z : ) :
                          jacobiTheta₂_term n (z / 2) z = Complex.exp (Real.pi * Complex.I * (n ^ 2 + n) * z)
                          theorem jacobiTheta₂_rel_aux (n : ) (t : ) :
                          (Real.exp (-Real.pi * (n + 1 / 2) ^ 2 * t)) = (Real.exp (-Real.pi * t / 4)) * jacobiTheta₂_term n (Complex.I * t / 2) (Complex.I * t)
                          Equations
                          Instances For
                            Equations
                            Instances For
                              Equations
                              Instances For
                                @[simp]
                                @[simp]
                                @[simp]

                                Jacobi identity #

                                The Jacobi identity states H₂ + H₄ = H₃ (equivalently Θ₂⁴ + Θ₄⁴ = Θ₃⁴). This is blueprint Lemma 6.41, proved via dimension vanishing for weight 4 cusp forms.

                                The proof strategy:

                                1. Define g := H₂ + H₄ - H₃ and f := g²
                                2. Show f is SL₂(ℤ)-invariant (weight 4, level 1) via S/T invariance
                                3. Show f vanishes at i∞ (is a cusp form)
                                4. Apply cusp form vanishing: dim S₄(Γ₁) = 0
                                5. From g² = 0 conclude g = 0

                                The S/T slash action lemmas are proved here. The full proof requiring asymptotics (atImInfty) is in AtImInfty.lean to avoid circular imports.

                                noncomputable def jacobi_g :

                                The difference g := H₂ + H₄ - H₃

                                Equations
                                Instances For
                                  noncomputable def jacobi_f :

                                  The squared difference f := g²

                                  Equations
                                  Instances For

                                    Rewrite jacobi_f as a pointwise product

                                    S-invariance of f: f|[4]S = f, because g|[2]S = -g.

                                    T-invariance of f: f|[4]T = f, because g|[2]T = -g.

                                    Full SL₂(ℤ) invariance of f with weight 4

                                    jacobi_f as a SlashInvariantForm of weight 4 and level Γ(1)

                                    Equations
                                    Instances For

                                      jacobi_g is holomorphic (MDifferentiable) since H₂, H₃, H₄ are

                                      jacobi_f is holomorphic (MDifferentiable) since jacobi_g is

                                      Limits at infinity #

                                      We prove the limit of Θᵢ(z) and Hᵢ(z) as z tends to i∞. This is used to prove the Jacobi identity.

                                      Jacobi identity proof #

                                      We prove that g := H₂ + H₄ - H₃ → 0 at i∞, hence f := g² → 0. Combined with the dimension vanishing for weight 4 cusp forms, this proves the Jacobi identity.

                                      The function g := H₂ + H₄ - H₃ tends to 0 at i∞. Since H₂ → 0, H₃ → 1, H₄ → 1, we have g → 0 + 1 - 1 = 0.

                                      The function f := g² tends to 0 at i∞.

                                      jacobi_f is bounded at i∞ (follows from tending to 0)

                                      jacobi_f slash by any SL₂(ℤ) element equals jacobi_f (for use with bounded_at_cusps)

                                      jacobi_f slash by any SL₂(ℤ) element is bounded at i∞

                                      jacobi_f as a ModularForm of weight 4 and level Γ(1)

                                      Equations
                                      Instances For

                                        jacobi_f_MF is a cusp form because it vanishes at i∞

                                        The main dimension vanishing: jacobi_f_MF = 0

                                        jacobi_f = 0 as a function

                                        jacobi_g = 0 as a function (from g² = 0)

                                        Jacobi identity: H₂ + H₄ = H₃ (Blueprint Lemma 6.41)

                                        theorem Delta_eq_H₂_H₃_H₄ (τ : UpperHalfPlane) :
                                        Delta τ = (H₂ τ * H₃ τ * H₄ τ) ^ 2 / 256

                                        Imaginary Axis Properties #

                                        Properties of theta functions when restricted to the positive imaginary axis z = I*t.

                                        theorem Θ₂_term_imag_axis_real (n : ) (t : ) (ht : 0 < t) :
                                        (Θ₂_term n { coe := Complex.I * t, coe_im_pos := }).im = 0

                                        Each term Θ₂_term n (I*t) has zero imaginary part for t > 0.

                                        theorem Complex.im_tsum_eq_zero_of_im_eq_zero (f : ) (hf : Summable f) (him : ∀ (n : ), (f n).im = 0) :
                                        (∑' (n : ), f n).im = 0

                                        im distributes over tsum when each term has zero imaginary part.

                                        theorem Θ₂_imag_axis_real (t : ) (ht : 0 < t) :
                                        (Θ₂ { coe := Complex.I * t, coe_im_pos := }).im = 0

                                        Θ₂(I*t) has zero imaginary part for t > 0.

                                        theorem neg_one_zpow_im_eq_zero (n : ) :
                                        ((-1) ^ n).im = 0

                                        (-1 : ℂ)^n has zero imaginary part for any integer n.

                                        theorem Θ₄_term_imag_axis_real (n : ) (t : ) (ht : 0 < t) :
                                        (Θ₄_term n { coe := Complex.I * t, coe_im_pos := }).im = 0

                                        Each term Θ₄_term n (I*t) has zero imaginary part for t > 0.

                                        theorem Θ₄_imag_axis_real (t : ) (ht : 0 < t) :
                                        (Θ₄ { coe := Complex.I * t, coe_im_pos := }).im = 0

                                        Θ₄(I*t) has zero imaginary part for t > 0.

                                        H₂(it) is real for all t > 0. Blueprint: Follows from the q-expansion having real coefficients. Proof strategy: H₂ = Θ₂^4 where Θ₂(it) = ∑ₙ exp(-π(n+1/2)²t) is a sum of real exponentials.

                                        theorem Θ₂_term_imag_axis_re (n : ) (t : ) (ht : 0 < t) :
                                        (Θ₂_term n { coe := Complex.I * t, coe_im_pos := }).re = Real.exp (-Real.pi * (n + 1 / 2) ^ 2 * t)

                                        Each term Θ₂_term n (I*t) has positive real part equal to exp(-π(n+1/2)²t) for t > 0.

                                        theorem Θ₂_term_imag_axis_re_pos (n : ) (t : ) (ht : 0 < t) :
                                        0 < (Θ₂_term n { coe := Complex.I * t, coe_im_pos := }).re

                                        Each term Θ₂_term n (I*t) has positive real part for t > 0.

                                        theorem Θ₂_imag_axis_re_pos (t : ) (ht : 0 < t) :
                                        0 < (Θ₂ { coe := Complex.I * t, coe_im_pos := }).re

                                        Θ₂(It) has positive real part for t > 0. Proof: Each term Θ₂_term n (It) = exp(-π(n+1/2)²t) is a positive real. The sum of positive reals is positive.

                                        H₂(it) > 0 for all t > 0. Blueprint: Lemma 6.43 - H₂ is positive on the imaginary axis. Proof strategy: Each term exp(-π(n+1/2)²t) > 0, so Θ₂(it) > 0, hence H₂ = Θ₂^4 > 0.

                                        H₄(it) is real for all t > 0. Blueprint: Corollary 6.43 - follows from Θ₄ being real on the imaginary axis.

                                        H₄(it) > 0 for all t > 0. Blueprint: Corollary 6.43 - H₄ is positive on the imaginary axis.

                                        Proof strategy: Use the modular S-transformation relating H₄ and H₂. From H₄_S_action: (H₄ ∣[2] S) = -H₂ From ResToImagAxis.SlashActionS: relates values at t and 1/t. This gives H₂(i/t) = t² * H₄(it), so H₄(it) > 0 follows from H₂(i/t) > 0.