Definitions/Def_ModularCurve_JOnePOps.lean
Operator package on a Néron special fibre datum
Over a fixed natural number p and a geometric datum G : NeronSpecialFibreGeom p — that is, abelian groups J^0_s, J_I, J_E, an additive subgroup T \subseteq J^0_s (the field torus), and a surjective additive map \pi \colon J^0_s \to J_I \times J_E whose kernel is exactly T — the module defines a structure ModularCurve.JOneP.NeronSpecialFibreOps G packaging operators on that datum together with the relations they are required to satisfy. The data fields are: families hecke, heckeI, heckeE of additive endomorphisms of J^0_s, J_I, J_E indexed by \mathbb{N}; two group homomorphisms diamondP and inertia from (\mathbb{Z}/p)^\times into the additive automorphism group of J^0_s; a family diamondN of additive endomorphisms of J^0_s indexed by \mathbb{N}; an additive automorphism w of J^0_s; additive endomorphisms verI of J_I and frobE of J_E; and a family diamondNI of additive endomorphisms of J_I.
The law fields are carried as hypotheses of the structure: the endomorphisms hecke ℓ commute with one another, and each commutes with every diamondP b and every inertia b; both diamondP b and inertia b fix every element of T; for \ell \neq p the projection is equivariant, \pi(T_\ell x) = (T_\ell \pi(x)_1, T_\ell \pi(x)_2) with the three hecke families at index \ell; and at \ell = p the Eichler–Shimura-shaped identity \pi(T_p x) = \bigl(\langle p\rangle\,V(\pi(x)_1),\, F(\pi(x)_2)\bigr) holds for all x \in J^0_s, where \langle p \rangle = diamondNI p, V = verI and F = frobE. No law constrains diamondN or w, which are pure data here; nothing is constructed or proved in the module, so an instance of the structure must supply all operators and all relations.
Relation to Mathlib
Mathlib has no notion of the special fibre of the Néron model of a modular Jacobian or of Hecke, diamond, Verschiebung and Frobenius operators on it; this structure is the project's own. The multiplicative structure on AddAut used in the types of diamondP and inertia is the one vendored in Compat_Mathlib430 as a renamed copy of the Mathlib v4.30.0 group instance.
Where it is used
The structure records, in purely group-theoretic form, the operator side of the description of the special fibre at p of the Néron model of the Jacobian of X_1(Mp): inertia at p acting through (\mathbb{Z}/p)^\times and trivially on the toric part, and T_p inducing \langle p\rangle V on one component and Frobenius on the other. Such data feed the weight- and level-lowering analysis at p that precedes the application of modularity lifting in the route to Fermat's Last Theorem.
References
- B. Edixhoven, The weight in Serre's conjectures on modular forms, Inventiones Mathematicae 109 (1992), 563–594
- P. Deligne and M. Rapoport, Les schémas de modules de courbes elliptiques, in: Modular Functions of One Variable II, Lecture Notes in Mathematics 349, Springer, 1973, 143–316
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
- 18 declarations
- used in the statements of 5 theorems and imported by 5 proofs
- imports 2 definition modules
Source file: Definitions/Def_ModularCurve_JOnePOps.lean
Imported by
- no other definition module
Declarations
- structure
ModularCurve.JOneP.NeronSpecialFibreOps - field
ModularCurve.JOneP.NeronSpecialFibreOps.hecke - field
ModularCurve.JOneP.NeronSpecialFibreOps.heckeI - field
ModularCurve.JOneP.NeronSpecialFibreOps.heckeE - field
ModularCurve.JOneP.NeronSpecialFibreOps.proj_hecke - field
ModularCurve.JOneP.NeronSpecialFibreOps.diamondP - field
ModularCurve.JOneP.NeronSpecialFibreOps.diamondN - field
ModularCurve.JOneP.NeronSpecialFibreOps.w - field
ModularCurve.JOneP.NeronSpecialFibreOps.inertia - field
ModularCurve.JOneP.NeronSpecialFibreOps.verI - field
ModularCurve.JOneP.NeronSpecialFibreOps.frobE - field
ModularCurve.JOneP.NeronSpecialFibreOps.diamondNI - field
ModularCurve.JOneP.NeronSpecialFibreOps.hecke_comm - field
ModularCurve.JOneP.NeronSpecialFibreOps.diamondP_hecke - field
ModularCurve.JOneP.NeronSpecialFibreOps.inertia_hecke - field
ModularCurve.JOneP.NeronSpecialFibreOps.diamondP_torus - field
ModularCurve.JOneP.NeronSpecialFibreOps.inertia_torus - field
ModularCurve.JOneP.NeronSpecialFibreOps.proj_heckeP
Source
import Mathlib import Definitions.Def_ModularCurve_JOnePGeom import Definitions.Def_Compat_Mathlib430 set_option autoImplicit false namespace ModularCurve namespace JOneP variable {p : ℕ} structure NeronSpecialFibreOps (G : NeronSpecialFibreGeom p) where hecke : ℕ → (G.J0s →+ G.J0s) heckeI : ℕ → (G.JI →+ G.JI) heckeE : ℕ → (G.JE →+ G.JE) proj_hecke : ∀ (ℓ : ℕ) (x : G.J0s), ℓ ≠ p → G.proj (hecke ℓ x) = (heckeI ℓ (G.proj x).1, heckeE ℓ (G.proj x).2) diamondP : (ZMod p)ˣ →* AddAut G.J0s diamondN : ℕ → (G.J0s →+ G.J0s) w : G.J0s ≃+ G.J0s inertia : (ZMod p)ˣ →* AddAut G.J0s verI : G.JI →+ G.JI frobE : G.JE →+ G.JE diamondNI : ℕ → (G.JI →+ G.JI) hecke_comm : ∀ ℓ ℓ' : ℕ, (hecke ℓ).comp (hecke ℓ') = (hecke ℓ').comp (hecke ℓ) diamondP_hecke : ∀ (b : (ZMod p)ˣ) (ℓ : ℕ) (x : G.J0s), diamondP b (hecke ℓ x) = hecke ℓ (diamondP b x) inertia_hecke : ∀ (b : (ZMod p)ˣ) (ℓ : ℕ) (x : G.J0s), inertia b (hecke ℓ x) = hecke ℓ (inertia b x) diamondP_torus : ∀ (b : (ZMod p)ˣ) (x : G.J0s), x ∈ G.torus → diamondP b x = x inertia_torus : ∀ (b : (ZMod p)ˣ) (x : G.J0s), x ∈ G.torus → inertia b x = x proj_heckeP : ∀ x : G.J0s, G.proj (hecke p x) = (diamondNI p (verI (G.proj x).1), frobE (G.proj x).2) end JOneP end ModularCurve
Statements phrased using this module (5)
- Triviality of the Gal(L/ℚ)-action on the toric part
ModularCurve.XOneP.eq_of_galois_of_postComp_eq_one_points_specialFibre_of_gaussReading_twoChartModel_x1_mul_of_abelJacobi1,268 below · depth 22 - Affine split torus kernel in Pic⁰ of the special fibre
ModularCurve.XOneP.exists_relativeGroupLaw_isAffine_isClosedImmersion_iff_postComp_pullbackHom_eq_one_splitTorus_specialFibre_baseChange_x1_mul54 below · depth 22 - Kernel of special-fibre Picard projections: a split torus of rank n-1
ModularCurve.XOneP.exists_relativeGroupLaw_isClosedImmersion_iff_postComp_pullbackHom_eq_one_splitTorus_specialFibre_baseChange_x1_mul54 below · depth 22 - Galois acts trivially on C₁, through a diamond on C₂
ModularCurve.XOneP.postComp_pullbackHom_galois_eq_and_postComp_diamond_comp_galoisInv_eq_of_gaussReading_specialFibre_twoChartModel_x1_mul_of_abelJacobi1,265 below · depth 22 - Pinned Galois transport on relative Pic⁰ equals τ(s)
ModularCurve.XOneP.galoisHom_eq_of_classifies_rigidify_pullback_of_modelHom_inv_twoChartModel_x1_mul_of_abelJacobi173 below · depth 23