Definitions/Def_ModularCurve_HeckeProj.lean
Projection of the abstract Hecke algebra to level
Fix a level N \neq 0. The abstract Hecke algebra of the project is the polynomial ring \mathbb{T} = HeckeAlg = \mathbb{Z}[X_\ell : \ell \text{ prime}] on one variable heckeGen ℓ = X_\ell for each prime, while the concrete weight-two Hecke algebra at level N is CuspForm.heckeAlgebra N 2 ∅, the \mathbb{Z}-subalgebra of \operatorname{End}_{\mathbb{C}} S_2(\Gamma_0(N)) generated by the operators CuspForm.heckeTLin attached to primes \ell \nmid N and CuspForm.heckeULin attached to primes q \mid N (each of these being the endomorphism of cusp forms induced by the corresponding sum of slash operators, f \mapsto \sum_{j<p} f\mid_k \begin{pmatrix}1&j\\0&p\end{pmatrix}, with the extra term f\mid_k \begin{pmatrix}p&0\\0&1\end{pmatrix} in the T case); the empty excluded set S = \varnothing means no prime is omitted from the generating family.
The element heckeProjGen N ℓ of this subalgebra is defined by a case distinction on divisibility: it is CuspForm.heckeAlgebra.U at \ell when \ell \mid N, and CuspForm.heckeAlgebra.T at \ell when \ell \nmid N. Then heckeProj N is the ring homomorphism \mathbb{T} \to CuspForm.heckeAlgebra N 2 ∅ underlying the \mathbb{Z}-algebra evaluation map that sends X_\ell to heckeProjGen N ℓ; this makes sense because the subalgebra is commutative.
The accompanying lemmas record the interface: heckeProj_heckeGen_of_not_dvd and heckeProj_heckeGen_of_dvd evaluate the map on a variable X_\ell as T_\ell respectively U_\ell, with the divisibility hypothesis supplied by the caller; heckeProj_C identifies the image of a constant c \in \mathbb{Z} with c under the structure map of the subalgebra; and ringHom_ext_heckeProj states that two ring homomorphisms f, g from CuspForm.heckeAlgebra N 2 ∅ to a ring R which agree on every element heckeProjGen N ℓ have equal composites f \circ heckeProj N = g \circ heckeProj N. Note that this is an extensionality principle for the composites only; it yields f = g exactly when heckeProj N is known to be surjective.
Relation to Mathlib
Mathlib supplies CuspForm, CongruenceSubgroup.Gamma0, the slash action and MvPolynomial, but no Hecke operators on spaces of modular forms and no Hecke algebra; the polynomial model HeckeAlg of the abstract Hecke algebra, the operators CuspForm.heckeTLin, CuspForm.heckeULin, the subalgebra CuspForm.heckeAlgebra and the projection defined here are all proper to this development.
Where it is used
The abstract Hecke algebra \mathbb{T} is the ring through which Hecke eigensystems, the Eisenstein ideal and the Galois-theoretic clauses of the Eichler–Shimura package are formulated, while CuspForm.heckeAlgebra N 2 ∅ acts on actual weight-two cusp forms of level \Gamma_0(N). The homomorphism defined here is what transports statements about ideals of \mathbb{T}, in particular about the Eisenstein ideal and about maximal ideals cutting out mod-p eigensystems, into assertions about the operators T_\ell and U_q acting on S_2(\Gamma_0(N)).
References
- B. Mazur, Modular curves and the Eisenstein ideal, Publications Mathématiques de l'IHÉS 47 (1977), 33–186
- F. Diamond and J. Shurman, A First Course in Modular Forms, Graduate Texts in Mathematics 228, Springer, 2005, Chapter 5
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 42 lines
- 6 declarations
- used in the statements of 37 theorems and imported by 43 proofs
- imports 2 definition modules
Source file: Definitions/Def_ModularCurve_HeckeProj.lean
Imported by
- no other definition module
Declarations
- def
ModularCurve.heckeProjGen - def
ModularCurve.heckeProj - theorem
ModularCurve.heckeProj_heckeGen_of_not_dvd - theorem
ModularCurve.heckeProj_heckeGen_of_dvd - theorem
ModularCurve.heckeProj_C - theorem
ModularCurve.ringHom_ext_heckeProj
Source
import Definitions.Def_HeckeGalois_EichlerShimura import Definitions.Def_CuspForm_HeckeAlgebra noncomputable section namespace ModularCurve variable (N : ℕ) [NeZero N] def heckeProjGen (ℓ : Nat.Primes) : CuspForm.heckeAlgebra N 2 ∅ := if h : (ℓ : ℕ) ∣ N then CuspForm.heckeAlgebra.U ℓ.2 h (Set.notMem_empty _) else CuspForm.heckeAlgebra.T ℓ.2 h (Set.notMem_empty _) def heckeProj : HeckeAlg →+* CuspForm.heckeAlgebra N 2 ∅ := (MvPolynomial.aeval (R := ℤ) (heckeProjGen N)).toRingHom variable {N} theorem heckeProj_heckeGen_of_not_dvd (ℓ : Nat.Primes) (h : ¬ (ℓ : ℕ) ∣ N) : heckeProj N (heckeGen ℓ) = CuspForm.heckeAlgebra.T ℓ.2 h (Set.notMem_empty _) := by simp [heckeProj, heckeGen, heckeProjGen, h] theorem heckeProj_heckeGen_of_dvd (ℓ : Nat.Primes) (h : (ℓ : ℕ) ∣ N) : heckeProj N (heckeGen ℓ) = CuspForm.heckeAlgebra.U ℓ.2 h (Set.notMem_empty _) := by simp [heckeProj, heckeGen, heckeProjGen, h] theorem heckeProj_C (c : ℤ) : heckeProj N (MvPolynomial.C c) = algebraMap ℤ (CuspForm.heckeAlgebra N 2 ∅) c := by simp [heckeProj] theorem ringHom_ext_heckeProj {R : Type*} [Ring R] {f g : CuspForm.heckeAlgebra N 2 ∅ →+* R} (h : ∀ ℓ : Nat.Primes, f (heckeProjGen N ℓ) = g (heckeProjGen N ℓ)) : f.comp (heckeProj N) = g.comp (heckeProj N) := by apply MvPolynomial.ringHom_ext · intro c rw [RingHom.comp_apply, RingHom.comp_apply, heckeProj_C, eq_intCast, map_intCast, map_intCast] · intro ℓ simpa [heckeProj, heckeProjGen] using h ℓ end ModularCurve end
Statements phrased using this module (37)
- Upper bound for the Eisenstein ideal index at level p
ModularCurve.exists_mem_eisensteinIdeal_heckeProj_eq_eisensteinNumerator593 below · depth 11 - Scalar transport: elements projecting to integers act by multiplication
ModularCurve.heckeModuleBar_smul_eq_zsmul_of_heckeProj_eq744 below · depth 11 - Integral cusp form with Eisenstein Hecke eigenvalues modulo m
CuspForm.exists_qIntegral_eisenstein_eigen_mod_of_injective27 below · depth 12 - Surjectivity of the projection from the abstract Hecke algebra
ModularCurve.heckeProj_surjective0 below · depth 12 - Eisenstein congruences detect m-divisibility in the Hecke algebra
CuspForm.eisenstein_injective_of_qCoeff_congr_sigmaPrimeTo2 below · depth 13 - Eisenstein character mod m on the weight-two Hecke algebra
CuspForm.exists_ringHom_zmod_of_eisenstein_injective2 below · depth 13 - Global 1-forms of the ℤ₍ₚ₎-model versus p-integral cusp forms
ModularCurve.exists_linearEquiv_kaehlerH0_baseChange_intLattice_of_ratCurveModel_of_cuspSection_compat_of_neZero872 below · depth 24 - Hecke adjunction for the integral Serre pairing, sectional charts
ModularCurve.serrePairingInt_deformationClass_heckeGen_eq_of_isCompletionAlong_of_res_eq_heckeDiffBar365 below · depth 24 - Norm–pull-back endomorphism acts by trace on Čech H¹
AlgebraicGeometry.RelPicard.IsDeformationClassMap.exists_cechH1ToH1_germ_eq_traceAlong_of_classifies_normModule_pullback_of_mono129 below · depth 25 - Hecke correspondence on differentials matches the Hecke operator on q-expansions
ModularCurve.coeffMap_diffQExpBar_heckeDiffBar_eq_qExpansion_latticeRestrictHom_heckeProj_heckeGen162 below · depth 25 - Degeneracy roof at the generic fibre: function-field Hecke correspondence
ModularCurve.exists_functionField_degeneracyRoof_kaehlerToFunctionField_eq_correspondence_of_res_eq_heckeDiffBar208 below · depth 25 - Integral weight-two cusp forms as relative differentials on the model
ModularCurve.exists_kaehlerH0_coeffMap_diffQExpBar_eq_qExpansion_of_mem_intLattice_of_ratCurveModel_of_cuspSection_compat_of_neZero456 below · depth 25 - Integrality of q-expansions of global 1-forms on a ℤ₍ₚ₎-model
ModularCurve.exists_powerSeries_diffQExpBar_eq_ofPowerSeries_map_of_kaehlerH0_of_ratCurveModel_of_cuspSection_compat_of_neZero349 below · depth 25 - Tangent action of a norm-pull-back endomorphism over a field
AlgebraicGeometry.RelPicard.IsDeformationClassMap.exists_cechH1ToH1_germ_eq_traceAlong_of_classifies_normModule_pullback_of_field74 below · depth 26 - Moduli description of an endomorphism transported to the base change
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.nonempty_poincare_pullbackAlong_iso_rigidify_normModule_baseChange58 below · depth 26 - p-saturation of global differentials via q-expansions
ModularCurve.exists_eq_smul_of_diffQExpBar_eq_ofPowerSeries_smul_of_kaehlerH0_of_ratCurveModel_of_cuspSection_compat_of_neZero366 below · depth 26 - Degeneracy roof at q over the generic fibre
ModularCurve.exists_functionField_degeneracyRoof_lift_of_ratCurveModel4 below · depth 26 - Generic restriction of a global 1-form factors through the cusp stalk
ModularCurve.exists_kaehlerDifferential_stalk_and_ringHom_res_eq_mapOfRingHom_cuspSection_of_ratCurveModel_compat_of_neZero2 below · depth 26 - p-power multiple of an integral weight-2 cusp form as a differential
ModularCurve.exists_pow_smul_kaehlerH0_coeffMap_diffQExpBar_eq_qExpansion_of_mem_intLattice_of_ratCurveModel_of_cuspSection_compat_of_neZero322 below · depth 26 - Integral q-expansions of germs at the cusp of a ℤ₍ₚ₎-model
ModularCurve.exists_powerSeries_map_eq_ffEquiv_symm_stalkMap_stalkSpecializes_cuspSection_of_ratCurveModel_compat_of_neZero346 below · depth 26 - Residue package for the two legs of the T_q degeneracy roof
ModularCurve.functionField_residuePackage_degeneracyRoof_of_finiteAlong85 below · depth 26 - Generic-fibre degeneracy roof for Hecke action on differentials
ModularCurve.kaehlerToFunctionField_eq_correspondence_degeneracyRoof_of_res_eq_heckeDiffBar161 below · depth 26 - Integral q-parameter at the cusp of a ℤ₍ₚ₎-model
ModularCurve.exists_algHom_retraction_param_stalk_cuspSection_ffEquiv_symm_eq_ofPowerSeries_isUnit_coeff_one_of_ratCurveModel_compat_of_neZero342 below · depth 27 - Germs at the cusp with p-divisible q-expansion are p-divisible
ModularCurve.exists_eq_germ_mul_of_ffEquiv_symm_stalkMap_stalkSpecializes_eq_ofPowerSeries_smul_cuspSection_of_ratCurveModel_compat_of_neZero3 below · depth 27 - Invertibility of j at generic-fibre points over the cusp
ModularCurve.exists_isUnit_stalk_ffEquiv_symm_stalkMap_genericPoint_eq_jq_of_specializes_cuspSection_of_ratCurveModel_compat_of_neZero288 below · depth 28 - Cusp parameter has q-expansion 1/j up to a unit
ModularCurve.exists_isUnit_stalk_ffEquiv_symm_stalkMap_mul_stalkSpecializes_eq_jq_inv_cuspSection_of_ratCurveModel_compat_of_neZero8 below · depth 28 - Modular invariant j as a unit along the special fibre
ModularCurve.exists_notMem_span_germ_and_ffEquiv_symm_stalkMap_stalkSpecializes_eq_jq_mul_cuspSection_of_ratCurveModel_compat_of_neZero323 below · depth 28 - Uniqueness of the place over the cusp ∞ after base change
ModularCurve.eq_cuspInftyBar_of_comap_toSubring_eq_cuspInftyFull0 below · depth 29 - Vertical order of j at the cusp section's special point
ModularCurve.exists_int_notMem_span_germ_and_ffEquiv_symm_stalkMap_stalkSpecializes_eq_jq_mul_zpow_mul_cuspSection_of_ratCurveModel_compat_of_neZero4 below · depth 29 - Valuation-ring lift of a ℚ̄-point along a specialisation
ModularCurve.exists_liesOverPrime_schemeHomOver_comp_eq_base_closedPoint_eq_of_specializes0 below · depth 29 - No pole of j along the special fibre at the cusp
ModularCurve.false_of_ffEquiv_symm_stalkMap_stalkSpecializes_eq_jq_mul_pow_mul_cuspSection_of_ratCurveModel_compat_of_neZero309 below · depth 29 - No zero of j along the special fibre
ModularCurve.false_of_pow_mul_ffEquiv_symm_stalkMap_stalkSpecializes_eq_jq_mul_cuspSection_of_ratCurveModel_compat_of_neZero319 below · depth 29 - Finitely many zeros and poles of ̄ j on the special fibre
ModularCurve.false_of_infinite_setOf_ord_pointEquivPlace_jqModC_ne_zero_cuspSection_of_ratCurveModel_compat_of_neZero113 below · depth 30 - An open set containing infinitely many κ-points of the special fibre
ModularCurve.infinite_setOf_base_closedPoint_mem_of_fromSpecStalk_span_germ_mem_cuspSection_of_ratCurveModel_compat_of_neZero47 below · depth 30 - Pole of ̄ j at the reduction of an A-point
ModularCurve.ord_apply_pointEquivPlace_jqModC_neg_of_stalkClosedPointTo_mem_maximalIdeal_of_ffEquiv_symm_stalkMap_eq_jq_inv_cuspSection_of_ratCurveModel_compat_of_neZero277 below · depth 30 - An A-point with j∈mathfrak m_A reduces to a zero of ̄ j
ModularCurve.ord_apply_pointEquivPlace_jqModC_pos_of_stalkClosedPointTo_mem_maximalIdeal_of_ffEquiv_symm_stalkMap_eq_jq_cuspSection_of_ratCurveModel_compat_of_neZero287 below · depth 30 - Geometric function field identification is base change of the rational one
ModularCurve.coe_ffEquiv_symm_stalkMap_eq_coeffEmb_ffEquiv_symm_of_galoisCompat_of_placeCompat44 below · depth 31