Documentation

TauCeti.Analysis.Complex.UpperHalfPlane.PeriodPair

The period lattice of a point of the upper half-plane #

A point z of the upper half-plane determines the period pair (z, 1) (UpperHalfPlane.periodPair), whose lattice is ℤ z + ℤ. This file records the Weierstrass function ℘(x; ℤ z + ℤ) of Mathlib's PeriodPair.weierstrassP in the coordinates of modular forms:

These are the inputs that make the values of ℘ at the N-division points of ℤ z + ℤ weight-two modular forms of level Γ(N).

For the Weierstrass ζ function PeriodPair.weierstrassZeta and its quasi-periods PeriodPair.quasiPeriod, the same rescaling of the lattice gives the weight-one transformation laws ζ(x / (c z + d); ℤ γz + ℤ) = (c z + d) ζ(x; ℤ z + ℤ) and η(l / (c z + d); ℤ γz + ℤ) = (c z + d) η(l; ℤ z + ℤ), the inputs for weight one. The lattice series of ζ at a division point (b₀ z + b₁) / M converges locally uniformly in z, so these division values are holomorphic on ℍ. Summed along the rows y₀ = m, the lattice series of ζ becomes a series of cotangents, ζ(x; ℤ z + ℤ) = ∑_m (π cot (π (x - m z)) + π cot (π m z) + x P(m z)) for x ∉ ℤ z + ℤ.

Finally, ℂˣ acts on period pairs by rescaling, c • (ω₁, ω₂) = (c ω₁, c ω₂), with lattice c Λ; this multiplies the lattice sums G n by c⁻ⁿ, ℘(c z) by c⁻² and ℘'(c z) by c⁻³, and every lattice is a rescaling of ℤ τ + ℤ for some τ in the upper half-plane.

Main definitions #

Main results #

The period pair (z, 1) of a point z of the upper half-plane; its lattice is ℤ z + ℤ.

Instances For

    The points m z + n with m n : ℤ lie in the lattice of z.periodPair.

    theorem UpperHalfPlane.intCast_comp_eq_zero_of_div_mem_lattice_periodPair {N : ℕ} [NeZero N] {b : Fin 2 → ℤ} {z : UpperHalfPlane} (h : (↑(b 0) * ↑z + ↑(b 1)) / ↑N ∈ z.periodPair.lattice) :

    A division point (b₀ z + b₁) / N lies in the lattice ℤ z + ℤ only if b ≡ 0 mod N.

    theorem UpperHalfPlane.hasSum_weierstrassP_periodPair (z : UpperHalfPlane) (x : ℂ) :
    HasSum (fun (y : Fin 2 → ℤ) => 1 / (x - (↑(y 0) * ↑z + ↑(y 1))) ^ 2 - 1 / (↑(y 0) * ↑z + ↑(y 1)) ^ 2) (z.periodPair.weierstrassP x)

    The Weierstrass function of ℤ z + ℤ as a series over integer pairs: ℘(x; ℤ z + ℤ) = ∑_y ((x - (y₀ z + y₁))⁻² - (y₀ z + y₁)⁻²), the series converging absolutely.

    theorem UpperHalfPlane.intCast_mul_smul_add_intCast (γ : Matrix.SpecialLinearGroup (Fin 2) ℤ) (z : UpperHalfPlane) (y : Fin 2 → ℤ) :
    ↑(y 0) * ↑(γ • z) + ↑(y 1) = (↑(Matrix.vecMul y (↑γ) 0) * ↑z + ↑(Matrix.vecMul y (↑γ) 1)) / denom (Matrix.SpecialLinearGroup.toGL ((Matrix.SpecialLinearGroup.map (Int.castRingHom ℝ)) γ)) ↑z

    In the coordinates of γ z, the lattice point y₀ γz + y₁ is (y γ)₀ z + (y γ)₁ divided by c z + d.

    The modular transformation of ℘. For γ ∈ SL(2, ℤ) the lattice of γ z is (c z + d)⁻¹ (ℤ z + ℤ), so ℘(x / (c z + d); ℤ γz + ℤ) = (c z + d)² ℘(x; ℤ z + ℤ).

    theorem UpperHalfPlane.hasSum_weierstrassZeta_periodPair (z : UpperHalfPlane) (x : ℂ) :
    HasSum (fun (y : Fin 2 → ℤ) => 1 / (x - (↑(y 0) * ↑z + ↑(y 1))) + 1 / (↑(y 0) * ↑z + ↑(y 1)) + x / (↑(y 0) * ↑z + ↑(y 1)) ^ 2) (z.periodPair.weierstrassZeta x)

    The Weierstrass ζ function of ℤ z + ℤ as a series over integer pairs: ζ(x; ℤ z + ℤ) = ∑_y (1 / (x - (y₀ z + y₁)) + 1 / (y₀ z + y₁) + x / (y₀ z + y₁)²), the series converging absolutely.

    The modular transformation of ζ. For γ ∈ SL(2, ℤ) the lattice of γ z is (c z + d)⁻¹ (ℤ z + ℤ), so ζ(x / (c z + d); ℤ γz + ℤ) = (c z + d) ζ(x; ℤ z + ℤ).

    The modular transformation of the quasi-periods. The quasi-period of the lattice point l / (c z + d) of ℤ γz + ℤ is (c z + d) times that of l in ℤ z + ℤ.

    noncomputable def TauCeti.UpperHalfPlane.rowSum (w : ℂ) :

    A row P(w) = ∑_n (w + n)⁻² of the lattice series of ℤ z + ℤ: the row y₀ = m of ℘(x; ℤ z + ℤ) is P(x - m z) - P(m z).

    Instances For
      theorem TauCeti.UpperHalfPlane.rowSum_def (w : ℂ) :
      rowSum w = ∑' (n : ℤ), 1 / (w + ↑n) ^ 2

      The rows ∑_n (w + n)⁻² of the lattice series are absolutely convergent.

      theorem TauCeti.UpperHalfPlane.hasSum_rowSum (w : ℂ) :
      HasSum (fun (n : ℤ) => 1 / (w + ↑n) ^ 2) (rowSum w)

      The row ∑_n (w + n)⁻² converges to rowSum w.

      The rows are even functions.

      The rows decay exponentially: for w in the upper half-plane and q = e^(2π i w), ‖∑_n (w + n)⁻²‖ ≤ 4 π² ‖q‖ / (1 - ‖q‖)².

      theorem TauCeti.UpperHalfPlane.norm_rowSum_le_of_le_abs_im {w : ℂ} {t : ℝ} (ht : 0 < t) (hw : t ≤ |w.im|) :

      The rows decay exponentially away from the real axis: if 0 < t ≤ |Im w|, then ‖∑_n (w + n)⁻²‖ ≤ 4 π² e^(-2π |Im w|) / (1 - e^(-2π t))².

      @[simp]

      The row at 0 is P(0) = ∑_{n ≠ 0} n⁻² = 2 ζ(2), the value at i∞ of Mathlib's EisensteinSeries.G2.

      theorem TauCeti.UpperHalfPlane.tendsto_rowSum_atImInfty {w : UpperHalfPlane → ℂ} {c : ℝ} (hc : 0 < c) (hw : ∀ (z : UpperHalfPlane), c * z.im ≤ |(w z).im|) :

      The rows vanish at i∞: if the imaginary part of w(z) grows at least like c Im z for some c > 0, then P(w(z)) → 0 as Im z → ∞.

      The cotangent tends to -i at i∞: if the imaginary part of w(z) grows at least like c Im z for some c > 0, then π cot (π w(z)) → -π i as Im z → ∞.

      The cotangent tends to i at i∞ in the lower half-plane: if the imaginary part of w(z) decreases at least like -c Im z for some c > 0, then π cot (π w(z)) → π i as Im z → ∞.

      The Weierstrass function of ℤ z + ℤ summed along rows: ℘(x; ℤ z + ℤ) = ∑_m (∑_n (x - m z + n)⁻² - ∑_n (m z + n)⁻²).

      The Weierstrass ζ function of ℤ z + ℤ summed along rows: for x ∉ ℤ z + ℤ, ζ(x; ℤ z + ℤ) = ∑_m (π cot (π (x - m z)) + π cot (π m z) + x ∑_n (m z + n)⁻²). Each row of the lattice series is summed by the expansion of the cotangent over ℤ; the row m = 0 is π cot (π x) + x ∑_{n ≠ 0} n⁻², as cot 0 = 0.

      theorem TauCeti.UpperHalfPlane.tendstoLocallyUniformly_weierstrassZeta_periodPair_div (M : ℕ) (b : Fin 2 → ℤ) :
      TendstoLocallyUniformly (fun (s : Finset (Fin 2 → ℤ)) (z : UpperHalfPlane) => ∑ y ∈ s, (1 / ((↑(b 0) * ↑z + ↑(b 1)) / ↑M - (↑(y 0) * ↑z + ↑(y 1))) + 1 / (↑(y 0) * ↑z + ↑(y 1)) + (↑(b 0) * ↑z + ↑(b 1)) / ↑M / (↑(y 0) * ↑z + ↑(y 1)) ^ 2)) (fun (z : UpperHalfPlane) => z.periodPair.weierstrassZeta ((↑(b 0) * ↑z + ↑(b 1)) / ↑M)) Filter.atTop

      The lattice series of ζ at the division point (b₀ z + b₁) / M converges locally uniformly in z.

      theorem TauCeti.UpperHalfPlane.mdifferentiable_weierstrassZeta_periodPair_div (M : ℕ) (b : Fin 2 → ℤ) :
      MDiff fun (z : UpperHalfPlane) => z.periodPair.weierstrassZeta ((↑(b 0) * ↑z + ↑(b 1)) / ↑M)

      Each division value of ζ is holomorphic on ℍ.

      Rescaling a period pair #

      theorem PeriodPair.ext {L L' : PeriodPair} (h₁ : L.ω₁ = L'.ω₁) (h₂ : L.ω₂ = L'.ω₂) :
      L = L'
      theorem PeriodPair.ext_iff {L L' : PeriodPair} :
      L = L' ↔ L.ω₁ = L'.ω₁ ∧ L.ω₂ = L'.ω₂
      @[instance_reducible]

      Multiplying a period pair by a nonzero complex number: c • (ω₁, ω₂) = (c ω₁, c ω₂). Its lattice is c Λ (PeriodPair.lattice_smul).

      @[simp]
      theorem PeriodPair.smul_ω₁ (L : PeriodPair) (c : ℂˣ) :
      (c • L).ω₁ = ↑c * L.ω₁
      @[simp]
      theorem PeriodPair.smul_ω₂ (L : PeriodPair) (c : ℂˣ) :
      (c • L).ω₂ = ↑c * L.ω₂
      @[instance_reducible]

      The rescaling action of ℂˣ on period pairs.

      The lattice of c • L is the image of the lattice of L under multiplication by c.

      noncomputable def PeriodPair.latticeSMulEquiv (L : PeriodPair) (c : ℂˣ) :

      Multiplication by c identifies the lattices of L and of c • L.

      Instances For
        @[simp]
        theorem PeriodPair.coe_latticeSMulEquiv (L : PeriodPair) (c : ℂˣ) (l : ↥L.lattice) :
        ↑((L.latticeSMulEquiv c) l) = ↑c * ↑l
        @[simp]
        theorem PeriodPair.mul_mem_lattice_smul_iff (L : PeriodPair) (c : ℂˣ) {x : ℂ} :
        ↑c * x ∈ (c • L).lattice ↔ x ∈ L.lattice
        @[simp]
        theorem PeriodPair.G_smul (L : PeriodPair) (c : ℂˣ) (n : ℕ) :
        (c • L).G n = L.G n / ↑c ^ n

        The lattice sums G n are homogeneous of degree -n in the lattice.

        @[simp]
        theorem PeriodPair.g₂_smul (L : PeriodPair) (c : ℂˣ) :
        (c • L).g₂ = L.g₂ / ↑c ^ 4
        @[simp]
        theorem PeriodPair.g₃_smul (L : PeriodPair) (c : ℂˣ) :
        (c • L).g₃ = L.g₃ / ↑c ^ 6
        @[simp]
        theorem PeriodPair.weierstrassP_smul (L : PeriodPair) (c : ℂˣ) (z : ℂ) :
        (c • L).weierstrassP (↑c * z) = L.weierstrassP z / ↑c ^ 2

        ℘(c z; c Λ) = c⁻² ℘(z; Λ).

        @[simp]
        theorem PeriodPair.derivWeierstrassP_smul (L : PeriodPair) (c : ℂˣ) (z : ℂ) :
        (c • L).derivWeierstrassP (↑c * z) = L.derivWeierstrassP z / ↑c ^ 3

        ℘'(c z; c Λ) = c⁻³ ℘'(z; Λ).

        theorem PeriodPair.G_eq_of_lattice_eq {L L' : PeriodPair} (h : L.lattice = L'.lattice) :
        L.G = L'.G

        The lattice sums G n depend only on the lattice, not on the chosen basis.

        ℘ depends only on the lattice, not on the chosen basis.

        ℘' depends only on the lattice, not on the chosen basis.

        Rescaling preserves equality of lattices.

        The invariants g₂ and g₃ depend only on the lattice.

        theorem PeriodPair.lattice_smul_eq_self_of_lattice_eq_smul {L L₀ : PeriodPair} {c d : ℂˣ} (hd : L.lattice = (d • L₀).lattice) (hc : (c • L₀).lattice = L₀.lattice) :

        If Λ is homothetic to a lattice preserved by multiplication by c, then Λ is preserved by multiplication by c.

        @[simp]

        Every lattice is preserved by negation.

        theorem PeriodPair.lattice_smul_eq_self_of_pow_eq_one {L : PeriodPair} {ζ c : ℂˣ} {n : ℕ} [NeZero n] (hζ : IsPrimitiveRoot (↑ζ) n) (hL : (ζ • L).lattice = L.lattice) (hc : ↑c ^ n = 1) :

        If multiplication by a primitive n-th root of unity ζ preserves a lattice, then so does multiplication by every n-th root of unity.

        theorem PeriodPair.lattice_smul_eq_self_of_sq_eq_one {L : PeriodPair} {c : ℂˣ} (hc : ↑c ^ 2 = 1) :

        Every lattice is preserved by multiplication by a square root of unity c = ±1.

        The ratio of the two periods is not real.

        Every lattice is homothetic to ℤ τ + ℤ for some τ in the upper half-plane: take τ = ω₁ / ω₂ or τ = ω₂ / ω₁, whichever has positive imaginary part.

        For γ ∈ SL(2, ℤ) the lattice ℤ γz + ℤ is (c z + d)⁻¹ (ℤ z + ℤ).

        The lattice ℤ i + ℤ is preserved by multiplication by i.

        The lattice ℤ ρ + ℤ, ρ = (-1 + √-3) / 2, is preserved by multiplication by ρ.