The m-isogeny coset orbit of j (Phase C, chunk B2) #
Second file of Track 1 of Phase C (see Playground/Pi/PhaseC-PLAN.md, §3.1 sub-lemma
(B2) and §6.5 decision point 2). For a prime m (kept generic; the project
instantiates m ∈ {41, 43, 61, 163} later) this file builds the degree-m isogeny orbit
of the j-invariant: the m + 1 functions
f_∞(τ) = j (m·τ)— from the Hermite-normal-form matrix[[m,0],[0,1]];f_b(τ) = j ((τ + b)/m)forb = 0, …, m-1— from the matrices[[1,b],[0,m]].
indexed by Option (ZMod m) (none ↦ f_∞, some b ↦ f_b). The point maps are realized
through Mathlib's GL (Fin 2) ℝ-action on ℍ (UpperHalfPlane.MoebiusAction), the choice
recommended by the plan's trap list ("pick one action early and stick to it").
The (B2) deliverables:
f: them + 1orbit functions, andmdifferentiable_f: each is holomorphic onℍ;f_some_congr: well-definedness modm(thesome-index really lives onZMod m);T-permutationf_T_smul:f i (T • τ) = f (σ_T i) τwithσ_Tthe rotationnone ↦ none,some b ↦ some (b + 1);S-permutationf_S_smul:f i (S • τ) = f (σ_S i) τwithσ_Sthe involutionnone ↔ some 0,some b ↦ some (-b⁻¹)(b ≠ 0; needsmprime for the field inverse);- the master statement
f_SL_perm: the multiset{f i τ}is permuted by everyS/Tgenerator (henceSL(2,ℤ)-invariant), packaged as the pair of permutation lemmas.
q-expansions in the base variable w = exp(2πiτ/m) (decision point 2) #
Rather than Puiseux series in q^{1/m}, we follow the clean formulation flagged in the
plan brief: introduce the honest holomorphic function w = wParam m τ = exp(2πiτ/m) (a
genuine power series variable, no root-taking) and the constant ζ = zetaM m = exp(2πi/m).
The nome factorizes on each coset point:
q_Acol_smul:q ((τ+b)/m) = ζ^b · w;q_AInf_smul:q (m·τ) = w^{m²},
so composing JFunction's integer expansion hasSum_j_mul_q gives, for every τ,
hasSum_f_some:HasSum (fun n ↦ c n · (ζ^b·w)^n) (f (some b) τ · ζ^b·w);hasSum_f_none:HasSum (fun n ↦ c n · (w^{m²})^n) (f none τ · w^{m²}),
with c n = jqInt.coeff n ∈ ℤ the integer j-coefficients. The b-dependence is exactly
ζ^{bn}, which is what powers the root-of-unity averaging of ModularPolynomialQ.lean's
(B3).
The coset matrices and their action on ℍ #
The Hermite-normal-form matrix [[m,0],[0,1]] of determinant m, as an element of
GL (Fin 2) ℝ; its Möbius action is τ ↦ m·τ.
Equations
- Chudnovsky.AInf m = Matrix.GeneralLinearGroup.mkOfDetNeZero !![↑m, 0; 0, 1] ⋯
Instances For
The Hermite-normal-form matrix [[1,b],[0,m]] of determinant m, as an element of
GL (Fin 2) ℝ; its Möbius action is τ ↦ (τ + b)/m.
Equations
- Chudnovsky.Acol m b = Matrix.GeneralLinearGroup.mkOfDetNeZero !![1, ↑b; 0, ↑m] ⋯
Instances For
The ∞-coset point: AInf m • τ = m·τ.
The orbit functions and holomorphy #
The m + 1 coset-orbit functions: f none τ = j (m·τ) and f (some b) τ = j ((τ+b)/m).
Indexed by Option (ZMod m).
Equations
- Chudnovsky.f m none x✝ = Chudnovsky.j (Chudnovsky.AInf m • x✝)
- Chudnovsky.f m (some b) x✝ = Chudnovsky.j (Chudnovsky.Acol m ↑b.val • x✝)
Instances For
j under integer translation and well-definedness of the b-cosets mod m #
j is invariant under translation by any integer: j (n +ᵥ τ) = j τ.
The b-coset function depends only on b mod m: if m ∣ a' - a then
j ((τ+a')/m) = j ((τ+a)/m) (adding m to the offset shifts the point by an integer,
which j absorbs).
The permutation of the orbit induced by T: rotation some b ↦ some (b+1), none fixed.
Equations
Instances For
The S-permutation #
S • τ = -1/τ. The key transfer lemma: if the GL-matrix A factors as ↑γ * B with
γ ∈ SL(2,ℤ), then j (A • τ) = j (B • τ) (the SL(2,ℤ)-factor is absorbed by
j_smul). All S-orbit identities are instances of a single matrix identity
coset i · S = γ' · coset (σS i).
Absorb an SL(2,ℤ) left factor of a GL-matrix into j-invariance.
The permutation of the orbit induced by S: the involution swapping none ↔ some 0 and
sending some b ↦ some (-b⁻¹) for b ≠ 0 (needs m prime for the field inverse).
Equations
Instances For
q-expansions in the base variable w = exp(2πiτ/m) #
The clean formulation of decision point 2: everything is a genuine power series in the
honest holomorphic function w = wParam m τ = exp(2πiτ/m) (no root-taking), with the
m-th root of unity ζ = zetaM m = exp(2πi/m). The nome factorizes on each coset point,
and composing JFunction's integer expansion hasSum_j_mul_q yields the coefficientwise
HasSum statements consumed by ModularPolynomialQ.lean's (B3).
The base variable w = exp(2πiτ/m): an honest holomorphic function of τ
(no q^{1/m}), with w^m = q τ.
Equations
- Chudnovsky.wParam m τ = Complex.exp (2 * ↑Real.pi * Complex.I * ↑τ / ↑m)
Instances For
The m-th root of unity ζ = exp(2πi/m).
Equations
- Chudnovsky.zetaM m = Complex.exp (2 * ↑Real.pi * Complex.I / ↑m)
Instances For
w^m = q τ: raising the base variable to the m-th power recovers the ordinary nome.
q-expansion of the b-coset function in (ζ^b·w): the HasSum obtained from
JFunction's integer j-expansion. The b-dependence is exactly ζ^{b·n} inside
(ζ^b w)^n, which powers the root-of-unity averaging of (B3).
Master statement: SL(2,ℤ)-invariance of the orbit's symmetric functions #
Since S and T generate SL(2,ℤ), the fact that both permute the multiset {f i τ}
(the S/T-permutation lemmas above) makes every symmetric function of the orbit
SL(2,ℤ)-invariant. We record the two consequences ModularPolynomialQ.lean's (B3)/(B4)
consume directly: any product (e.g. ∏ (X - f i), the elementary symmetric generating
polynomial) and any sum (e.g. ∑ (f i)^k, the power sums) of the orbit values is unchanged
by each generator.
Any product over the orbit is S-invariant.
Any sum over the orbit is S-invariant (e.g. the power sums ∑ (f i)^k).