Definitions/Def_ModularCurve_JZeroNeronObjectAtP_LevelModel.lean
Level model: Igusa curve, Picard representability, point dictionaries
Fix N_0\ge 1, a prime p and a valuation subring A of \overline{\mathbf Q}. The structure LevelModel N₀ p A is the data of a model of J_0(N_0) over \mathbf Z_{(p)} (written here as baseRing p, the rationals with denominator coprime to p) presented as a representing object for the relative Picard functor of the Igusa scheme. Its fields are: a ring map \rho from \mathbf Z_{(p)} to A whose composite with the inclusion A\hookrightarrow\overline{\mathbf Q} is the structure map; the assumption that IgusaScheme.igusaTo N₀ p (the Igusa scheme, glued from the two charts of integral elements over \mathbf Z_{(p)}[j] and \mathbf Z_{(p)}[j^{-1}] inside the full modular function field) is proper; a \mathbf Z_{(p)}-algebra map \varphi_\infty on the j^{-1}-chart whose value on x is the 0-th Laurent coefficient of the q-expansion of x, and a section \varepsilon_0 of the Igusa scheme over \mathbf Z_{(p)} which is \operatorname{Spec}\varphi_\infty followed by the inclusion of that chart, i.e. the cusp \infty; a pointed \mathbf Z_{(p)}-scheme D_0 (carrier D₀.P, structure morphism D₀.toBase, zero section D₀.zeroSection) together with rep, the datum of a Poincaré bundle on D_0 making D_0 represent the subfunctor of \varepsilon_0-rigidified invertible modules on the Igusa scheme which are fibrewise algebraically equivalent to zero (the condition algEquivZeroCut: over every algebraically closed field point of the base there is a geometrically integral finite-type parameter scheme interpolating between the trivial bundle and the given one); an Abel–Jacobi morphism \mathrm{aj}_0 over \mathbf Z_{(p)} carrying \varepsilon_0 to the zero section, whose defining property haj₀ is that for every field-valued point x of the Igusa scheme the pullback of the Poincaré bundle along x followed by \mathrm{aj}_0 is isomorphic to \mathcal O(\Gamma_x)\otimes\mathcal I_{\varepsilon_0}, the tensor product of the dual ideal module of the relative effective Cartier divisor of x with the ideal module of the divisor of \varepsilon_0; two dictionaries pts and ptsSp, bijections of J_0(N_0) with the \overline{\mathbf Q}-points of D_0 over the generic point, and of the degree-zero class group of the level-N_0 function field over the residue field of A with the points of D_0 over \operatorname{Spec} of the residue map composed with \rho; and finally a smooth proper curve model Meta₀ of \overline{\mathbf Q}(X_0(N_0)) over \overline{\mathbf Q} together with an isomorphism \eta_0 onto the geometric generic fibre of the Igusa scheme compatible with the structure morphisms, normalised by Meta₀_pin (elements of the j-chart are read in the function field by their q-expansions, coefficients embedded into \overline{\mathbf Q}) and by pts_aj (for points x and s of the model with s sitting over the cusp \varepsilon_0, the class of the degree-zero divisor [x]-[s] corresponds under pts to x followed by \eta_0 and \mathrm{aj}_0).
The accompanying declarations extract from such a model the structure morphism σA of the place, the induced map toκ to the residue field, the identity barPt_σA expressing that σA pulled back along \operatorname{Spec}(A\hookrightarrow\overline{\mathbf Q}) is the geometric generic point, the relative group law law on D_0 obtained from the representability datum for the group-theoretic form of the algebraic-equivalence-zero condition, and toLevelData, which forgets everything except the place, the scheme D_0 with that group law and the two dictionaries, producing a LevelData N₀ p A.
Relation to Mathlib
Mathlib has no relative Picard functor, Jacobian or Néron model of a curve; the notions assembled here — rigidified line bundles and their classes, representability of the algebraic-equivalence-zero subfunctor, relative effective Cartier divisors and their ideal and line bundle modules, curve models with their place dictionaries, and the Igusa scheme itself — are the project's own, built on Mathlib's schemes and sheaves of modules.
Where it is used
This is the level-N_0 input for the construction of the Néron model of J_0(N_0p) at p: because D_0 represents the relative Picard functor, the two degeneracy maps X_0(N_0p)\rightrightarrows X_0(N_0) and the components of the special fibre of the Deligne–Rapoport model give rise to morphisms into D_0, which enter the analysis of the p-adic behaviour of J_0(N_0p) used in Ribet's level-lowering and Mazur's principle.
References
- J. Igusa, Kroneckerian model of fields of elliptic modular functions, American Journal of Mathematics 81 (1959), 561–577
- 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
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 114 lines
- 22 declarations
- used in the statements of 32 theorems and imported by 37 proofs
- imports 10 definition modules
Source file: Definitions/Def_ModularCurve_JZeroNeronObjectAtP_LevelModel.lean
Imports
Def_ModularCurve_JZeroNeronObjectAtPDef_ModularCurve_IgusaSchemeDef_AlgebraicCurve_CurveModelDef_AlgebraicGeometry_RelativePicardFunctorDef_AlgebraicGeometry_RepresentsRelSubPicDef_AlgebraicGeometry_RelPicardAlgEquivZeroCutDef_AlgebraicGeometry_RelPicardAlgEquivZeroGroupCutDef_AlgebraicGeometry_IdealSheafModuleDef_AlgebraicGeometry_RelEffCartierDivDef_AlgebraicGeometry_RelEffCartierDivOfPoint
Imported by
- no other definition module
Declarations
- structure
ModularCurve.JZeroNeronObjectAtP.LevelModel - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.D₀ - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.rep - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.aj₀ - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.haj₀ - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.x - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.Nonempty - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.pts - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.ptsSp - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.Meta₀ - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.eeta₀ - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.heeta₀ - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.Meta₀_pin - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.coeffEmb - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.pts_aj - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.Dv - field
ModularCurve.JZeroNeronObjectAtP.LevelModel.pts - abbrev
ModularCurve.JZeroNeronObjectAtP.LevelModel.σA - abbrev
ModularCurve.JZeroNeronObjectAtP.LevelModel.toκ - theorem
ModularCurve.JZeroNeronObjectAtP.LevelModel.barPt_σA - abbrev
ModularCurve.JZeroNeronObjectAtP.LevelModel.law - def
ModularCurve.JZeroNeronObjectAtP.LevelModel.toLevelData
Source
import Mathlib import Definitions.Def_ModularCurve_JZeroNeronObjectAtP import Definitions.Def_ModularCurve_IgusaScheme import Definitions.Def_AlgebraicCurve_CurveModel import Definitions.Def_AlgebraicGeometry_RelativePicardFunctor import Definitions.Def_AlgebraicGeometry_RepresentsRelSubPic import Definitions.Def_AlgebraicGeometry_RelPicardAlgEquivZeroCut import Definitions.Def_AlgebraicGeometry_RelPicardAlgEquivZeroGroupCut import Definitions.Def_AlgebraicGeometry_IdealSheafModule import Definitions.Def_AlgebraicGeometry_RelEffCartierDiv import Definitions.Def_AlgebraicGeometry_RelEffCartierDivOfPoint set_option autoImplicit false open CategoryTheory CategoryTheory.Limits MonoidalCategory AlgebraicGeometry NeronModelInfra GoodReductionJacobian AlgebraicCurve IsLocalRing AlgebraicGeometry.RelPicard noncomputable section namespace ModularCurve.JZeroNeronObjectAtP structure LevelModel (N₀ p : ℕ) [NeZero N₀] [Fact p.Prime] (A : ValuationSubring (AlgebraicClosure ℚ)) where ρ : baseRing p →+* ↥A hρ : A.subtype.comp ρ = algebraMap (baseRing p) (AlgebraicClosure ℚ) [proper₀ : IsProper (IgusaScheme.igusaTo N₀ p)] φinf : ↥(IgusaScheme.chartAlgInf N₀ p) →ₐ[↥(GaloisRep.ratLocalizedAt p)] ↥(GaloisRep.ratLocalizedAt p) φinf_spec : ∀ x : ↥(IgusaScheme.chartAlgInf N₀ p), ((φinf x : ↥(GaloisRep.ratLocalizedAt p)) : ℚ) = ((x : ↥(modularFunctionFieldFull N₀)) : LaurentSeries ℚ).coeff 0 ε₀ : SchemeHomOver (𝟙 (Spec (CommRingCat.of ↥(GaloisRep.ratLocalizedAt p)))) (IgusaScheme.igusaTo N₀ p) ε₀_chart : ε₀.1 = Spec.map (CommRingCat.ofHom φinf.toRingHom) ≫ IgusaScheme.ιInf N₀ p D₀ : RelativePic0Designation (baseRing p) (IgusaScheme.igusaTo N₀ p) rep : RepresentsRelSubPic (IgusaScheme.igusaTo N₀ p) ε₀ (algEquivZeroCut (IgusaScheme.igusaTo N₀ p) ε₀) D₀ aj₀ : SchemeHomOver (IgusaScheme.igusaTo N₀ p) D₀.toBase haj₀ε : ε₀.1 ≫ aj₀.1 = D₀.zeroSection haj₀ : ∀ (K : Type) [Field K] (t : Spec (CommRingCat.of K) ⟶ base p) (x : SchemeHomOver t (IgusaScheme.igusaTo N₀ p)), Nonempty ((rep.poincare.pullbackAlong ⟨x.1 ≫ aj₀.1, (Category.assoc _ _ _).trans ((congrArg (x.1 ≫ ·) aj₀.2).trans x.2)⟩).L ≅ (RelEffCartierDiv.ofPoint (IgusaScheme.igusaTo N₀ p) x.1 x.2).lineBundle ⊗ (RelEffCartierDiv.ofPoint (IgusaScheme.igusaTo N₀ p) (t ≫ ε₀.1) ((Category.assoc _ _ _).trans ((congrArg (t ≫ ·) ε₀.2).trans (Category.comp_id t)))).idealModule) pts : JZero N₀ ≃ SchemeHomOver (genPt p) D₀.toBase ptsSp : JZeroC (ResidueField ↥A) N₀ ≃ SchemeHomOver (resPt A ≫ Spec.map (CommRingCat.ofHom ρ)) D₀.toBase Meta₀ : CurveModel (AlgebraicClosure ℚ) (modularFunctionFieldBar N₀) eeta₀ : Meta₀.C ⟶ pullback (IgusaScheme.igusaTo N₀ p) (genPt p) [eeta₀_iso : IsIso eeta₀] heeta₀ : eeta₀ ≫ pullback.snd _ _ = Meta₀.toBase [Meta₀_chart_nonempty : Nonempty (Scheme.Opens.toScheme ((eeta₀ ≫ pullback.fst (IgusaScheme.igusaTo N₀ p) (genPt p)) ⁻¹ᵁ ((IgusaScheme.ιFin N₀ p) ''ᵁ ⊤)))] Meta₀_pin : ∀ a : ↥(IgusaScheme.chartAlgFin N₀ p), ((Meta₀.ffEquiv.symm (Meta₀.C.germToFunctionField ((eeta₀ ≫ pullback.fst (IgusaScheme.igusaTo N₀ p) (genPt p)) ⁻¹ᵁ ((IgusaScheme.ιFin N₀ p) ''ᵁ ⊤)) (((eeta₀ ≫ pullback.fst (IgusaScheme.igusaTo N₀ p) (genPt p)).app ((IgusaScheme.ιFin N₀ p) ''ᵁ ⊤)).hom (((IgusaScheme.ιFin N₀ p).appIso ⊤).inv ((Scheme.ΓSpecIso (CommRingCat.of ↥(IgusaScheme.chartAlgFin N₀ p))).inv a)))) : ↥(modularFunctionFieldBar N₀)) : LaurentSeries (AlgebraicClosure ℚ)) = coeffEmb (AlgebraicClosure ℚ) ((a : ↥(modularFunctionFieldFull N₀)) : LaurentSeries ℚ) pts_aj : ∀ (x s : {q : Spec (CommRingCat.of (AlgebraicClosure ℚ)) ⟶ Meta₀.C // q ≫ Meta₀.toBase = 𝟙 _}), s.1 ≫ eeta₀ ≫ pullback.fst (IgusaScheme.igusaTo N₀ p) (genPt p) = genPt p ≫ ε₀.1 → ∃ Dv : Divisor.degZero (K := AlgebraicClosure ℚ) (F := modularFunctionFieldBar N₀), (Dv : Divisor (AlgebraicClosure ℚ) (modularFunctionFieldBar N₀)) = Finsupp.single (Meta₀.pointEquivPlace x) 1 - Finsupp.single (Meta₀.pointEquivPlace s) 1 ∧ (pts (Pic0.mk Dv)).1 = x.1 ≫ eeta₀ ≫ pullback.fst (IgusaScheme.igusaTo N₀ p) (genPt p) ≫ aj₀.1 namespace LevelModel variable {N₀ p : ℕ} [NeZero N₀] [Fact p.Prime] {A : ValuationSubring (AlgebraicClosure ℚ)} attribute [instance] LevelModel.eeta₀_iso LevelModel.Meta₀_chart_nonempty abbrev σA (M : LevelModel N₀ p A) : Spec (CommRingCat.of ↥A) ⟶ base p := Spec.map (CommRingCat.ofHom M.ρ) abbrev toκ (M : LevelModel N₀ p A) : baseRing p →+* ResidueField ↥A := (residue ↥A).comp M.ρ theorem barPt_σA (M : LevelModel N₀ p A) : barPt A ≫ M.σA = genPt p := by simp only [barPt, genPt, σA, ← Spec.map_comp, ← CommRingCat.ofHom_comp, M.hρ] abbrev law (M : LevelModel N₀ p A) : RelativeGroupLaw (baseRing p) M.D₀.toBase := RepresentsRelSubPic.relativeGroupLaw (P := algEquivZeroGroupCut (IgusaScheme.igusaTo N₀ p) M.ε₀) M.rep def toLevelData (M : LevelModel N₀ p A) : LevelData N₀ p A where σA := M.σA hσA := M.barPt_σA X := M.D₀.P f := M.D₀.toBase L := M.law pts := M.pts ptsSp := M.ptsSp end LevelModel end ModularCurve.JZeroNeronObjectAtP end
Statements phrased using this module (32)
- Néron object of J₀(N₀p) at p from a level model
ModularCurve.DRModelPackageLevel.exists_jZeroNeronObjectAtP_and_bridge_representsRelSubPic_abqFibre_of_levelModel4,507 below · depth 12 - Existence of the level-N₀ Jacobian model at p
ModularCurve.JZeroNeronObjectAtP.exists_levelModel_isJacobian1,827 below · depth 12 - Special-fibre torus, abelian quotient and pins at level N₀p
ModularCurve.DRModelPackageLevel.exists_torusFibre_abqFibre_degeneracy_specialFibre_pins_of_levelModel1,857 below · depth 13 - Norm morphisms realise the degeneracy pushforwards on ℚ̄-points
ModularCurve.DRModelPackageLevel.pts_degeneracyPushforwardPair_eq_comp_degeneracyHom298 below · depth 13 - Degeneracy norm morphism versus Abel–Jacobi on ℚ̄-points
ModularCurve.DRModelPackageLevel.mul_degeneracyHom_ajbar_abelJacobi_eq85 below · depth 14 - Second degeneracy norm map versus Abel–Jacobi on ℚ̄-points
ModularCurve.DRModelPackageLevel.mul_degeneracyHom_one_ajbar_abelJacobi_eq85 below · depth 14 - Degeneracy map on ℚ̄-points restricts places along ᾱ
ModularCurve.DRModelPackageLevel.pointEquivPlace_eq_restrictAlong_heckeAlphaBar_of_comp_pi96 below · depth 14 - Second degeneracy morphism: places restrict along `heckeBetaBar`
ModularCurve.DRModelPackageLevel.pointEquivPlace_eq_restrictAlong_heckeBetaBar_of_comp_piw131 below · depth 14 - Abelian coordinates of the reduction equal the glued specialisation pair
ModularCurve.DRModelPackageLevel.ptsSp_symm_abq_reduction_eq_toPic0Pair_of_isGluedSpecialization1,470 below · depth 14 - Agreement of places for two q-expansion-pinned models of X₀(N₀)
ModularCurve.JZeroNeronObjectAtP.LevelModel.pointEquivPlace_ofGenerator_eq_of_comp_eeta0_of_chartPin106 below · depth 14 - Norm along φ_κ acts as Frobenius pushforward on Pic⁰
ModularCurve.JZeroNeronObjectAtP.LevelModel.symm_fibreMap_frobeniusNormHom_eq_frobeniusPushforwardModL_symm1,181 below · depth 14 - Degeneracy morphism on generic points is Spec of α
ModularCurve.DRModelPackageLevel.fromSpecStalk_genericPoint_comp_eq_spec_map_heckeAlphaBar2 below · depth 15 - Second degeneracy map on generic points is Specβ
ModularCurve.DRModelPackageLevel.fromSpecStalk_genericPoint_comp_eq_spec_map_heckeBetaBar77 below · depth 15 - Poincaré bundle at geometric Abel–Jacobi points equals 𝒪(̄ y-∞)
ModularCurve.DRModelPackageLevel.nonempty_poincare_pullbackAlong_iso_ofPoint_tensor_ofPoint_idealModule_of_eq_comp_ajbar15 below · depth 15 - Abelian-quotient reduction of a good class matches the glued specialisation
ModularCurve.DRModelPackageLevel.ptsSp_symm_abq_reduction_pair_eq_toPic0Pair_of_isGluedSpecialization1,211 below · depth 15 - Atkin–Lehner involution acts as w_* on ℚ̄-points
ModularCurve.DRModelPackageLevel.pts_atkinLehner_smul_eq_comp_atkinLehnerHom173 below · depth 15 - Second degeneracy pullback agrees with β^* on ℚ̄-points
ModularCurve.DRModelPackageLevel.pts_degeneracyPullbackPair_one_eq_comp_degeneracyPullbackHom1,238 below · depth 15 - Places restrict along chart-pinned morphisms of Igusa schemes
ModularCurve.IgusaScheme.pointEquivPlace_eq_restrictAlong_of_chart_pin4 below · depth 15 - Frobenius conjugation and fibre points of the Igusa model
ModularCurve.JZeroNeronObjectAtP.LevelModel.fibrePt_eq_fibrePt_comp_frobenius_of_isFrobeniusAt86 below · depth 15 - Base-changed Abel–Jacobi classifies 𝒪(y)⊗𝒪(-ε₀)
ModularCurve.JZeroNeronObjectAtP.LevelModel.nonempty_poincare_pullbackAlong_ajZero_baseChange_iso_ofPoint874 below · depth 15 - Special fibre of an A-point equals reduction mod λ
ModularCurve.JZeroNeronObjectAtP.LevelModel.ptsSp_symm_schemeHomOverComp_resPt_eq_reductionModL741 below · depth 15 - Atkin–Lehner endomorphism on Abel–Jacobi points of Pic⁰
ModularCurve.DRModelPackageLevel.mul_atkinLehnerHom_ajbar_ajbar_eq_of_comp_w23 below · depth 16 - The two abq coordinates of a reduced Abel–Jacobi point
ModularCurve.DRModelPackageLevel.nonempty_poincare_pullbackAlong_abq_reduction_iso_pointTwist1,142 below · depth 16 - Atkin–Lehner involution restricts places along the geometric automorphism
ModularCurve.DRModelPackageLevel.pointEquivPlace_eq_restrictAlong_geomAut_of_comp_w4 below · depth 16 - Second degeneracy pullback of [x]-[s₀] equals β^∗circaj₀
ModularCurve.DRModelPackageLevel.pts_degeneracyPullbackPair_one_mk_eq_abelJacobi_comp_degeneracyPullbackHom1,237 below · depth 16 - Degree-zero twists by A-sections come from D₀
ModularCurve.JZeroNeronObjectAtP.LevelModel.exists_schemeHomOver_poincare_pullbackAlong_iso_rigidify_sectionTwist_of_sum_eq_zero281 below · depth 16 - Reduction of a point classifying a rigidified section twist
ModularCurve.JZeroNeronObjectAtP.LevelModel.nonempty_poincare_baseChange_pullbackAlong_iso_pointTwist_of_iso_rigidify_sectionTwist29 below · depth 16 - Rigidified section twists restrict to the geometric generic fibre
ModularCurve.JZeroNeronObjectAtP.LevelModel.nonempty_poincare_pullbackAlong_iso_pointTwist_of_iso_rigidify_sectionTwist29 below · depth 16 - Poincaré pullback at a degree-zero class is the point twist
ModularCurve.JZeroNeronObjectAtP.LevelModel.nonempty_poincare_pullbackAlong_pts_pic0Mk_iso_pointTwist15 below · depth 16 - Conorm divisors map to aj₀ followed by β^∗
ModularCurve.DRModelPackageLevel.pts_mk_pullbackAlong_heckeBetaBar_single_sub_eq_abelJacobi_comp_degeneracyPullbackHom1,236 below · depth 17 - Poincaré pullback at an effective divisor class as ideal-power modules
ModularCurve.DRModelPackageLevel.nonempty_poincare_pullbackAlong_pts_mk_iso_invModule_prod_pow_tensor_module_pow24 below · depth 18 - Node-unit Poincaré bundle puts a special-fibre class in the toric part
ModularCurve.JHNeronObjectAtP.ptsSp_symm_schemeHomOverComp_mem_range_nodeUnit_of_isNodeUnitModule_poincare_pullbackAlong1,672 below · depth 26