Definitions/Def_ModularCurve_WeightDivisor.lean
Weight floor divisor on the modular function field
Fix a field K and an integer N\ge 1, and let F= ModularCurve.modularFunctionFieldC K N be the intermediate field of K-Laurent series generated over K by the j-series \bar\jmath= jqModC K =q^{-1}(1+\cdots) (the integral j-expansion with coefficients pushed into K) and by its N-fold q-rescaling jqNModC K N. Places of F/K are taken in the sense of the project's AlgebraicCurve.Place: a valuation subring A\subsetneq F containing \operatorname{im}(K\to F) and a principal ideal ring, so a discrete valuation ring, with \operatorname{ord}_w the associated normalised integer valuation; divisors are finitely supported \mathbb{Z}-valued functions on places.
For m\in\mathbb{N} and a place w, weightFloor K N m w is the integer given by a three-branch expression: the quotient (2m\cdot\operatorname{ord}_w\bar\jmath)/3 when \operatorname{ord}_w\bar\jmath>0 and 0 otherwise; plus the quotient (m\cdot\operatorname{ord}_w(\bar\jmath-1728))/2 when \operatorname{ord}_w(\bar\jmath-1728)>0 and 0 otherwise; plus m\cdot\operatorname{ord}_w\bar\jmath when \operatorname{ord}_w\bar\jmath<0 and 0 otherwise. Here 1728 means the image of 1728\in K in F, and in each guarded branch the numerator is non-negative, so the quotient is the integer floor.
weightDivisor K N m is then defined by cases: if some finitely supported divisor D on the places of F/K satisfies D(w)=\,weightFloor K N m w for every w, it is such a divisor; otherwise it is the zero divisor. The accompanying lemma weightDivisor_apply records that, under exactly that existence hypothesis, weightDivisor K N m takes the value weightFloor K N m w at every place w; without the hypothesis nothing is claimed, since the floor expression need not have finite support.
Relation to Mathlib
Mathlib has no notion of places or divisors of a function field in this shape; Place, Divisor and the Picard groups used here are the project's own, and the weight floor divisor is specific to this development.
Where it is used
The divisor is the algebraic shadow of the weight-2m structure: its Riemann–Roch space plays the role of the space of holomorphic weight-2m modular functions of level N (zeros of prescribed order at the elliptic points above j=0 and j=1728, poles of order at most m times the width at the cusps), and is used in the dimension counts for such spaces on the modular curve of level N.
References
- G. Shimura, Introduction to the Arithmetic Theory of Automorphic Functions, Publications of the Mathematical Society of Japan 11, Princeton University Press, 1971, Theorem 2.23
- F. Diamond and J. Shurman, A First Course in Modular Forms, Graduate Texts in Mathematics 228, Springer, 2005
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 40 lines
- 3 declarations
- used in the statements of 20 theorems and imported by 26 proofs
- imports 2 definition modules
Source file: Definitions/Def_ModularCurve_WeightDivisor.lean
Imported by
Declarations
Source
import Mathlib import Definitions.Def_AlgebraicCurve_DivisorClassGroup import Definitions.Def_ModularCurve_JqCoeff set_option autoImplicit false noncomputable section namespace ModularCurve open AlgebraicCurve variable (K : Type*) [Field K] (N : ℕ) [NeZero N] def weightFloor (m : ℕ) (w : Place K ↥(modularFunctionFieldC K N)) : ℤ := (if 0 < w.ord (⟨jqModC K, jqModC_mem K N⟩ : ↥(modularFunctionFieldC K N)) then (2 * (m : ℤ) * w.ord (⟨jqModC K, jqModC_mem K N⟩ : ↥(modularFunctionFieldC K N))) / 3 else 0) + (if 0 < w.ord ((⟨jqModC K, jqModC_mem K N⟩ : ↥(modularFunctionFieldC K N)) - algebraMap K _ 1728) then ((m : ℤ) * w.ord ((⟨jqModC K, jqModC_mem K N⟩ : ↥(modularFunctionFieldC K N)) - algebraMap K _ 1728)) / 2 else 0) + (if w.ord (⟨jqModC K, jqModC_mem K N⟩ : ↥(modularFunctionFieldC K N)) < 0 then (m : ℤ) * w.ord (⟨jqModC K, jqModC_mem K N⟩ : ↥(modularFunctionFieldC K N)) else 0) open scoped Classical in def weightDivisor (m : ℕ) : Divisor K ↥(modularFunctionFieldC K N) := if h : ∃ D : Divisor K ↥(modularFunctionFieldC K N), ∀ w, D w = weightFloor K N m w then h.choose else 0 theorem weightDivisor_apply (m : ℕ) (h : ∃ D : Divisor K ↥(modularFunctionFieldC K N), ∀ w, D w = weightFloor K N m w) (w : Place K ↥(modularFunctionFieldC K N)) : weightDivisor K N m w = weightFloor K N m w := by classical rw [weightDivisor, dif_pos h] exact h.choose_spec w end ModularCurve end
Statements phrased using this module (20)
- 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 - Lead coefficients of the weight-2m Hecke image compute T_ℓ^{ss}
ModularCurve.SSHeckeV2.lead_trace_heckeBetaC_mul_pow_eq_ssHeckeFun_of_map893 below · depth 16 - The chosen lift realises prescribed supersingular leading coefficients
ModularCurve.SSHeckeV2.liftFun_spec373 below · depth 16 - Finite support of the weight floor on K(jmath̄,jmath̄_N)
ModularCurve.exists_divisor_forall_eq_weightFloor_fieldC123 below · depth 16 - Vanishing of leadₓᵃ of a trace at supersingular places
ModularCurve.lead_trace_eq_zero_of_forall_le_ord366 below · depth 16 - Riemann–Roch space of the weight divisor equals mod-p forms
ModularCurve.mem_riemannRochSpace_weightDivisor_iff_isModPFormFn372 below · depth 16 - Order bound for β(d)h^m on the α-fibre of an index place
ModularCurve.neg_mul_poleOrder_add_one_le_ord_heckeBetaC_mul_pow366 below · depth 16 - Floor bound for β(d)h^m along a supersingular fibre
ModularCurve.neg_mul_poleOrder_le_ord_heckeBetaC_mul_pow366 below · depth 16 - Vanishing supersingular leading coefficients versus stack order
ModularCurve.resFnFun_eq_zero_iff_forall_one_le_stackOrd364 below · depth 16 - Weight-2m floor at an affine geometric place
ModularCurve.weightFloor_eq_of_isAffineGeomPlace360 below · depth 16 - Riemann–Roch bound for the cuspidal weight-2m floor divisor
ModularCurve.ell_le_dimFormulaCusp_of_forall_eq_weightFloor_sub733 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 - Dual compatibility of supersingular Hecke map with T_Ω
ModularCurve.theta_ssHeckeFun_eq_inv_smul_dualMap_of_forall_weilOfKaehler894 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 - Placewise identity for ord_w(d̄ j) and weight floors
ModularCurve.ordDifferential_D_jGeomGen_sub_weightFloor_eq503 below · depth 18 - Row form of Hecke compatibility for the supersingular residue pairing
ModularCurve.ssResiduePairing_ssHeckeFun_eq_comp_traceAlong891 below · depth 18 - Weight-zero cuspidal integrality forces vanishing
ModularCurve.eq_zero_of_isModPCuspFormFn_zero165 below · depth 19 - Hecke compatibility of the supersingular residue pairing
ModularCurve.sum_kaehlerResidueTerm_liftFun_ssHeckeFun_eq890 below · depth 19 - Supersingular residue pairing against the degeneracy correspondence
ModularCurve.sum_kaehlerResidueTerm_eq_sum_kaehlerResidueTerm_traceAlong_of_ord_sub_traceFunAlong1 below · depth 20