Documentation

LeanPool.FLTEichlerShimura.Definitions.Def_ModularCurve_X0

Function field of X0​(N) inside Q((q)) #

Definition: ModularCurve_X0 (23b22550-cc5b-5ca8-a5e3-1c4c7dd76b29), by Claude, 2026-09-05.

The module presents the modular curve $X_0(N)$ over $\mathbb{Q}$ by its function field, realised concretely inside the formal Laurent series field LaurentSeries ℚ $=\mathbb{Q}((q))$. For a coefficient ring $R$ and $N\neq 0$, qExpand R N is the ring endomorphism of LaurentSeries R obtained by embedding the index domain along $k\mapsto Nk$, i.e. the substitution $q\mapsto q^{N}$; it is injective, is the identity for $N=1$, fixes constants, and composes as qExpand M ∘ qExpand N = qExpand (M*N). Over $\mathbb{Q}$ the same map is packaged as the algebra endomorphism qExpandₐ N. The $q$-expansion of the $j$-invariant is built integrally: eisenstein4 is the power series with constant term $1$ and $n$-th coefficient $240\sum_{d\mid n}d^{3}$; etaProd $=\prod_{n\ge 1}(1-q^{n})$ (an infinite product in the product topology on power series); dedekindEtaUnit is its $24$-th power, with constant term $1$, and dedekindEtaUnitInv its power-series inverse. Then jNum $=E_4^{3}\prod_{n\ge1}(1-q^{n})^{-24}$ over $\mathbb{Z}$, jNumQ its image over $\mathbb{Q}$, and jq $=q^{-1}E_4^{3}\prod_{n\ge1}(1-q^{n})^{-24}$; the coefficient lemmas record that jq has leading term $q^{-1}$ with coefficient $1$ and vanishes below, and that jq ≠ 0. Further, jqN N $=$ qExpand ℚ N jq, i.e. $j(q^{N})$.

The fields are modularFunctionField N $=\mathbb{Q}(j(q),j(q^{N}))$ and modularFunctionFieldFull N, the subfield generated by divisorExpansions N $=\{j(q^{d}) : 0\neq d\mid N\}$; there are the containments $\mathbb{Q}(j)\le$ modularFunctionField N $\le$ modularFunctionFieldFull N, monotonicity of the full field in $N$ under divisibility, and $(q\mapsto q^{\ell})$ sends modularFunctionFieldFull N into modularFunctionFieldFull (N*ℓ). Two inputs are isolated rather than proved. ModularPolynomialData N is a structure carrying a polynomial $\Phi\in(\mathbb{Z}[X])[Y]$ together with proofs that it is monic, that its degree in $Y$ equals dedekindPsi N $=\sum_{d\mid N,\,d\text{ squarefree}}N/d$, and that $\Phi(j(q),j(q^{N}))=0$ under evalAtJ : ℤ[X] →+* ℚ((q)), $X\mapsto j(q)$; only the level-one instance $\Phi=Y-X$ is constructed. FunctionFieldGeneration M is the proposition that $j(q^{d})\in\mathbb{Q}(j(q),j(q^{M}))$ for every nonzero $d\mid M$, proved here only for $M=1$. Auxiliary items jGen, evalAtJGen and ModularPolynomialData.toAdjoin read $\Phi$ as a monic polynomial over $\mathbb{Q}(j(q))$.

Relation to Mathlib. Mathlib has no modular curve, modular polynomial or Dedekind psi function; these are the project's own definitions, built on Mathlib's HahnSeries/LaurentSeries API (embDomainRingHom, ofPowerSeries), on PowerSeries.invOfUnit and on infinite products in the product topology on power series.

Where it is used. This is the curve layer of an algebraic presentation of $X_0(N)$ over $\mathbb{Q}$ by its function field, on which the later construction of $J_0(N)$ and its Hecke action rests; by itself it says nothing about Jacobians or Galois representations. The modular polynomial data and the generation predicate are carried as hypotheses by the statements that use them, with only the level-one cases constructed here.

<!-- Generated by add_prove2me_provenance.py -->

noncomputable def ModularCurve.qExpand (R : Type u_1) [CommRing R] (N : ℕ) [NeZero N] :

The Laurent-series homomorphism substituting q ^ N for q.

Equations
Instances For
    @[simp]
    theorem ModularCurve.qExpand_coeff_mul {R : Type u_1} [CommRing R] (N : ℕ) [NeZero N] (f : LaurentSeries R) (k : ℤ) :
    ((qExpand R N) f).coeff (↑N * k) = f.coeff k
    theorem ModularCurve.qExpand_coeff_of_not_dvd {R : Type u_1} [CommRing R] (N : ℕ) [NeZero N] (f : LaurentSeries R) {k : ℤ} (hk : ¬↑N ∣ k) :
    ((qExpand R N) f).coeff k = 0
    @[simp]
    theorem ModularCurve.qExpand_single {R : Type u_1} [CommRing R] (N : ℕ) [NeZero N] (k : ℤ) (r : R) :
    (qExpand R N) ((HahnSeries.single k) r) = (HahnSeries.single (↑N * k)) r
    theorem ModularCurve.qExpand_C {R : Type u_1} [CommRing R] (N : ℕ) [NeZero N] (r : R) :
    theorem ModularCurve.qExpand_one_apply {R : Type u_1} [CommRing R] (f : LaurentSeries R) :
    (qExpand R 1) f = f
    theorem ModularCurve.qExpand_congr {R : Type u_1} [CommRing R] {M K : ℕ} [NeZero M] [NeZero K] (h : M = K) (f : LaurentSeries R) :
    (qExpand R M) f = (qExpand R K) f
    theorem ModularCurve.qExpand_qExpand {R : Type u_1} [CommRing R] (N : ℕ) [NeZero N] (M : ℕ) [NeZero M] (f : LaurentSeries R) :
    (qExpand R M) ((qExpand R N) f) = (qExpand R (M * N)) f

    The substitution q ↦ q ^ N as a rational algebra homomorphism.

    Equations
    Instances For

      The normalized weight-four Eisenstein power series with integer coefficients.

      Equations
      Instances For

        The formal infinite product ∏ n ≥ 1, (1 - q ^ n).

        Equations
        Instances For

          The unit power series Δ / q, defined as etaProd ^ 24.

          Equations
          Instances For
            noncomputable def ModularCurve.jNum :

            The power series E₄³ / dedekindEtaUnit, equal to q * j.

            Equations
            Instances For

              The rational-coefficient version of jNum.

              Equations
              Instances For
                noncomputable def ModularCurve.jq :

                The Laurent-series j-invariant q⁻¹ * jNumQ.

                Equations
                Instances For
                  theorem ModularCurve.coeff_jq_pow_self (n : ℕ) :
                  (jq ^ n).coeff (-↑n) = 1
                  theorem ModularCurve.coeff_jq_pow_of_lt {n : ℕ} {m : ℤ} (hm : m < -↑n) :
                  (jq ^ n).coeff m = 0
                  theorem ModularCurve.coeff_jq_of_lt {k : ℤ} (hk : k < -1) :
                  jq.coeff k = 0
                  noncomputable def ModularCurve.jqN (N : ℕ) [NeZero N] :

                  The Laurent-series j-invariant after the substitution q ↦ q ^ N.

                  Equations
                  Instances For
                    @[simp]

                    Dedekind's psi function, expressed as a sum of N / d over squarefree divisors of N.

                    Equations
                    Instances For

                      Evaluation of an integer polynomial at the Laurent-series j-invariant.

                      Equations
                      Instances For

                        A monic integer bivariate polynomial of degree dedekindPsi N vanishing at j(q), j(q ^ N).

                        Instances For

                          The modular polynomial data at level one, given by Y - X.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            Each j(q ^ d) for a divisor d of M lies in the field generated by j(q) and j(q ^ M).

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For

                              The Laurent-series field model ℚ(j(q), j(q ^ N)).

                              Equations
                              Instances For
                                noncomputable def ModularCurve.jGen :
                                ↥ℚ⟮jq⟯

                                The Laurent-series j-invariant regarded as an element of the intermediate field it generates.

                                Equations
                                Instances For
                                  noncomputable def ModularCurve.evalAtJGen :

                                  Evaluation of integer polynomials at jGen in the intermediate field generated by j.

                                  Equations
                                  Instances For

                                    The polynomial over ℚ(j) obtained by evaluating the coefficients of Φ at j.

                                    Equations
                                    Instances For

                                      The set of Laurent series j(q ^ d) for nonzero divisors d of N.

                                      Equations
                                      Instances For

                                        The intermediate field generated by all the divisor expansions j(q ^ d).

                                        Equations
                                        Instances For
                                          theorem ModularCurve.qExpandₐ_comp (ℓ ℓ' : ℕ) [NeZero ℓ] [NeZero ℓ'] :
                                          (qExpandₐ ℓ).comp (qExpandₐ ℓ') = qExpandₐ (ℓ * ℓ')