Definitions/Def_ModularCurve_ModPFormFn.lean
Mod- modular forms as Laurent series; stack order
Throughout, K is a field, \bar\jmath \in K((q)) denotes the Laurent series jqModC K (the image in K((q)) of the integral q-expansion of the modular invariant j), and \theta = q\,d/dq is realised by the K-linear map thetaL, f \mapsto q\cdot f' on K((q)). The module fixes the vocabulary in which a mod-p modular form of even weight 2m is encoded as a single Laurent series: thetaJ K is \theta\bar\jmath, and qexpOfWeight K m G, for m \in \mathbb{Z} and G \in K((q)), is the product G\cdot(\theta\bar\jmath)^m, the weight-2m expansion with coefficient G.
Holomorphy is phrased as integrality inside the ambient field K((q)). For m \in \mathbb{N}, IsModPFormFn K m G is the conjunction of two conditions: G^{6}\,\bar\jmath^{\,4m}(\bar\jmath-1728)^{3m} is integral over the K-subalgebra K[\bar\jmath] generated by \bar\jmath, and G^{2}\,\bar\jmath^{\,m}(\bar\jmath-1728)^{m} is integral over K[\bar\jmath^{-1}] (here 1728 is the image of the scalar under K \to K((q))). IsModPCuspFormFn K m G keeps the first condition and replaces the second by the existence of an M \in \mathbb{N} for which G^{2M}\,\bar\jmath^{\,mM+1}(\bar\jmath-1728)^{mM} is integral over K[\bar\jmath^{-1}]: the same exponent pattern scaled by M, with one extra factor of \bar\jmath, which amounts to a strict inequality at the cusps. Both predicates are conditions on the Laurent series G alone; the level enters only through the field in which G is required to lie by the consumers of the notion.
Finally, for a level N \ge 1, an element G of the level-N modular function field modularFunctionFieldC K N and a place x of that field over K, stackOrd N m G x is the integer
u_x \cdot \operatorname{ord}_x(G) + m\bigl(\operatorname{jWidth}(\bar\jmath(x)) - 1\bigr),
where \bar\jmath(x) is the value x.evalAt (jGeomGen K N) of the generator \bar\jmath at x, \operatorname{jWidth}(j) is 3, 2 or 1 according as j = 0, j = 1728 or neither, and u_x is placeWidth N x, namely \operatorname{jWidth}(\bar\jmath(x)) divided (truncated natural division) by the ramification index \operatorname{ord}_x(\bar\jmath - \bar\jmath(x)) of the map to the j-line at x, truncated to \mathbb{N}. Thus u_x is 0, and the first term degenerates, at places where that index vanishes or exceeds the width, such as the poles of \bar\jmath.
Relation to Mathlib
Mathlib's modular forms are analytic objects; it has no notion of mod-p modular form, nor of the width or stack order of a place on a modular function field. These are the project's own predicates, expressed with Mathlib's LaurentSeries, Algebra.adjoin and IsIntegral.
Where it is used
These predicates give the holomorphy and cuspidality conditions for mod-p forms of weight 2m presented as functions on the j-line, and stackOrd measures the order of vanishing of such a form at an affine place of the level-N modular function field, counted on the moduli stack. They are the vocabulary in which the Hasse invariant is handled as the function (\theta\bar\jmath)^{-(p-1)/2}, with simple zeros exactly at the supersingular places, in the characteristic-\ell study of X_0(N) preceding level lowering.
References
- J.-P. Serre, Formes modulaires et fonctions zêta p-adiques, in: Modular Functions of One Variable III, Lecture Notes in Mathematics 350, Springer, 1973, 191–268
- N. M. Katz, p-adic properties of modular schemes and modular forms, in: Modular Functions of One Variable III, Lecture Notes in Mathematics 350, Springer, 1973, 69–190
- G. Shimura, Introduction to the Arithmetic Theory of Automorphic Functions, Princeton University Press, 1971
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 35 lines
- 5 declarations
- used in the statements of 50 theorems and imported by 67 proofs
- imports 2 definition modules
Source file: Definitions/Def_ModularCurve_ModPFormFn.lean
Imported by
Declarations
- def
ModularCurve.thetaJ - def
ModularCurve.qexpOfWeight - def
ModularCurve.stackOrd - def
ModularCurve.IsModPFormFn - def
ModularCurve.IsModPCuspFormFn
Source
import Mathlib import Definitions.Def_ModularCurve_PlaceWidth import Definitions.Def_ModularCurve_QExpansionDiff set_option autoImplicit false noncomputable section open AlgebraicCurve namespace ModularCurve def thetaJ (K : Type*) [Field K] : LaurentSeries K := thetaL K (jqModC K) def qexpOfWeight (K : Type*) [Field K] (m : ℤ) (G : LaurentSeries K) : LaurentSeries K := G * thetaJ K ^ m def stackOrd {K : Type*} [Field K] [DecidableEq K] (N : ℕ) [NeZero N] (m : ℤ) (G : ↥(modularFunctionFieldC K N)) (x : Place K (modularFunctionFieldC K N)) : ℤ := (placeWidth N x : ℤ) * x.ord G + m * ((jWidth (x.evalAt (jGeomGen K N)) : ℤ) - 1) def IsModPFormFn (K : Type*) [Field K] (m : ℕ) (G : LaurentSeries K) : Prop := IsIntegral (Algebra.adjoin K ({jqModC K} : Set (LaurentSeries K))) (G ^ 6 * jqModC K ^ (4 * m) * (jqModC K - algebraMap K (LaurentSeries K) 1728) ^ (3 * m)) ∧ IsIntegral (Algebra.adjoin K ({(jqModC K)⁻¹} : Set (LaurentSeries K))) (G ^ 2 * jqModC K ^ m * (jqModC K - algebraMap K (LaurentSeries K) 1728) ^ m) def IsModPCuspFormFn (K : Type*) [Field K] (m : ℕ) (G : LaurentSeries K) : Prop := IsIntegral (Algebra.adjoin K ({jqModC K} : Set (LaurentSeries K))) (G ^ 6 * jqModC K ^ (4 * m) * (jqModC K - algebraMap K (LaurentSeries K) 1728) ^ (3 * m)) ∧ ∃ M : ℕ, IsIntegral (Algebra.adjoin K ({(jqModC K)⁻¹} : Set (LaurentSeries K))) (G ^ (2 * M) * jqModC K ^ (m * M + 1) * (jqModC K - algebraMap K (LaurentSeries K) 1728) ^ (m * M)) end ModularCurve end
Statements phrased using this module (50)
- Mod p forms of weight 2m come from modular functions
ModPForms.exists_isModPFormFn_qexpOfWeight_eq_of_mem_modPMod788 below · depth 16 - Weight-2m q-expansions of mod-p modular functions lie in `modPMod`
ModPForms.exists_mem_modPMod_ofPowerSeries_eq_qexpOfWeight_of_isModPFormFn857 below · depth 16 - Cuspidal Hecke eigen-function yields mod-p cusp eigenform of weight 2m'
ModularCurve.SSHeckeV2.exists_isModPEigen_modPCusp_of_eigen_riemannRochSpace997 below · depth 16 - Hecke eigenfunctions in L(D_m) give mod-p eigenforms
ModularCurve.SSHeckeV2.exists_isModPEigen_of_eigen_riemannRochSpace876 below · depth 16 - Dual Hecke operators on Ω(D') and the cuspidal exit
ModularCurve.SSHeckeV2.exists_omegaHecke_dualMap_theta_and_exit1,236 below · depth 16 - Multiplication by b is ℓ-semilinear for the supersingular Hecke operator
ModularCurve.SSHeckeV2.ssHeckeFun_bMul_eq_smul_bMul_ssHeckeFun1,008 below · depth 16 - Eₚ₊₁ mod p is non-vanishing at supersingular places
ModularCurve.exists_coe_eq_qP_mul_thetaL_jqModC_zpow_and_stackOrd_eq_zero499 below · depth 16 - Hasse invariant as (thetajmath̄)^{-(p-1)/2} on level N
ModularCurve.exists_coe_eq_thetaL_jqModC_zpow_and_stackOrd_eq471 below · depth 16 - Curve package for the level-N modular function field
ModularCurve.hasCanonicalDivisor_and_dCoordGenerates_and_hasPrincipalDivisors_and_nontrivial_kaehler120 below · depth 16 - Order conditions at affine places and cusps imply integrality
ModularCurve.isModPFormFn_of_forall_stackOrd_nonneg_of_forall_le_ord368 below · depth 16 - Integral weight-2m holomorphy gives membership in L(D)
ModularCurve.mem_riemannRochSpace_of_isModPFormFn1 below · depth 16 - Riemann–Roch space of the weight divisor equals mod-p forms
ModularCurve.mem_riemannRochSpace_weightDivisor_iff_isModPFormFn372 below · depth 16 - q-expansion of the weight-2m trace Hecke operator
ModularCurve.qexpOfWeight_trace_heckeBetaC_mul_pow_eq_heckePS_of_eq_smul_map132 below · depth 16 - Vanishing supersingular leading coefficients versus stack order
ModularCurve.resFnFun_eq_zero_iff_forall_one_le_stackOrd364 below · depth 16 - Integrality bounds stack orders and orders at cusps
ModularCurve.stackOrd_nonneg_and_le_ord_of_isModPFormFn364 below · depth 16 - Reductions of integral cusp forms give cuspidal mod-p modular functions
ModPForms.exists_isModPCuspFormFn_qexpOfWeight_eq_of_mem_modPCusp789 below · depth 17 - Cuspidal mod p modular functions lift to cusp forms
ModPForms.exists_mem_modPCusp_ofPowerSeries_eq_qexpOfWeight_of_isModPCuspFormFn985 below · depth 17 - Mod p weight-2m functions on X₀(N) lift, K algebraically closed
ModPForms.exists_mem_modPMod_ofPowerSeries_eq_qexpOfWeight_of_isModPFormFn_of_isAlgClosed854 below · depth 17 - Weight-zero mod-p forms are reductions of classical forms
ModPForms.exists_mem_modPMod_zero_ofPowerSeries_eq_qexpOfWeight_zero_of_isModPFormFn0 below · depth 17 - Base change of mod-p modular functions along a field map
ModularCurve.IsModPFormFn.coeffMap0 below · depth 17 - Descent of the mod-p weight condition along algebraic extensions
ModularCurve.IsModPFormFn.of_coeffMap_algebraMap0 below · depth 17 - Riemann–Roch bound for mod-3 cusp forms of weight 2m
ModularCurve.card_le_dimFormulaCusp_of_isModPCuspFormFn_of_linearIndependent_of_char_three742 below · depth 17 - Vanishing in negative weight for mod-p modular functions
ModularCurve.eq_zero_of_forall_stackOrd_nonneg_of_forall_le_ord_of_neg424 below · depth 17 - Vanishing of (πᵃG)(x) iff stack order at least one
ModularCurve.evalAt_zpow_mul_eq_zero_iff_one_le_stackOrd4 below · depth 17 - Galois descent for stable subspaces of L((q))
ModularCurve.exists_coeffEmb_basis_of_forall_coeffMap_mem1 below · depth 17 - Riemann–Roch space of the weight-2m floor divisor
ModularCurve.isModPFormFn_of_mem_riemannRochSpace3 below · depth 17 - The mod-p form condition is K-linear
ModularCurve.isModPFormFn_zero_and_add_and_smul0 below · depth 17 - Cuspidal dictionary: L(D_{2m}-cusps) versus mod p cusp forms
ModularCurve.mem_riemannRochSpace_iff_isModPCuspFormFn_of_forall_eq_weightFloor_sub372 below · depth 17 - Vanishing of Ω(D') at the edge weight 2m=p+1
ModularCurve.omegaSpace_eq_bot_of_two_mul_eq_add_one808 below · depth 17 - Stack order zero at supersingular places for ̃ P (thetajmath̄)^{-(p+1)/2}
ModularCurve.stackOrd_qP_mul_thetaL_jqModC_zpow_eq_zero_of_mem_ssPlaces497 below · depth 17 - Weil differentials bounded by D versus mod-p cusp functions
ModularCurve.weilOfKaehler_smul_D_jGeomGen_mem_omegaSpace_iff_isModPCuspFormFn505 below · depth 17 - Cuspidality of a mod-p form detected by its weight-2m function
ModPForms.mem_modPCusp_of_mem_modPMod_of_isModPCuspFormFn984 below · depth 18 - Descent from weight 2m+2 to 2m for mod-3 forms
ModPForms.mem_modPMod_of_coe_mul_thetaJ_pow_eq_of_forall_ord_pos_of_exists_prime_dvd_mod_three_eq_two880 below · depth 18 - Dimension bound for mod p weight-2m modular functions
ModularCurve.card_le_dimFormula_of_isModPFormFn_of_linearIndependent735 below · depth 18 - Canonical degree is 2 genusFormula(N)-2 in characteristic p≥ 5
ModularCurve.degree_canonicalDivisorOf_eq_two_mul_genusFormula_sub_two725 below · depth 18 - Degree of the weight-2m floor divisor on X₀(N)
ModularCurve.degree_eq_of_forall_eq_weightFloor398 below · depth 18 - Degree of the edge weight divisor at 2m = p+1
ModularCurve.degree_weightDivisor_sub_indexPlaces_eq_of_two_mul_eq_add_one472 below · depth 18 - A mod p weight-(p+1) function from ℓ²E₂(q^ℓ)-ℓ E₂(q)
ModularCurve.exists_coe_eq_qExpand_qP_sub_mul_thetaL_zpow_and_one_le_stackOrd905 below · depth 18 - Geometric mod-3 forms of even weight are reductions
ModPForms.exists_mem_modPMod_ofPowerSeries_eq_qexpOfWeight_of_isModPFormFn_three_of_exists_prime_dvd_mod_three_eq_two876 below · depth 19 - Weight-zero cuspidal integrality forces vanishing
ModularCurve.eq_zero_of_isModPCuspFormFn_zero165 below · depth 19 - Cuspidal weight-two mod p forms killed by θ vanish
ModularCurve.eq_zero_of_isModPFormFn_one_of_qexpOfWeight_eq_pow474 below · depth 19 - Weight-2m geometric mod 3 forms come from modular forms
ModPForms.exists_mem_modPMod_ofPowerSeries_eq_qexpOfWeight_of_isModPFormFn_of_isAlgClosed_of_charP_three873 below · depth 20 - Rational weight-2m forms of level N: dimension lower bound
ModularCurve.exists_linearIndependent_isModPFormFn_rat_dimFormula_le_card767 below · depth 20 - Bounded denominators for rational weight-2m modular functions
ModularCurve.exists_ne_zero_coeffMap_eq_mul_of_isModPFormFn4 below · depth 20 - Riemann–Roch bound for mod-3 weight-2m functions on X₀(N)
ModularCurve.card_le_dimFormula_of_isModPFormFn_of_linearIndependent_of_charP_three772 below · depth 21 - Many independent weight-2m modular functions over ℚ̄
ModularCurve.exists_linearIndependent_isModPFormFn_algebraicClosure_dimFormula_le_card751 below · depth 21 - Rational basis for a Galois-stable space of q-expansions
ModularCurve.exists_rational_basis_isModPFormFn_of_forall_coeffMap_mem4 below · depth 21 - Riemann–Roch count for the weight-2m floor divisor
ModularCurve.ell_eq_dimFormula_of_forall_eq_weightFloor441 below · depth 22 - Existence of the weight-2m floor divisor
ModularCurve.exists_divisor_forall_eq_weightFloor113 below · depth 22 - Holomorphic weight-2m mod 3 forms lie in L(D)
ModularCurve.mem_riemannRochSpace_of_isModPFormFn_of_charP_three387 below · depth 22