Documentation

LeanPool.Chudnovsky.SingularModuli.ModularPolynomialQ

The modular polynomial Φ_m ∈ ℚ[X, Y] (Phase C, chunks B3–B5) #

Third file of Track 1 of Phase C (see Playground/Pi/PhaseC-PLAN.md, §3.1 sub-lemmas (B3)(B5), §6.4). This is the keystone of the whole singular-moduli program: every downstream statement funnels through the identity Φ_m(X, j τ) = ∏_i (X − f_i τ) with -coefficients, and no route avoids it.

For a prime m (kept generic; m ∈ {41, 43, 61, 163} are instantiated later) the file builds, from the m-isogeny coset orbit f m i of CosetOrbit.lean:

Status of the analytic gates (see PhaseC-PLAN.md §6.4) #

Sk_eq_poly_j and PhiQ take the deep analytic facts as hypotheses rather than sorry. The whole file is sorry-free. The gated pieces, with routes, are documented at their TODO blocks:

  1. poleReduction — the removable-singularity step: subtracting c·j^N from a pole-order-N cusp-meromorphic function yields a pole-order-(N−1) one. Route: the cusp function of (h − c j^N)·q^N is analytic at 0 with value 0, hence = w·(analytic), so dividing by one power of the nome stays bounded. Mathlib: AnalyticAt, cuspFunction, the qExpansion ring-hom API of NumberTheory/ModularForms/QExpansion.lean.
  2. liouvilleBaseCase — bounded + SL(2,ℤ)-invariant + holomorphic ⇒ constant. Route (PhaseC-PLAN.md §6.4): descend to the disc via the cusp function, use exists_smul_mem_fd_j (from Valence.lean) to reduce every value to a compact truncation of the fundamental domain, and conclude via the open-mapping / clopen argument.
  3. (B3) q-expansion structure of the power sums (the w-averaging producing the honest q-Laurent expansion with -coefficients and finite pole order) — the input to PhiQ, documented at PhiQ.

(A) Root-of-unity averaging #

The clean arithmetic fact powering (B3): summing ζ^{b·n} over b : ZMod m (with ζ = zetaM m = exp(2πi/m)) gives m when m ∣ n and 0 otherwise. In the w-expansion of the orbit this averages the coset variable ζ^b·w down to the honest nome q = w^m.

theorem Chudnovsky.sum_zmod_eq_range {M : Type u_1} [AddCommMonoid M] (m : ) [NeZero m] (g : M) :
b : ZMod m, g b.val = kFinset.range m, g k

Reindex a sum over ZMod m by ZMod.val to a sum over Finset.range m.

theorem Chudnovsky.zetaM_zpow_eq_one_iff {m : } [NeZero m] (n : ) :
zetaM m ^ n = 1 m n

ζ^n = 1 ↔ m ∣ n for ζ = zetaM m a primitive m-th root of unity.

theorem Chudnovsky.sum_zetaM_zpow_mul {m : } [NeZero m] (n : ) :
b : ZMod m, zetaM m ^ (b.val * n) = if m n then m else 0

Root-of-unity averaging ∑_{b : ZMod m} ζ^{b·n} = m·[m ∣ n]. The ζ^{bn} factor is exactly the b-dependence of the w-expansion of the coset orbit (hasSum_f_some), so this lemma is what makes the power sums have honest q-Laurent expansions in (B3).

SL(2,ℤ)-invariance from the S, T generators #

A plain function h : ℍ → ℂ invariant under the two generators S, T is invariant under all of SL(2,ℤ) — the invariant matrices form a subgroup containing the generators.

theorem Chudnovsky.invariant_of_S_T {h : UpperHalfPlane} (hS : ∀ (τ : UpperHalfPlane), h (ModularGroup.S τ) = h τ) (hT : ∀ (τ : UpperHalfPlane), h (ModularGroup.T τ) = h τ) (γ : Matrix.SpecialLinearGroup (Fin 2) ) (τ : UpperHalfPlane) :
h (γ τ) = h τ

If h is invariant under S and T then it is invariant under all of SL(2,ℤ).

(B) Power sums of the orbit #

powerSum m k τ = ∑_i (f m i τ)^k. Being a symmetric function of the SL(2,ℤ)-permuted orbit, it is SL(2,ℤ)-invariant; being a finite sum of powers of the holomorphic f_i, it is holomorphic.

noncomputable def Chudnovsky.powerSum (m : ) [NeZero m] (k : ) (τ : UpperHalfPlane) :

The k-th power sum ∑_i (f m i τ)^k of the coset orbit.

Equations
Instances For
    theorem Chudnovsky.powerSum_T {m : } [NeZero m] (k : ) (τ : UpperHalfPlane) :

    T-invariance of the power sums (from sum_orbit_T_smul).

    theorem Chudnovsky.powerSum_S {m : } [Fact (Nat.Prime m)] (k : ) (τ : UpperHalfPlane) :

    S-invariance of the power sums (from sum_orbit_S_smul; needs m prime).

    theorem Chudnovsky.powerSum_smul {m : } [Fact (Nat.Prime m)] (k : ) (γ : Matrix.SpecialLinearGroup (Fin 2) ) (τ : UpperHalfPlane) :
    powerSum m k (γ τ) = powerSum m k τ

    SL(2,ℤ)-invariance of the power sums.

    theorem Chudnovsky.mdifferentiable_powerSum {m : } [NeZero m] (k : ) :
    MDiff (powerSum m k)

    Each power sum is holomorphic on .

    (B) The orbit polynomial ∏_i (X − f_i τ) #

    The generating polynomial of the orbit; its coefficients are (up to sign) the elementary symmetric functions of {f_i τ}, which are SL(2,ℤ)-invariant and holomorphic.

    noncomputable def Chudnovsky.orbitPoly (m : ) [NeZero m] (τ : UpperHalfPlane) :

    The orbit polynomial ∏_i (X − f_i τ) ∈ ℂ[X].

    Equations
    Instances For

      The orbit polynomial is monic of degree m + 1.

      The orbit polynomial is S-invariant.

      The orbit polynomial is T-invariant.

      SL(2,ℤ)-invariance of every coefficient of the orbit polynomial: the coset orbit is permuted by γ, so the product ∏_i (X − f_i τ) — and hence each coefficient (an elementary symmetric function of the orbit) — is unchanged.

      Holomorphy of the elementary symmetric functions #

      Each coefficient of ∏_i (X − C (a i τ)) is a polynomial expression in the holomorphic a i τ, hence holomorphic. Proved by induction on the index finset (all coefficients at once).

      theorem Chudnovsky.mdifferentiable_coeff_prod_X_sub_C {ι : Type u_1} (a : ιUpperHalfPlane) (ha : ∀ (i : ι), MDiff (a i)) (s : Finset ι) (n : ) :
      MDiff fun (τ : UpperHalfPlane) => (∏ is, (Polynomial.X - Polynomial.C (a i τ))).coeff n

      Every coefficient of a product ∏_{i ∈ s} (X − C (a i τ)) of monic linear factors with holomorphic roots a i is a holomorphic function of τ.

      theorem Chudnovsky.mdifferentiable_orbitPoly_coeff {m : } [NeZero m] (n : ) :
      MDiff fun (τ : UpperHalfPlane) => (orbitPoly m τ).coeff n

      Each coefficient of the orbit polynomial is a holomorphic function of τ.

      (B4/B5) The q-expansion principle Sk_eq_poly_j #

      The critical lemma of the whole singular-moduli program (PhaseC-PLAN.md §6.4). It says: an SL(2,ℤ)-invariant, holomorphic function that is meromorphic of finite order at the cusp with coefficients in a subring R ⊆ ℂ equals a polynomial in j of bounded degree with R-coefficients. The proof is a pole-order downward induction with coefficient tracking: the leading Laurent coefficient c lies in R; since j = q⁻¹(1 + 744q + …) is monic with integer q-expansion, h − c·jᴺ has strictly smaller pole order while keeping R-coefficients; the base case N = 0 is bounded + invariant + holomorphic, hence constant (Liouville).

      Cusp-meromorphy data #

      We package "meromorphic at the cusp, pole order ≤ N, coefficients in R" as the property that τ ↦ h τ · q τ ^ N is a genuine holomorphic q-expansion function (1-periodic on the disc side, holomorphic on , bounded at i∞) whose q-expansion has all coefficients in R. Then h = q⁻ᴺ · (that holomorphic function) is exactly a Laurent series of pole order ≤ N with R-coefficients.

      structure Chudnovsky.IsCuspMeroR (h : UpperHalfPlane) (N : ) (R : Subring ) :

      h is cusp-meromorphic of pole order ≤ N with R-coefficients: the product h · qᴺ is a holomorphic function with a q-expansion whose coefficients all lie in the subring R ⊆ ℂ.

      Instances For
        noncomputable def Chudnovsky.cuspLeadCoeff (h : UpperHalfPlane) (N : ) :

        The leading Laurent coefficient of a cusp-meromorphic function of pole order ≤ N: the constant q-expansion coefficient of h · qᴺ (i.e. the coefficient of q⁻ᴺ in h).

        Equations
        Instances For
          theorem Chudnovsky.liouvilleBaseCase (R : Subring ) (h : UpperHalfPlane) (hinv : ∀ (γ : Matrix.SpecialLinearGroup (Fin 2) ) (τ : UpperHalfPlane), h (γ τ) = h τ) (hholo : MDiff h) (hmero : IsCuspMeroR h 0 R) :
          cR, ∀ (τ : UpperHalfPlane), h τ = c

          Liouville base case (analytic gate 1 — now discharged). A holomorphic, SL(2,ℤ)-invariant function on that is cusp-meromorphic of pole order ≤ 0 with R-coefficients (i.e. 1-periodic, holomorphic and bounded at i∞, its q-expansion having coefficients in R) is constant, and its value is the q-expansion constant term, which lies in R.

          Route (maximum modulus, PhaseC-PLAN.md §6.4). Descend to the unit disc via the cusp function H := cuspFunction 1 h, which is analytic on Metric.ball 0 1 (differentiableOn_cuspFunction_ball) and satisfies H (q τ) = h τ (eq_cuspFunction). By SL(2,ℤ)-invariance and the fundamental-domain reduction ModularGroup.exists_smul_mem_fd, every value H z on the punctured disc is matched in modulus by a value H w with ‖w‖ ≤ e^{-π}: the pre-image τ of z ≠ 0 moves into 𝒟, where 3 ≤ 4·(Im)² forces Im ≥ 1/2 and hence ‖q‖ ≤ e^{-π}. The maximum-modulus principle in the form Complex.eq_const_of_exists_le then makes H constant on the whole disc, so h τ = H 0; and H 0 = (qExpansion 1 h).coeff 0 ∈ R by cuspFunction_apply_zero / qExpansion_coeff_zero.

          theorem Chudnovsky.Sk_eq_poly_j (base : ∀ (R : Subring ) (h : UpperHalfPlane), (∀ (γ : Matrix.SpecialLinearGroup (Fin 2) ) (τ : UpperHalfPlane), h (γ τ) = h τ)MDiff hIsCuspMeroR h 0 RcR, ∀ (τ : UpperHalfPlane), h τ = c) (step : ∀ (N : ) (R : Subring ) (h : UpperHalfPlane), (∀ (γ : Matrix.SpecialLinearGroup (Fin 2) ) (τ : UpperHalfPlane), h (γ τ) = h τ)MDiff hIsCuspMeroR h (N + 1) RIsCuspMeroR (fun (τ : UpperHalfPlane) => h τ - cuspLeadCoeff h (N + 1) * j τ ^ (N + 1)) N R) (N : ) (R : Subring ) (h : UpperHalfPlane) :
          (∀ (γ : Matrix.SpecialLinearGroup (Fin 2) ) (τ : UpperHalfPlane), h (γ τ) = h τ)MDiff hIsCuspMeroR h N R∃ (P : Polynomial ), (∀ (i : ), P.coeff i R) P.natDegree N ∀ (τ : UpperHalfPlane), h τ = Polynomial.eval (j τ) P

          The q-expansion principle (critical lemma Sk_eq_poly_j), gated on the two analytic primitives. Any SL(2,ℤ)-invariant holomorphic function h that is cusp-meromorphic of pole order ≤ N with R-coefficients equals a polynomial in j of degree ≤ N with all coefficients in the subring R. The pole-order downward induction with coefficient tracking is proved here in full; the two genuinely-analytic inputs — the Liouville base case (base) and the removable-singularity pole-reduction step (step) — are taken as hypotheses (see the TODO blocks above for their routes).

          theorem Chudnovsky.Sk_eq_poly_j_of_step (step : ∀ (N : ) (R : Subring ) (h : UpperHalfPlane), (∀ (γ : Matrix.SpecialLinearGroup (Fin 2) ) (τ : UpperHalfPlane), h (γ τ) = h τ)MDiff hIsCuspMeroR h (N + 1) RIsCuspMeroR (fun (τ : UpperHalfPlane) => h τ - cuspLeadCoeff h (N + 1) * j τ ^ (N + 1)) N R) (N : ) (R : Subring ) (h : UpperHalfPlane) :
          (∀ (γ : Matrix.SpecialLinearGroup (Fin 2) ) (τ : UpperHalfPlane), h (γ τ) = h τ)MDiff hIsCuspMeroR h N R∃ (P : Polynomial ), (∀ (i : ), P.coeff i R) P.natDegree N ∀ (τ : UpperHalfPlane), h τ = Polynomial.eval (j τ) P

          The q-expansion principle with the Liouville base case discharged. Since liouvilleBaseCase closes the base-case gate of Sk_eq_poly_j, only the pole-reduction / removable-singularity step step remains as a hypothesis: any SL(2,ℤ)-invariant holomorphic h that is cusp-meromorphic of pole order ≤ N with R-coefficients equals a degree-≤ N polynomial in j with coefficients in R.

          (B5) Assembly: the modular polynomial Φ_m ∈ ℚ[X][Y] #

          The SL(2,ℤ)-invariant coefficients of orbitPoly m τ = ∏_i (X − f_i τ) are the elementary symmetric functions of the orbit. Feeding each (via Newton's identities from the power sums, plus Sk_eq_poly_j) to the q-expansion principle expresses it as a -polynomial in j. Packaging those -polynomials as the Y-coefficients yields Φ_m ∈ ℚ[Y][X] with the defining identity Φ_m(X, j τ) = ∏_i (X − f_i τ).

          Here we deliver the final packaging step unconditionally: given the per-coefficient -rationality (hrat, the output of (B3) + Sk_eq_poly_j), we build Φ_m and prove the identity.

          Specialization of a ℚ[Y][X]-polynomial at Y = Y₀ ∈ ℂ: map each ℚ[Y]-coefficient to its value at Y₀, landing in ℂ[X]. Applied at Y₀ = j τ this is Φ_m(X, j τ).

          Equations
          Instances For

            The degree of the orbit polynomial is at most m + 1 (it is the product of m + 1 linear factors).

            theorem Chudnovsky.exists_PhiQ {m : } [Fact (Nat.Prime m)] (hrat : ∀ (n : ), ∃ (Q : Polynomial ), ∀ (τ : UpperHalfPlane), (orbitPoly m τ).coeff n = (Polynomial.aeval (j τ)) Q) :
            ∃ (PhiQ : Polynomial (Polynomial )), ∀ (τ : UpperHalfPlane), orbitPoly m τ = (specializeY (j τ)) PhiQ

            The modular polynomial Φ_m ∈ ℚ[Y][X], assembled from the per-coefficient -rationality. Given that each coefficient of ∏_i (X − f_i τ) is a -polynomial in j τ (the output of (B3) + Sk_eq_poly_j), there is Φ_m ∈ ℚ[Y][X] with the keystone identity ∏_i (X − f_i τ) = Φ_m(X, j τ) for every τ. This is the object consumed by ModularPolynomialZ.lean / Rationality.lean / MasserA1.lean.

            Analytic gate 2 (pole reduction): poleReduction #

            This appended section discharges the step hypothesis of Sk_eq_poly_j — the removable-singularity / pole-order-reduction step. Given h cusp-meromorphic of pole order ≤ N+1 with R-coefficients and leading Laurent coefficient c = cuspLeadCoeff h (N+1), the function h − c·j^{N+1} is cusp-meromorphic of pole order ≤ N with R-coefficients.

            The analytic heart is the general lemma divByQ: if F is a holomorphic q-expansion function whose expansion has zero constant term, then F/q is again such a function, with q-expansion coefficients shifted down by one (dslope/removable-singularity at the cusp). The algebraic heart (j·q has integer q-expansion with leading coefficient 1, so the q^{-(N+1)} term cancels and all coefficients stay in R) is done via the qExpansion ring-hom API from JFunction.lean.

            theorem Chudnovsky.qExpansion_coeff_unique_raw {F : UpperHalfPlane} {c : } (hFan : AnalyticAt (UpperHalfPlane.cuspFunction 1 F) 0) (hFper : Function.Periodic (F UpperHalfPlane.ofComplex) 1) (hFholo : MDiff F) (hFbdd : UpperHalfPlane.IsBoundedAtImInfty F) (hF : ∀ (τ : UpperHalfPlane), HasSum (fun (n : ) => c n q τ ^ n) (F τ)) (n : ) :

            Raw-function version of qExpansion_coeff_unique: if cuspFunction 1 F is analytic at 0 and F τ = ∑ c n · q τ ^ n for all τ, then c n is the n-th q-expansion coefficient.

            The cusp function of the constant function 1 is the constant function 1.

            Powers preserve cusp-analyticity, and the q-expansion of a power is the power of the q-expansion.

            The pole-reduction primitive. If F is 1-periodic, holomorphic and bounded at i∞, its q-expansion has zero constant term, and G·q = F, then G is bounded at i∞ and its q-expansion is that of F shifted down by one coefficient. Proof: G τ = dslope (cuspFunction 1 F) 0 (q τ), which is analytic/continuous at 0 since cuspFunction 1 F 0 = 0 (removable singularity); boundedness follows by continuity, and the coefficient shift from the HasSum expansion of F after dividing by q.

            theorem Chudnovsky.poleReduction (N : ) (R : Subring ) (h : UpperHalfPlane) (hinv : ∀ (γ : Matrix.SpecialLinearGroup (Fin 2) ) (τ : UpperHalfPlane), h (γ τ) = h τ) (hholo : MDiff h) (hmero : IsCuspMeroR h (N + 1) R) :
            IsCuspMeroR (fun (τ : UpperHalfPlane) => h τ - cuspLeadCoeff h (N + 1) * j τ ^ (N + 1)) N R

            Analytic gate 2 — the pole-reduction step of Sk_eq_poly_j. Subtracting the leading Laurent term c·j^{N+1} (with c = cuspLeadCoeff h (N+1)) from a pole-order-(N+1) cusp-meromorphic function of R-coefficients yields a pole-order-N one, still with R-coefficients. This closes the step hypothesis of Sk_eq_poly_j.

            theorem Chudnovsky.Sk_eq_poly_j_closed (N : ) (R : Subring ) (h : UpperHalfPlane) :
            (∀ (γ : Matrix.SpecialLinearGroup (Fin 2) ) (τ : UpperHalfPlane), h (γ τ) = h τ)MDiff hIsCuspMeroR h N R∃ (P : Polynomial ), (∀ (i : ), P.coeff i R) P.natDegree N ∀ (τ : UpperHalfPlane), h τ = Polynomial.eval (j τ) P

            The q-expansion principle, fully unconditional. Both analytic gates of Sk_eq_poly_j are now discharged — the Liouville base case (liouvilleBaseCase) and the pole-reduction step (poleReduction) — so an SL(2,ℤ)-invariant holomorphic h that is cusp-meromorphic of pole order ≤ N with R-coefficients equals a degree-≤ N polynomial in j with R-coefficients, with no remaining hypotheses.

            (B3) The power sums are cusp-meromorphic with -coefficients #

            This appended section discharges the last remaining gate of the keystone: the hrat input of exists_PhiQ. For a prime m, every power sum powerSum m k is SL(2,ℤ)-invariant, holomorphic and cusp-meromorphic of pole order ≤ m·k with (indeed )-coefficients, hence (via Sk_eq_poly_j_closed) a -polynomial in j. Newton's identities then push this to the elementary symmetric functions (the orbit-polynomial coefficients), delivering the unconditional keystone exists_PhiQ_closed.

            The analytic heart is the root-of-unity averaging sum_zetaM_zpow_mul: writing each orbit value's q-expansion in the honest base variable w = wParam m τ (with w^m = q τ), the coset points contribute w-powers ζ^{b·n} whose b-sum collapses to a genuine q-Laurent series.

            noncomputable def Chudnovsky.RQ :

            The subring ℚ ⊆ ℂ (image of the rational cast).

            Equations
            Instances For
              theorem Chudnovsky.wParam_pow_mk {m : } [NeZero m] (k : ) (τ : UpperHalfPlane) :
              wParam m τ ^ (m ^ 2 * k) = q τ ^ (m * k)

              w^{m²·k} = q^{m·k}: the top w-power equals the q-power that clears the pole.

              theorem Chudnovsky.hasSum_jqPow_at (k : ) (σ : UpperHalfPlane) :
              HasSum (fun (n : ) => ((PowerSeries.coeff n) (jqInt ^ k)) * q σ ^ n) ((j σ * q σ) ^ k)

              Per-point k-fold q-expansion of j·q. For any σ : ℍ, (j σ · q σ)^k = ∑ₙ (jqInt^k)ₙ · q σ ^ n with the integer coefficients of jqInt^k.

              ‖wParam m τ‖ ≤ 1 (since ‖wParam‖^m = ‖q τ‖ < 1).

              ‖zetaM m‖ = 1 (a root of unity).

              theorem Chudnovsky.norm_gB_le_one {m : } [NeZero m] (k : ) (b : ZMod m) (τ : UpperHalfPlane) :
              zetaM m ^ (-(b.val * k)) * wParam m τ ^ ((m ^ 2 - 1) * k) 1

              ‖gB‖ ≤ 1, where gB is the bounded multiplier appearing in the some b orbit term.

              theorem Chudnovsky.Fi_none_eq {m : } [NeZero m] (k : ) (τ : UpperHalfPlane) :
              f m none τ ^ k * q τ ^ (m * k) = (j (AInf m τ) * q (AInf m τ)) ^ k

              The none orbit term of powerSum·q^{mk} is (j·q)ᵏ composed with the isogeny τ ↦ m·τ.

              theorem Chudnovsky.Fi_some_eq {m : } [NeZero m] (k : ) (b : ZMod m) (τ : UpperHalfPlane) :
              f m (some b) τ ^ k * q τ ^ (m * k) = (j (Acol m b.val τ) * q (Acol m b.val τ)) ^ k * (zetaM m ^ (-(b.val * k)) * wParam m τ ^ ((m ^ 2 - 1) * k))

              The some b orbit term of powerSum·q^{mk} factors as (j·q)ᵏ∘(coset) · gB with ‖gB‖≤1.

              A function bounded by 1 in norm is bounded at i∞.

              theorem Chudnovsky.isBoundedAtImInfty_jqPow_comp (k : ) (A : GL (Fin 2) ) (hA : A 1 0 = 0) :
              UpperHalfPlane.IsBoundedAtImInfty fun (τ : UpperHalfPlane) => (j (A τ) * q (A τ)) ^ k

              (j·q)ᵏ composed with an upper-triangular isogeny A (lower-left entry 0) is bounded at i∞, since the isogeny pushes towards the cusp.

              Boundedness at the cusp. powerSum m k · q^{mk} is bounded at i∞: each orbit term is a bounded (j·q)ᵏ-value (composed with an isogeny) times a factor of norm ≤ 1.

              The averaging: q-series of the some b orbit terms #

              theorem Chudnovsky.coset_summand_eq {m : } [NeZero m] (k : ) (b : ZMod m) (τ : UpperHalfPlane) (n : ) :
              ((PowerSeries.coeff n) (jqInt ^ k)) * (zetaM m ^ b.val * wParam m τ) ^ n * (zetaM m ^ (-(b.val * k)) * wParam m τ ^ ((m ^ 2 - 1) * k)) = ((PowerSeries.coeff n) (jqInt ^ k)) * zetaM m ^ (b.val * (n - k)) * wParam m τ ^ ((m ^ 2 - 1) * k + n)

              The summand identity feeding the root-of-unity average: the n-th term of the some b orbit q-expansion, rewritten so the b-dependence is exactly ζ^{b·(n-k)}.

              theorem Chudnovsky.hasSum_coset_some {m : } [NeZero m] (k : ) (b : ZMod m) (τ : UpperHalfPlane) :
              HasSum (fun (n : ) => ((PowerSeries.coeff n) (jqInt ^ k)) * zetaM m ^ (b.val * (n - k)) * wParam m τ ^ ((m ^ 2 - 1) * k + n)) (f m (some b) τ ^ k * q τ ^ (m * k))

              Per-coset q-expansion of the some b orbit term. After multiplying (j·q)ᵏ∘(coset) by the pole-clearing factor, the n-th coefficient carries the b-dependence ζ^{b·(n-k)}.

              noncomputable def Chudnovsky.CAint (m k p : ) :

              Integer q-coefficients of the averaged coset contribution ∑_b (f_b)ᵏ·q^{mk}.

              Equations
              Instances For
                noncomputable def Chudnovsky.CIint (m k p : ) :

                Integer q-coefficients of the -coset contribution (f_∞)ᵏ·q^{mk}.

                Equations
                Instances For
                  theorem Chudnovsky.aux_kadd {m : } [NeZero m] (k : ) :
                  k + (m ^ 2 - 1) * k = m ^ 2 * k
                  theorem Chudnovsky.hasSum_I {m : } [NeZero m] (k : ) (τ : UpperHalfPlane) :
                  HasSum (fun (p : ) => (CIint m k p) * q τ ^ p) (f m none τ ^ k * q τ ^ (m * k))

                  q-expansion of the -coset term. (f_∞)ᵏ·q^{mk} is the honest q-series with integer coefficients CIint.

                  theorem Chudnovsky.cast_c {m : } [NeZero m] (k : ) :
                  ↑((m ^ 2 - 1) * k) = m ^ 2 * k - k

                  Cast helper: ((m²-1)·k : ℤ) = m²·k − k.

                  theorem Chudnovsky.hasSum_A {m : } [NeZero m] (k : ) (τ : UpperHalfPlane) :
                  HasSum (fun (p : ) => (CAint m k p) * q τ ^ p) (∑ b : ZMod m, f m (some b) τ ^ k * q τ ^ (m * k))

                  q-expansion of the averaged coset contribution ∑_b (f_b)ᵏ·q^{mk}. The root-of-unity average sum_zetaM_zpow_mul collapses the b-dependence, leaving an honest q-series with integer coefficients CAint.

                  noncomputable def Chudnovsky.Cq (m k p : ) :

                  Integer q-coefficients of powerSum·q^{mk}.

                  Equations
                  Instances For
                    theorem Chudnovsky.hasSum_powerSum_mul_qpow {m : } [Fact (Nat.Prime m)] (k : ) (τ : UpperHalfPlane) :
                    HasSum (fun (p : ) => (Cq m k p) * q τ ^ p) (powerSum m k τ * q τ ^ (m * k))

                    The full q-series for powerSum·q^{mk}.

                    (B3) The power sums are cusp-meromorphic of pole order ≤ m·k with -coefficients.

                    theorem Chudnovsky.powerSum_eq_aeval_j {m : } [Fact (Nat.Prime m)] (k : ) :
                    ∃ (Q : Polynomial ), ∀ (τ : UpperHalfPlane), powerSum m k τ = (Polynomial.aeval (j τ)) Q

                    (B3) conclusion: each power sum of the coset orbit is a -polynomial in j.

                    (B4/B5) Newton's identities: the orbit-polynomial coefficients are -polynomials in j #

                    The -subalgebra of ℍ → ℂ of functions that are -polynomials in j.

                    Equations
                    Instances For

                      Evaluating aeval (τ ↦ j τ) Q at a point τ gives aeval (j τ) Q.

                      theorem Chudnovsky.mem_polyJ_iff {g : UpperHalfPlane} :
                      g polyJ ∃ (Q : Polynomial ), ∀ (τ : UpperHalfPlane), g τ = (Polynomial.aeval (j τ)) Q

                      Each power sum lies in polyJ.

                      noncomputable def Chudnovsky.esf (m : ) [NeZero m] (l : ) (τ : UpperHalfPlane) :

                      The elementary symmetric functions of the orbit values, as functions of τ.

                      Equations
                      Instances For
                        theorem Chudnovsky.aeval_psum_eq_powerSum {m : } [NeZero m] (l : ) (τ : UpperHalfPlane) :
                        (MvPolynomial.aeval fun (i : Option (ZMod m)) => f m i τ) (MvPolynomial.psum (Option (ZMod m)) l) = powerSum m l τ

                        aeval of a power sum polynomial is the orbit power sum.

                        theorem Chudnovsky.newton_esf {m : } [NeZero m] (l : ) (τ : UpperHalfPlane) :
                        l * esf m l τ = (-1) ^ (l + 1) * aFinset.antidiagonal l with a.1 < l, (-1) ^ a.1 * esf m a.1 τ * powerSum m a.2 τ

                        Newton's identity for the orbit (pointwise), obtained by evaluating MvPolynomial.mul_esymm_eq_sum at the orbit values.

                        algebraMap ℚ (ℍ → ℂ) evaluated at τ is the rational cast.

                        theorem Chudnovsky.esf_mem_polyJ {m : } [Fact (Nat.Prime m)] (l : ) :
                        (fun (τ : UpperHalfPlane) => esf m l τ) polyJ

                        Each elementary symmetric function of the orbit lies in polyJ (Newton induction).

                        theorem Chudnovsky.orbitPoly_coeff_mem_polyJ {m : } [Fact (Nat.Prime m)] (n : ) :
                        (fun (τ : UpperHalfPlane) => (orbitPoly m τ).coeff n) polyJ

                        Each coefficient of the orbit polynomial lies in polyJ.

                        theorem Chudnovsky.exists_PhiQ_closed {m : } [Fact (Nat.Prime m)] :
                        ∃ (PhiQ : Polynomial (Polynomial )), ∀ (τ : UpperHalfPlane), orbitPoly m τ = (specializeY (j τ)) PhiQ

                        The unconditional keystone. For a prime m, the modular polynomial Φ_m ∈ ℚ[Y][X] exists with the defining identity ∏_i (X − f_i τ) = Φ_m(X, j τ) for every τ. All analytic gates are discharged: the hrat input is now proved via the (B3) root-of-unity averaging, Sk_eq_poly_j_closed, and Newton's identities.