Documentation

SpherePacking.ModularForms.JacobiTheta.Basic

Jacobi theta basics #

Prove transformation laws, modularity, asymptotics, and the Jacobi identity for the Jacobi theta functions defined in Defs.lean.

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]
        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)

        Limits at infinity #

        We prove the limit of Θᵢ(z) and Hᵢ(z) as z tends to i∞. These results are used in JacobiIdentity.lean.

        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.