Documentation

LeanPool.Chudnovsky.DivisionValues

Division values (Milla, Appendix A) #

Division points of a period lattice, the functions F_m = σ(mz)/σ(z)^{m²}, and the two outputs consumed by Appendix B (PLAN B1):

The m-division points in the fundamental parallelogram are indexed by pairs (k, l) ∈ (ℤ/m)² \ {0} via u = (k/m)·ω₁ + (l/m)·ω₂ (paper Lemma lemmm: there are m² − 1 of them).

TODO (PLAN B1): the division polynomials P_m ∈ ℤ[x, h₂, h₃] with their four-case recursion, Baker's factorization thmbaker (m²·∏_{u ∈ DIV(m)} (x − ℘(u)) = P_m(x)² · (4(x³ − h₂x − h₃))^{[m even]}) and the structure lemmas propindu, from which the two theorems below follow.

noncomputable def PeriodPair.divPt (L : PeriodPair) (m : ) (v : Fin m × Fin m) :

The m-division point (k/m)·ω₁ + (l/m)·ω₂ indexed by v = (k, l) : Fin m × Fin m. For v ≠ 0 these are exactly the points of the paper's DIV(m) (Def. defidivi).

Equations
Instances For
    theorem PeriodPair.divPt_notMem_lattice (L : PeriodPair) {m : } [NeZero m] {v : Fin m × Fin m} (hv : v 0) :
    L.divPt m vL.lattice

    Division points with v ≠ 0 are not lattice points (so is finite there).

    The σ-transformation law (paper Prop. trafosigma) #

    We derive the transformation law of the Weierstrass σ-function in a single period direction ω (with ω/2 ∉ L), and its n-fold iterate. This is the local copy referred to in the plan (parallel to the derivation in Fourier.lean, which we cannot import here).

    noncomputable def PeriodPair.Fm (L : PeriodPair) (m : ) (z : ) :

    Milla's F_m(z) = σ(mz)/σ(z)^{m²} (Lemma lemdefifm): an elliptic function with a pole of order m² − 1 on L and simple zeros exactly at the m-division points.

    Equations
    Instances For
      theorem PeriodPair.Fm_periodic (L : PeriodPair) (m : ) {ω : } ( : ω L.lattice) (z : ) :
      L.Fm m (z + ω) = L.Fm m z

      F_m is doubly periodic (paper Lemma lemdefifm, via the σ-transformation law trafosigma).

      The multiplication formula and theowpsum (the ζ-trick) #

      We prove ∑_{v ≠ 0} ℘(u_v) = 0 (theowpsum) directly, without the division polynomials. The argument has three steps:

      theorem PeriodPair.theowpsum (L : PeriodPair) (m : ) [NeZero m] :
      vFinset.univ.erase 0, L.weierstrassP (L.divPt m v) = 0

      Milla's theowpsum: the sum of over all m-division points vanishes. (From the vanishing of the second-highest coefficient in thmbaker.)

      lemwpsigma: the σ-quotient formula for ℘(v) − ℘(u) #

      We prove ℘(v) − ℘(u) = σ(u+v)σ(u−v)/(σ(u)²σ(v)²) (paper Lemma lemwpsigma) by the paper's direct argument: fix v ∉ L; the difference F(u) := σ(u+v)σ(u−v)/(σ(u)²σ(v)²) + ℘(u) − ℘(v) is elliptic in u, has its two double poles at u ∈ L cancel (Laurent computation via the trailing coefficient σ'(0) = 1 and the evenness F(−u) = F(u)), hence is entire and constant (first Liouville theorem), and F(v) = 0 since σ(0) = 0.

      theorem PeriodPair.weierstrassP_ne_of_notMem (L : PeriodPair) {z v : } (hz : zL.lattice) (hv : vL.lattice) (hsub : z - vL.lattice) (hadd : z + vL.lattice) :

      is 2-to-1: for z, v ∉ L with z − v ∉ L and z + v ∉ L, the values differ, z ≠ ℘ v (contrapositive of z = ℘ v → z ≡ ±v mod L).

      Assembly of lemwpsigma (paper Lemma lemwpsigma) #

      ℘(v) − ℘(u) = σ(u+v)·σ(u−v)/(σ(u)²σ(v)²) for u, v ∉ L, via the workhorse lemma: the σ-quotient A(u) = σ(u+v)σ(u−v)/σ(u)² and g(u) = ℘(u) − ℘(v) are elliptic in u with identical divisors, so A = c·g up to a codiscrete set; the constant is pinned by the trailing coefficients at u = 0 (c = −σ(v)²), and the identity upgrades to all u ∉ L by the identity theorem on the connected set Lᶜ.

      theorem PeriodPair.lemwpsigma (L : PeriodPair) {u v : } (hu : uL.lattice) (hv : vL.lattice) :

      Milla's lemwpsigma: for u, v ∉ L, ℘(v) − ℘(u) = σ(u+v)·σ(u−v)/(σ(u)²·σ(v)²).

      propfmprod: F_m(z)² = m²·∏_{v ≠ 0} (℘(z) − ℘(u_v)) (paper Thm. propfmprod) #

      Proved by the same workhorse scheme: both sides are elliptic with identical divisors (−2(m²−1) on L, total order 2 on each nonzero m-torsion class, 0 elsewhere), and the constant is pinned by the trailing coefficients at 0 (F_m ≈ m·z^{−(m²−1)} and each factor ℘ − ℘(u_v) ≈ z⁻²).

      theorem PeriodPair.propfmprod (L : PeriodPair) (m : ) [NeZero m] {z : } (hz : zL.lattice) :
      L.Fm m z ^ 2 = m ^ 2 * vFinset.univ.erase 0, (L.weierstrassP z - L.weierstrassP (L.divPt m v))

      Milla's propfmprod: for z ∉ L, F_m(z)² = m²·∏_{v ≠ 0} (℘(z) − ℘(u_v)).

      theorem PeriodPair.lemwpnz (L : PeriodPair) (n : ) {z : } (hz : zL.lattice) (hnz : n * zL.lattice) :
      L.weierstrassP (n * z) = L.weierstrassP z - L.Fm (n - 1) z * L.Fm (n + 1) z / L.Fm n z ^ 2

      Milla's lemwpnz: ℘(nz) = ℘(z) − F_{n−1}(z)·F_{n+1}(z)/F_n(z)² for z, nz ∉ L (from lemwpsigma with u = z, v = nz, σ-oddness and the definition of F_k).

      The division polynomials P_m (paper Def. defipm) #

      Integer polynomials in x (outer variable) and h₂ = ¼g₂, h₃ = ¼g₃ (inner variables X 0, X 1 of the coefficient ring ℤ[h₂, h₃]), defined by Milla's four-case recursion. Verified (sympy, numerically to m = 15) against the classical elliptic division polynomials ψ_m for y² = x³ + ax + b with a = −h₂, b = −h₃: P_m = ψ_m for odd m and P_m = ψ_m/(2y) for even m.

      @[reducible, inline]

      The coefficient ring ℤ[h₂, h₃]; h₂ = X 0, h₃ = X 1.

      Equations
      Instances For
        noncomputable def Milla.h2 :

        The coefficient h₂ (standing for ¼g₂(L)).

        Equations
        Instances For
          noncomputable def Milla.h3 :

          The coefficient h₃ (standing for ¼g₃(L)).

          Equations
          Instances For
            noncomputable def Milla.E :

            E = 16(x³ − h₂x − h₃)², the polynomial with E(℘) = (℘′)⁴ (paper dglP).

            Equations
            Instances For
              @[irreducible]
              noncomputable def Milla.P :

              Milla's division polynomials P_m (paper Def. defipm); P 0 = 0 by convention. P₁ = P₂ = 1, explicit quartic/sextic P₃, P₄, and for m = 4k + r ≥ 5:

              • P_{4k+1} = E·P_{2k+2}·P_{2k}³ − P_{2k−1}·P_{2k+1}³
              • P_{4k+2} = P_{2k+1}·(P_{2k+3}·P_{2k}² − P_{2k−1}·P_{2k+2}²)
              • P_{4k+3} = P_{2k+3}·P_{2k+1}³ − E·P_{2k}·P_{2k+2}³
              • P_{4k+4} = P_{2k+2}·(P_{2k+4}·P_{2k+1}² − P_{2k}·P_{2k+3}²)
              Equations
              Instances For
                @[simp]
                theorem Milla.P_zero :
                P 0 = 0
                @[simp]
                theorem Milla.P_one :
                P 1 = 1
                @[simp]
                theorem Milla.P_two :
                P 2 = 1
                theorem Milla.P_four_mul_add_one {k : } (hk : 1 k) :
                P (4 * k + 1) = E * P (2 * k + 2) * P (2 * k) ^ 3 - P (2 * k - 1) * P (2 * k + 1) ^ 3

                Recursion case m = 4k + 1, k ≥ 1 (paper defipm).

                theorem Milla.P_four_mul_add_two {k : } (hk : 1 k) :
                P (4 * k + 2) = P (2 * k + 1) * (P (2 * k + 3) * P (2 * k) ^ 2 - P (2 * k - 1) * P (2 * k + 2) ^ 2)

                Recursion case m = 4k + 2, k ≥ 1 (paper defipm).

                theorem Milla.P_four_mul_add_three {k : } (hk : 1 k) :
                P (4 * k + 3) = P (2 * k + 3) * P (2 * k + 1) ^ 3 - E * P (2 * k) * P (2 * k + 2) ^ 3

                Recursion case m = 4k + 3, k ≥ 1 (paper defipm).

                theorem Milla.P_four_mul_add_four {k : } (hk : 1 k) :
                P (4 * k + 4) = P (2 * k + 2) * (P (2 * k + 4) * P (2 * k + 1) ^ 2 - P (2 * k) * P (2 * k + 3) ^ 2)

                Recursion case m = 4k + 4, k ≥ 1 (paper defipm).

                Degree and leading coefficient of P_m (paper Thm. propindu (2), (3)) #

                natDegree (P m) = (m²−1)/2 and leadingCoeff = m for odd m; natDegree (P m) = (m²−4)/2 and leadingCoeff = m/2 for even m ≥ 2 (with the exact sign +l_m, refining the paper's ±l_m).

                theorem Milla.P_odd_natDegree (j : ) :
                (P (2 * j + 1)).natDegree = 2 * j ^ 2 + 2 * j

                propindu (2)+(3), odd case: natDegree (P (2j+1)) = ((2j+1)² − 1)/2.

                theorem Milla.P_odd_leadingCoeff (j : ) :
                (P (2 * j + 1)).leadingCoeff = ↑(2 * j + 1)

                propindu (3), odd case (with the exact sign): leadingCoeff (P (2j+1)) = 2j+1.

                theorem Milla.P_even_natDegree (j : ) :
                (P (2 * j + 2)).natDegree = 2 * j ^ 2 + 4 * j

                propindu (2)+(3), even case: natDegree (P (2j+2)) = ((2j+2)² − 4)/2.

                theorem Milla.P_even_leadingCoeff (j : ) :
                (P (2 * j + 2)).leadingCoeff = ↑(j + 1)

                propindu (3), even case (with the exact sign): leadingCoeff (P (2j+2)) = j+1.

                theorem Milla.P_ne_zero {m : } (hm : 1 m) :
                P m 0

                P m ≠ 0 for m ≥ 1.

                lemwp2str: ℘'' = 6℘² − g₂/2 (paper Lemma lemwp2str) #

                Obtained by differentiating the algebraic differential equation ℘′² = 4℘³ − g₂℘ − g₃ (Mathlib's derivWeierstrassP_sq), cancelling ℘′ where it is nonzero, and removing the 2-torsion zeros of ℘′ by the identity theorem on the connected set Lᶜ.

                theorem PeriodPair.lemwp2str (L : PeriodPair) {z : } (hz : zL.lattice) :

                Milla's lemwp2str: ℘''(z) = 6℘(z)² − g₂/2 for z ∉ L.

                F₂ = −℘′ (paper propfmpm, case m = 2) #

                Writing σ(z−v) = (z−v)·Q(z−v) with the entire σ-product Q (Q(0) = 1), the formula lemwpsigma becomes ℘(v) − ℘(z) = (z−v)·H(v) for v near z; differentiating at v = z gives ℘′(z) = −H(z) = −σ(2z)/σ(z)⁴ = −F₂(z) — no Laurent series needed.

                theorem PeriodPair.Fm_two (L : PeriodPair) {z : } (hz : zL.lattice) :

                F₂ = −℘′ for all z ∉ L (paper propfmpm, m = 2).

                Duplication (paper lemwp2str, second half) #

                The derivative of F₂ = σ(2z)/σ(z)⁴ = −℘′ gives ℘'' = 2(ζ(2z) − 2ζ(z))·℘′; differentiating once more (with ζ′ = −℘ and ℘''' = 12℘℘′) eliminates ζ and yields the duplication formula, and one further derivative yields ℘′(2z) and F₄.

                The recursions lemfrekur (paper Lemma lemfrekur) #

                Both recursions follow from the master identity F_{2a+d}·F_d = F_{a+d}²·F_a²·(℘(az) − ℘((a+d)z)) — which is lemwpsigma at u = (a+d)z, v = az plus σ-exponent bookkeeping — combined with lemwpnz. This replaces the paper's three-term σ-identity lemsigmasigma.

                theorem PeriodPair.lemfrekur_odd (L : PeriodPair) (j : ) {z : } (hz : ∀ (k : ), k 0k * zL.lattice) :
                L.Fm (2 * j + 3) z = L.Fm (j + 3) z * L.Fm (j + 1) z ^ 3 - L.Fm j z * L.Fm (j + 2) z ^ 3

                Paper lemfrekur, first recursion: F_{2j+3} = F_{j+3}·F_{j+1}³ − F_j·F_{j+2}³ at generic z.

                theorem PeriodPair.lemfrekur_even (L : PeriodPair) (j : ) {z : } (hz : ∀ (k : ), k 0k * zL.lattice) :
                L.Fm (2 * j + 4) z * L.Fm 2 z = L.Fm (j + 2) z * (L.Fm (j + 4) z * L.Fm (j + 1) z ^ 2 - L.Fm j z * L.Fm (j + 3) z ^ 2)

                Paper lemfrekur, second recursion: F_{2j+4}·F₂ = F_{j+2}·(F_{j+4}·F_{j+1}² − F_j·F_{j+3}²) at generic z.

                propfmpm: F_m = P̂_m(℘) (odd m) and F_m = −℘′·P̂_m(℘) (even m) #

                P̂_m is Milla's division polynomial P_m with coefficients evaluated at h₂ = ¼g₂, h₃ = ¼g₃ (paper Thm. propfmpm).

                The evaluation ℤ[h₂, h₃] → ℂ, h₂ ↦ ¼g₂, h₃ ↦ ¼g₃.

                Equations
                Instances For
                  noncomputable def PeriodPair.Pc (L : PeriodPair) (m : ) :

                  P̂_m ∈ ℂ[X]: Milla's division polynomial with h₂ = ¼g₂, h₃ = ¼g₃.

                  Equations
                  Instances For
                    theorem PeriodPair.propfmpm (L : PeriodPair) (m : ) {z : } (hz : ∀ (k : ), k 0k * zL.lattice) :
                    (Odd mL.Fm m z = Polynomial.eval (L.weierstrassP z) (L.Pc m)) (Even mL.Fm m z = -L.derivWeierstrassP z * Polynomial.eval (L.weierstrassP z) (L.Pc m))

                    Milla's propfmpm: at a generic point z (all nonzero integer multiples of z avoid L), F_m(z) = P̂_m(℘(z)) for odd m and F_m(z) = −℘′(z)·P̂_m(℘(z)) for even m.

                    thmbaker (paper Thm. thmbaker) #

                    Both sides are polynomials in ℘(z); by propfmprod and propfmpm they agree at ℘(z) for every generic z, and takes infinitely many values at generic points (irrational real multiples of ω₁), so they agree in ℂ[X].

                    theorem PeriodPair.thmbaker_odd (L : PeriodPair) (m : ) [NeZero m] (hm : Odd m) :
                    Polynomial.C (m ^ 2) * vFinset.univ.erase 0, (Polynomial.X - Polynomial.C (L.weierstrassP (L.divPt m v))) = L.Pc m ^ 2

                    Milla's thmbaker, odd case: m²·∏_{v ≠ 0}(X − ℘(u_v)) = P̂_m(X)² in ℂ[X].

                    Milla's thmbaker, even case: m²·∏_{v ≠ 0}(X − ℘(u_v)) = P̂_m(X)²·4(X³ − ¼g₂X − ¼g₃) in ℂ[X].

                    The endgame: integrality of l_m·℘(u) (paper Thm. theomwpu) #

                    By thmbaker, each division value ℘(u) is a root of P̂_m(X)²·(4(X³ − h₂X − h₃))^{[m even]}. Roots of the monic cubic are integral over R = ℤ[¼g₂, ¼g₃]; for roots of P̂_m we use Polynomial.integralNormalization together with the leading coefficient l_m computed in P_odd_leadingCoeff/P_even_leadingCoeff.

                    noncomputable def PeriodPair.coeffToR (L : PeriodPair) :

                    Evaluation ℤ[h₂, h₃] → R = ℤ[¼g₂, ¼g₃].

                    Equations
                    Instances For
                      noncomputable def PeriodPair.PR (L : PeriodPair) (m : ) :
                      Polynomial [L.g₂ / 4, L.g₃ / 4]

                      P_m over R.

                      Equations
                      Instances For
                        theorem PeriodPair.theomwpu (L : PeriodPair) (m : ) [NeZero m] {v : Fin m × Fin m} (hv : v 0) :
                        IsIntegral (↥[L.g₂ / 4, L.g₃ / 4]) (m * L.weierstrassP (L.divPt m v))

                        Milla's theomwpu: for every m-division point u, m·℘(u) is integral over ℤ[¼g₂, ¼g₃].

                        theorem PeriodPair.theomwpu_even (L : PeriodPair) {m : } [NeZero m] (hm : Even m) {v : Fin m × Fin m} (hv : v 0) :
                        IsIntegral (↥[L.g₂ / 4, L.g₃ / 4]) (m / 2 * L.weierstrassP (L.divPt m v))

                        Milla's theomwpu, second half: for even m, already (m/2)·℘(u) is integral over ℤ[¼g₂, ¼g₃].