Definitions/Def_ModularCurve_JZeroNeronObjectAtP.lean
Level- Néron objects at over level- data
Throughout, the base ring is R_p=\mathbf{Z}_{(p)}, realised as GaloisRep.ratLocalizedAt p (the rationals whose denominator is coprime to p), with base p =\operatorname{Spec}R_p, genPt p the \overline{\mathbf{Q}}-point of the base, and, for a valuation subring A\subseteq\overline{\mathbf{Q}}, barPt A and resPt A the inclusions \operatorname{Spec}\overline{\mathbf{Q}}\to\operatorname{Spec}A\leftarrow\operatorname{Spec}\kappa_A. A block of helpers transports points along base change (toFibrePt, ofFibrePt, fibreMap, castOver, genOfBaseChangePt) and presents split tori and their torsion concretely: torusCoord S t is the group algebra S[\mathbf{Z}^t] and muCoord S t m is S[(\mathbf{Z}/m)^t], so torusScheme/muScheme are \mathbf{G}_{m,S}^{t} and \mu_{m,S}^{t}, with muToTorus, muIncl (for m\mid m') and muBaseChange induced by the evident maps of grading groups; muPt, torusPt package characters (algebra maps out of these group algebras) as points. ExtendsToPlace A σA x says the generic point x is the restriction along barPt A of a point over \sigma_A.
LevelData N₀ p A is pure data: a morphism \sigma_A:\operatorname{Spec}A\to\operatorname{Spec}R_p with barPt A ≫ σA = genPt p, a scheme f:X\to\operatorname{Spec}R_p with a RelativeGroupLaw, and bijections \mathrm{pts}:\mathrm{JZero}\,N_0\simeq X(\overline{\mathbf{Q}}) and \mathrm{ptsSp}:\mathrm{JZeroC}\,\kappa_A\,N_0\simeq X(\kappa_A) (points over resPt A ≫ σA). The predicate LevelData.IsJacobian asserts, as a conjunction, that f satisfies AbelianSchemePropertyBundle (smooth, proper, connected fibres, a relative group law exists), that the group law is commutative on all test points, that both dictionaries are additive, that \mathrm{pts} is Galois-equivariant (the action of \sigma corresponds to precomposition with \operatorname{Spec}\sigma), that under the predicate ReductionInputsModL the two dictionaries are compatible via ReductionOfPointsAgreesModL (each generic point extends to an A-point whose reduction is the specialisation given by reductionModL), and that every element of HeckeAlg is realised by an endomorphism of f over the base which is additive on points and matches the Hecke action under \mathrm{pts}.
The main structure JZeroNeronObjectAtP N₀ p hpN₀ A hA Λ (with p\nmid N_0 and A lying over p) carries: a smooth, separated, locally of finite type, quasi-compact, surjective g:G\to\operatorname{Spec}R_p with preconnected fibres and a commutative relative group law, multiplication by each n\ge 1 flat and surjective, proper generic fibre, a Galois-equivariant additive bijection \mathrm{pts}:\mathrm{JZero}(N_0p)\simeq G(\overline{\mathbf{Q}}), and Hecke endomorphisms as above. The special fibre is described by a closed immersion torusFibre of \mathbf{G}_{m,\kappa_A}^{t} (t= toricRank) into G_{\kappa_A}, multiplicative on characters, together with two additive maps abqFibre i :G_{\kappa_A}\to X_{\kappa_A} whose pair is flat and surjective and whose common kernel, on arbitrary test points, consists exactly of the points factoring through the torus; abqFibre_twist records commutation with automorphisms of the geometric base point. Two degeneracyHom G\to X over R_p are additive and induce degeneracyPushforwardPair N₀ p i on \overline{\mathbf{Q}}-points; an additive frobSp on \mathrm{JZeroC}\,\kappa_A\,N_0 is compatible with reductionModL for any Frobenius at A, and degeneracyHom_special gives the Eichler-type formulas (\nu_0+\mathrm{Frob}\,\nu_1,\ \mathrm{Frob}\,\nu_0+\nu_1) on \kappa_A-points, while the scheme-theoretic common kernel of the two degeneracy maps on the special fibre is required to be reduced. For each m>0 a closed immersion toricLift of \mu_{m,A}^{t} into G_A is given, multiplicative on characters, compatible with m\mid m', reducing to torusFibre modulo the maximal ideal, with inertia acting on the resulting points of \mathrm{JZero}(N_0p) through the cyclotomic character and the decomposition group permuting them. Finally a finset ssFinset of places of modularFunctionFieldC κ_A N₀ is required to be exactly the supersingular places ssPlaces p N₀ κ_A, frob is a semilinear automorphism with base map a\mapsto a^p fixing the two geometric generators, t+1=\#\,ssFinset, positive widths are attached to the node pairs (w,\mathrm{frob}\cdot w), and a surjective homomorphism comp from the inertia invariants of \mathrm{JZero}(N_0p) to componentGroup width satisfies T_\ell\mapsto(\ell+1) for \ell\nmid N_0p and has kernel precisely the points whose associated section extends to A. The closing definitions nodes, toricPoint, toricPts (the subgroup generated by the toric points at level m, trivial for m=0) and finPts (generated by the m-torsion points extending to A) read off subgroups of \mathrm{JZero}(N_0p) from such an object.
Relation to Mathlib
Mathlib has no Néron models or group schemes in this form; the project's RelativeGroupLaw, SchemeHomOver and their base-change apparatus are used instead, and tori and their torsion subschemes are presented concretely as spectra of Mathlib's AddMonoidAlgebra on \mathbf{Z}^t and (\mathbf{Z}/m)^t. The morphism properties invoked (Smooth, IsSeparated, LocallyOfFiniteType, QuasiCompact, Surjective, Flat, IsProper, IsClosedImmersion, IsReduced) are Mathlib's.
Where it is used
Nothing is asserted here: this is the data type for the geometric object at p — morally the identity component of the Néron model of J_0(N_0p) over \mathbf{Z}_{(p)}, read at a place A above p, sitting over a level-N_0 good-reduction datum — whose existence is proved elsewhere. Its fields (toric part and its \mu_m-lifts, the two degeneracy maps and the Eichler formula on the special fibre, the component-group homomorphism with its Eisenstein relation) are the inputs from which the at-p Néron datum of J_0(N_0p) is assembled for the level-lowering step at p.
References
- S. Bosch, W. Lütkebohmert and M. Raynaud, Néron Models, Ergebnisse der Mathematik und ihrer Grenzgebiete 21, Springer, 1990
- 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.
- 374 lines
- 104 declarations
- used in the statements of 191 theorems and imported by 206 proofs
- imports 10 definition modules
Source file: Definitions/Def_ModularCurve_JZeroNeronObjectAtP.lean
Imports
Def_ModularCurve_JZeroNeronIdentityComponentDef_GoodReductionJacobian_RelativeGroupLawBaseChangeDef_ModularCurve_ReductionOfPointsAgreesModLDef_ModularCurve_JZeroSemistableSpecializationDef_ModularCurve_JZeroNeronDataDef_ModularCurve_ToricDescentDataDef_GaloisRep_FlatDef_FLTPrelim_RamificationDef_ModularCurve_SupersingularNodePlacesDef_JacJ1Iface
Declarations
- abbrev
ModularCurve.JZeroNeronObjectAtP.baseRing - abbrev
ModularCurve.JZeroNeronObjectAtP.base - abbrev
ModularCurve.JZeroNeronObjectAtP.genPt - abbrev
ModularCurve.JZeroNeronObjectAtP.barPt - abbrev
ModularCurve.JZeroNeronObjectAtP.resPt - def
ModularCurve.JZeroNeronObjectAtP.overId - def
ModularCurve.JZeroNeronObjectAtP.toFibrePt - def
ModularCurve.JZeroNeronObjectAtP.ofFibrePt - def
ModularCurve.JZeroNeronObjectAtP.fibreMap - abbrev
ModularCurve.JZeroNeronObjectAtP.muCoord - abbrev
ModularCurve.JZeroNeronObjectAtP.muScheme - abbrev
ModularCurve.JZeroNeronObjectAtP.muStr - abbrev
ModularCurve.JZeroNeronObjectAtP.torusCoord - abbrev
ModularCurve.JZeroNeronObjectAtP.torusScheme - abbrev
ModularCurve.JZeroNeronObjectAtP.torusStr - abbrev
ModularCurve.JZeroNeronObjectAtP.muToTorus - abbrev
ModularCurve.JZeroNeronObjectAtP.muIncl - abbrev
ModularCurve.JZeroNeronObjectAtP.muBaseChange - def
ModularCurve.JZeroNeronObjectAtP.muPt - def
ModularCurve.JZeroNeronObjectAtP.torusPt - def
ModularCurve.JZeroNeronObjectAtP.castOver - def
ModularCurve.JZeroNeronObjectAtP.genOfBaseChangePt - def
ModularCurve.JZeroNeronObjectAtP.ExtendsToPlace - def
ModularCurve.JZeroNeronObjectAtP.castOverEquiv - structure
ModularCurve.JZeroNeronObjectAtP.LevelData - field
ModularCurve.JZeroNeronObjectAtP.LevelData.X - field
ModularCurve.JZeroNeronObjectAtP.LevelData.f - field
ModularCurve.JZeroNeronObjectAtP.LevelData.L - field
ModularCurve.JZeroNeronObjectAtP.LevelData.pts - field
ModularCurve.JZeroNeronObjectAtP.LevelData.ptsSp - def
ModularCurve.JZeroNeronObjectAtP.LevelData.ptsA - def
ModularCurve.JZeroNeronObjectAtP.LevelData.IsJacobian - structure
ModularCurve.JZeroNeronObjectAtP - field
ModularCurve.JZeroNeronObjectAtP.A - field
ModularCurve.JZeroNeronObjectAtP.G - field
ModularCurve.JZeroNeronObjectAtP.g - field
ModularCurve.JZeroNeronObjectAtP.L - field
ModularCurve.JZeroNeronObjectAtP.pts - field
ModularCurve.JZeroNeronObjectAtP.comm - field
ModularCurve.JZeroNeronObjectAtP.smooth - field
ModularCurve.JZeroNeronObjectAtP.separated - field
ModularCurve.JZeroNeronObjectAtP.locallyOfFiniteType - field
ModularCurve.JZeroNeronObjectAtP.quasiCompact - field
ModularCurve.JZeroNeronObjectAtP.surjective - field
ModularCurve.JZeroNeronObjectAtP.fibre_preconnected - field
ModularCurve.JZeroNeronObjectAtP.pts_add - field
ModularCurve.JZeroNeronObjectAtP.pts_galois - field
ModularCurve.JZeroNeronObjectAtP.pts - field
ModularCurve.JZeroNeronObjectAtP.hecke - field
ModularCurve.JZeroNeronObjectAtP.nsmul_flat - field
ModularCurve.JZeroNeronObjectAtP.nsmul_surjective - field
ModularCurve.JZeroNeronObjectAtP.proper_generic - field
ModularCurve.JZeroNeronObjectAtP.toricRank - field
ModularCurve.JZeroNeronObjectAtP.torusFibre - field
ModularCurve.JZeroNeronObjectAtP.torusFibre_isClosedImmersion - field
ModularCurve.JZeroNeronObjectAtP.torusFibre_mul - field
ModularCurve.JZeroNeronObjectAtP.abqFibre - field
ModularCurve.JZeroNeronObjectAtP.abqFibre_mul - field
ModularCurve.JZeroNeronObjectAtP.abqFibre_flat - field
ModularCurve.JZeroNeronObjectAtP.abqFibre_surjective - field
ModularCurve.JZeroNeronObjectAtP.Surjective - field
ModularCurve.JZeroNeronObjectAtP.abqFibre_eq_one_iff - field
ModularCurve.JZeroNeronObjectAtP.x - field
ModularCurve.JZeroNeronObjectAtP.abqFibre_twist - field
ModularCurve.JZeroNeronObjectAtP.x - field
ModularCurve.JZeroNeronObjectAtP.fibreMap - field
ModularCurve.JZeroNeronObjectAtP.degeneracyHom - field
ModularCurve.JZeroNeronObjectAtP.degeneracyHom_mul - field
ModularCurve.JZeroNeronObjectAtP.degeneracyHom_pts - field
ModularCurve.JZeroNeronObjectAtP.frobSp - field
ModularCurve.JZeroNeronObjectAtP.frobSp_reductionModL - field
ModularCurve.JZeroNeronObjectAtP.degeneracyHom_special - field
ModularCurve.JZeroNeronObjectAtP.frobSp - field
ModularCurve.JZeroNeronObjectAtP.ker_degeneracyHom_special_isReduced - field
ModularCurve.JZeroNeronObjectAtP.IsReduced - field
ModularCurve.JZeroNeronObjectAtP.toricLift - field
ModularCurve.JZeroNeronObjectAtP.toricLift_isClosedImmersion - field
ModularCurve.JZeroNeronObjectAtP.toricLift_mul - field
ModularCurve.JZeroNeronObjectAtP.toricLift_compat - field
ModularCurve.JZeroNeronObjectAtP.toricLift_special - field
ModularCurve.JZeroNeronObjectAtP.muBaseChange - field
ModularCurve.JZeroNeronObjectAtP.muToTorus - field
ModularCurve.JZeroNeronObjectAtP.toricLift_inertia - field
ModularCurve.JZeroNeronObjectAtP.toricLift_dec - field
ModularCurve.JZeroNeronObjectAtP.ssFinset - field
ModularCurve.JZeroNeronObjectAtP.mem_ssFinset_iff - field
ModularCurve.JZeroNeronObjectAtP.frob - field
ModularCurve.JZeroNeronObjectAtP.baseAut_frob - field
ModularCurve.JZeroNeronObjectAtP.frob_jGeomGen - field
ModularCurve.JZeroNeronObjectAtP.jGeomGen - field
ModularCurve.JZeroNeronObjectAtP.frob_jNGeomGen - field
ModularCurve.JZeroNeronObjectAtP.jNGeomGen - field
ModularCurve.JZeroNeronObjectAtP.toricRank_succ_eq_card - field
ModularCurve.JZeroNeronObjectAtP.width - field
ModularCurve.JZeroNeronObjectAtP.width_pos - field
ModularCurve.JZeroNeronObjectAtP.comp - field
ModularCurve.JZeroNeronObjectAtP.comp_heckeGen - field
ModularCurve.JZeroNeronObjectAtP.hx - field
ModularCurve.JZeroNeronObjectAtP.comp_surjective - field
ModularCurve.JZeroNeronObjectAtP.comp_eq_zero_iff - abbrev
ModularCurve.JZeroNeronObjectAtP.nodes - def
ModularCurve.JZeroNeronObjectAtP.toricPoint - def
ModularCurve.JZeroNeronObjectAtP.toricPts - def
ModularCurve.JZeroNeronObjectAtP.finPts
Source
import Mathlib import Definitions.Def_ModularCurve_JZeroNeronIdentityComponent import Definitions.Def_GoodReductionJacobian_RelativeGroupLawBaseChange import Definitions.Def_ModularCurve_ReductionOfPointsAgreesModL import Definitions.Def_ModularCurve_JZeroSemistableSpecialization import Definitions.Def_ModularCurve_JZeroNeronData import Definitions.Def_ModularCurve_ToricDescentData import Definitions.Def_GaloisRep_Flat import Definitions.Def_FLTPrelim_Ramification import Definitions.Def_ModularCurve_SupersingularNodePlaces import Definitions.Def_JacJ1Iface set_option autoImplicit false open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra GoodReductionJacobian AlgebraicCurve IsLocalRing noncomputable section namespace ModularCurve namespace JZeroNeronObjectAtP abbrev baseRing (p : ℕ) : Type := ↥(GaloisRep.ratLocalizedAt p) abbrev base (p : ℕ) : Scheme.{0} := Spec (CommRingCat.of (baseRing p)) abbrev genPt (p : ℕ) : Spec (CommRingCat.of (AlgebraicClosure ℚ)) ⟶ base p := Spec.map (CommRingCat.ofHom (algebraMap (baseRing p) (AlgebraicClosure ℚ))) abbrev barPt (A : ValuationSubring (AlgebraicClosure ℚ)) : Spec (CommRingCat.of (AlgebraicClosure ℚ)) ⟶ Spec (CommRingCat.of ↥A) := Spec.map (CommRingCat.ofHom A.subtype) abbrev resPt (A : ValuationSubring (AlgebraicClosure ℚ)) : Spec (CommRingCat.of (ResidueField ↥A)) ⟶ Spec (CommRingCat.of ↥A) := Spec.map (CommRingCat.ofHom (residue ↥A)) def overId {B T X : Scheme.{0}} {ι : T ⟶ B} {f : X ⟶ B} (x : SchemeHomOver ι f) : SchemeHomOver (𝟙 T ≫ ι) f := ⟨x.1, by rw [Category.id_comp]; exact x.2⟩ def toFibrePt {R R' : Type} [CommRing R] [CommRing R'] {X : Scheme.{0}} {ι : Spec (CommRingCat.of R') ⟶ Spec (CommRingCat.of R)} {f : X ⟶ Spec (CommRingCat.of R)} (x : SchemeHomOver ι f) : SchemeHomOver (𝟙 _) (RelativeGroupLaw.baseChangeStr ι f) := RelativeGroupLaw.baseChangePointOfBase ι (overId x) def ofFibrePt {R R' : Type} [CommRing R] [CommRing R'] {X : Scheme.{0}} {ι : Spec (CommRingCat.of R') ⟶ Spec (CommRingCat.of R)} {f : X ⟶ Spec (CommRingCat.of R)} (y : SchemeHomOver (𝟙 _) (RelativeGroupLaw.baseChangeStr ι f)) : SchemeHomOver ι f := ⟨(RelativeGroupLaw.baseChangePointToBase ι y).1, by simpa only [Category.id_comp] using (RelativeGroupLaw.baseChangePointToBase ι y).2⟩ def fibreMap {R R' : Type} [CommRing R] [CommRing R'] {X Y : Scheme.{0}} {ι : Spec (CommRingCat.of R') ⟶ Spec (CommRingCat.of R)} {f : X ⟶ Spec (CommRingCat.of R)} {g : Y ⟶ Spec (CommRingCat.of R)} (φ : SchemeHomOver (RelativeGroupLaw.baseChangeStr ι g) (RelativeGroupLaw.baseChangeStr ι f)) (x : SchemeHomOver ι g) : SchemeHomOver ι f := ofFibrePt (NeronModelInfra.schemeHomOverComp (toFibrePt x) φ) abbrev muCoord (S : Type) [CommRing S] (t m : ℕ) : Type := AddMonoidAlgebra S (Fin t → ZMod m) abbrev muScheme (S : Type) [CommRing S] (t m : ℕ) : Scheme.{0} := Spec (CommRingCat.of (muCoord S t m)) abbrev muStr (S : Type) [CommRing S] (t m : ℕ) : muScheme S t m ⟶ Spec (CommRingCat.of S) := Spec.map (CommRingCat.ofHom (algebraMap S (muCoord S t m))) abbrev torusCoord (S : Type) [CommRing S] (t : ℕ) : Type := AddMonoidAlgebra S (Fin t → ℤ) abbrev torusScheme (S : Type) [CommRing S] (t : ℕ) : Scheme.{0} := Spec (CommRingCat.of (torusCoord S t)) abbrev torusStr (S : Type) [CommRing S] (t : ℕ) : torusScheme S t ⟶ Spec (CommRingCat.of S) := Spec.map (CommRingCat.ofHom (algebraMap S (torusCoord S t))) abbrev muToTorus (S : Type) [CommRing S] (t m : ℕ) : muScheme S t m ⟶ torusScheme S t := Spec.map (CommRingCat.ofHom (AddMonoidAlgebra.mapDomainRingHom S (AddMonoidHom.pi fun i => (Int.castAddHom (ZMod m)).comp (Pi.evalAddMonoidHom (fun _ : Fin t => ℤ) i)))) abbrev muIncl (S : Type) [CommRing S] (t : ℕ) {m m' : ℕ} (h : m ∣ m') : muScheme S t m ⟶ muScheme S t m' := Spec.map (CommRingCat.ofHom (AddMonoidAlgebra.mapDomainRingHom S (AddMonoidHom.pi fun i => ((ZMod.castHom h (ZMod m)).toAddMonoidHom).comp (Pi.evalAddMonoidHom (fun _ : Fin t => ZMod m') i)))) abbrev muBaseChange {S S' : Type} [CommRing S] [CommRing S'] (φ : S →+* S') (t m : ℕ) : muScheme S' t m ⟶ muScheme S t m := Spec.map (CommRingCat.ofHom (AddMonoidAlgebra.mapRingHom (Fin t → ZMod m) φ)) def muPt (A : ValuationSubring (AlgebraicClosure ℚ)) (t m : ℕ) (χ : muCoord ↥A t m →ₐ[↥A] AlgebraicClosure ℚ) : SchemeHomOver (barPt A) (muStr ↥A t m) := ⟨Spec.map (CommRingCat.ofHom χ.toRingHom), by rw [← Spec.map_comp, ← CommRingCat.ofHom_comp] congr 2 exact χ.comp_algebraMap⟩ def torusPt (S : Type) [CommRing S] (t : ℕ) (χ : torusCoord S t →ₐ[S] S) : SchemeHomOver (𝟙 _) (torusStr S t) := ⟨Spec.map (CommRingCat.ofHom χ.toRingHom), by rw [← Spec.map_comp, ← CommRingCat.ofHom_comp] have h : χ.toRingHom.comp (algebraMap S (torusCoord S t)) = RingHom.id S := by rw [AlgHom.toRingHom_eq_coe, AlgHom.comp_algebraMap]; rfl rw [h, CommRingCat.ofHom_id, Spec.map_id]⟩ def castOver {B T X : Scheme.{0}} {ι ι' : T ⟶ B} {f : X ⟶ B} (h : ι = ι') (x : SchemeHomOver ι f) : SchemeHomOver ι' f := ⟨x.1, x.2.trans h⟩ def genOfBaseChangePt {p : ℕ} {A : ValuationSubring (AlgebraicClosure ℚ)} {σA : Spec (CommRingCat.of ↥A) ⟶ base p} (hσA : barPt A ≫ σA = genPt p) {X : Scheme.{0}} {f : X ⟶ base p} (y : SchemeHomOver (barPt A) (RelativeGroupLaw.baseChangeStr σA f)) : SchemeHomOver (genPt p) f := castOver hσA (RelativeGroupLaw.baseChangePointToBase σA y) def ExtendsToPlace {p : ℕ} (A : ValuationSubring (AlgebraicClosure ℚ)) (σA : Spec (CommRingCat.of ↥A) ⟶ base p) {X : Scheme.{0}} {f : X ⟶ base p} (x : SchemeHomOver (genPt p) f) : Prop := ∃ s : SchemeHomOver σA f, x.1 = barPt A ≫ s.1 def castOverEquiv {B T X : Scheme.{0}} {ι ι' : T ⟶ B} {f : X ⟶ B} (h : ι = ι') : SchemeHomOver ι f ≃ SchemeHomOver ι' f where toFun := castOver h invFun := castOver h.symm left_inv _ := Subtype.ext rfl right_inv _ := Subtype.ext rfl structure LevelData (N₀ p : ℕ) [NeZero N₀] (A : ValuationSubring (AlgebraicClosure ℚ)) where σA : Spec (CommRingCat.of ↥A) ⟶ base p hσA : barPt A ≫ σA = genPt p X : Scheme.{0} f : X ⟶ base p L : RelativeGroupLaw (baseRing p) f pts : JZero N₀ ≃ SchemeHomOver (genPt p) f ptsSp : JZeroC (ResidueField ↥A) N₀ ≃ SchemeHomOver (resPt A ≫ σA) f namespace LevelData variable {N₀ p : ℕ} [NeZero N₀] {A : ValuationSubring (AlgebraicClosure ℚ)} def ptsA (Λ : LevelData N₀ p A) : JZero N₀ ≃ SchemeHomOver (barPt A ≫ Λ.σA) Λ.f := Λ.pts.trans (castOverEquiv Λ.hσA.symm) def IsJacobian (Λ : LevelData N₀ p A) : Prop := letI := heckeModuleBar N₀ AbelianSchemePropertyBundle (baseRing p) Λ.f ∧ (∀ {T : Scheme.{0}} (t : T ⟶ base p) (x y : SchemeHomOver t Λ.f), Λ.L.mul t x y = Λ.L.mul t y x) ∧ (∀ x y : JZero N₀, Λ.pts (x + y) = Λ.L.mul _ (Λ.pts x) (Λ.pts y)) ∧ (∀ (σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) (x : JZero N₀), (Λ.pts (σ • x)).1 = Spec.map (CommRingCat.ofHom (σ : AlgebraicClosure ℚ →+* AlgebraicClosure ℚ)) ≫ (Λ.pts x).1) ∧ (∀ u v : JZeroC (ResidueField ↥A) N₀, Λ.ptsSp (u + v) = Λ.L.mul _ (Λ.ptsSp u) (Λ.ptsSp v)) ∧ (ReductionInputsModL A N₀ → ReductionOfPointsAgreesModL N₀ A Λ.f Λ.σA Λ.ptsA Λ.ptsSp) ∧ (∀ t : HeckeAlg, ∃ φ : SchemeHomOver Λ.f Λ.f, (∀ {T : Scheme.{0}} (s : T ⟶ base p) (x y : SchemeHomOver s Λ.f), NeronModelInfra.schemeHomOverComp (Λ.L.mul s x y) φ = Λ.L.mul s (NeronModelInfra.schemeHomOverComp x φ) (NeronModelInfra.schemeHomOverComp y φ)) ∧ ∀ x : JZero N₀, (Λ.pts (t • x)).1 = (Λ.pts x).1 ≫ φ.1) end LevelData end JZeroNeronObjectAtP open JZeroNeronObjectAtP attribute [local instance] instDecidableEqResidueFieldSemistable instAlgebraResidueFieldModularFunctionFieldCSemistable set_option synthInstance.maxHeartbeats 400000 in set_option maxHeartbeats 4000000 in structure JZeroNeronObjectAtP (N₀ p : ℕ) [NeZero N₀] [Fact p.Prime] [NeZero p] (hpN₀ : ¬ p ∣ N₀) (A : ValuationSubring (AlgebraicClosure ℚ)) (hA : A.LiesOverPrime p) (Λ : JZeroNeronObjectAtP.LevelData N₀ p A) where G : Scheme.{0} g : G ⟶ base p L : RelativeGroupLaw (baseRing p) g pts : JZero (N₀ * p) ≃ SchemeHomOver (genPt p) g comm : L.IsCommutative smooth : Smooth g separated : IsSeparated g locallyOfFiniteType : LocallyOfFiniteType g quasiCompact : QuasiCompact g surjective : Surjective g fibre_preconnected : ∀ s : base p, _root_.IsPreconnected (g.base ⁻¹' {s}) pts_add : ∀ x y : JZero (N₀ * p), pts (x + y) = L.mul _ (pts x) (pts y) pts_galois : ∀ (σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) (x : JZero (N₀ * p)), (pts (σ • x)).1 = Spec.map (CommRingCat.ofHom (σ : AlgebraicClosure ℚ →+* AlgebraicClosure ℚ)) ≫ (pts x).1 hecke : letI := heckeModuleBar (N₀ * p) ∀ t : HeckeAlg, ∃ φ : SchemeHomOver g g, (∀ {T : Scheme.{0}} (s : T ⟶ base p) (x y : SchemeHomOver s g), NeronModelInfra.schemeHomOverComp (L.mul s x y) φ = L.mul s (NeronModelInfra.schemeHomOverComp x φ) (NeronModelInfra.schemeHomOverComp y φ)) ∧ ∀ x : JZero (N₀ * p), (pts (t • x)).1 = (pts x).1 ≫ φ.1 nsmul_flat : ∀ n : ℕ, 0 < n → Flat (L.schemeNsmul n) nsmul_surjective : ∀ n : ℕ, 0 < n → Surjective (L.schemeNsmul n) proper_generic : IsProper (pullback.snd g (Spec.map (CommRingCat.ofHom (algebraMap (baseRing p) ℚ)))) toricRank : ℕ torusFibre : SchemeHomOver (torusStr (ResidueField ↥A) toricRank) (RelativeGroupLaw.baseChangeStr (resPt A ≫ Λ.σA) g) torusFibre_isClosedImmersion : IsClosedImmersion torusFibre.1 torusFibre_mul : ∀ χ χ' : WithConv (torusCoord (ResidueField ↥A) toricRank →ₐ[ResidueField ↥A] ResidueField ↥A), NeronModelInfra.schemeHomOverComp (torusPt _ _ (χ * χ').ofConv) torusFibre = (L.baseChange (resPt A ≫ Λ.σA)).mul _ (NeronModelInfra.schemeHomOverComp (torusPt _ _ χ.ofConv) torusFibre) (NeronModelInfra.schemeHomOverComp (torusPt _ _ χ'.ofConv) torusFibre) abqFibre : Fin 2 → SchemeHomOver (RelativeGroupLaw.baseChangeStr (resPt A ≫ Λ.σA) g) (RelativeGroupLaw.baseChangeStr (resPt A ≫ Λ.σA) Λ.f) abqFibre_mul : ∀ (i : Fin 2) {T : Scheme.{0}} (s : T ⟶ Spec (CommRingCat.of (ResidueField ↥A))) (x y : SchemeHomOver s (RelativeGroupLaw.baseChangeStr (resPt A ≫ Λ.σA) g)), NeronModelInfra.schemeHomOverComp ((L.baseChange (resPt A ≫ Λ.σA)).mul s x y) (abqFibre i) = (Λ.L.baseChange (resPt A ≫ Λ.σA)).mul s (NeronModelInfra.schemeHomOverComp x (abqFibre i)) (NeronModelInfra.schemeHomOverComp y (abqFibre i)) abqFibre_flat : Flat (pullback.lift (abqFibre 0).1 (abqFibre 1).1 ((abqFibre 0).2.trans (abqFibre 1).2.symm)) abqFibre_surjective : Surjective (pullback.lift (abqFibre 0).1 (abqFibre 1).1 ((abqFibre 0).2.trans (abqFibre 1).2.symm)) abqFibre_eq_one_iff : ∀ {T : Scheme.{0}} (s : T ⟶ Spec (CommRingCat.of (ResidueField ↥A))) (x : SchemeHomOver s (RelativeGroupLaw.baseChangeStr (resPt A ≫ Λ.σA) g)), (∀ i, NeronModelInfra.schemeHomOverComp x (abqFibre i) = (Λ.L.baseChange (resPt A ≫ Λ.σA)).one s) ↔ ∃ y : SchemeHomOver s (torusStr (ResidueField ↥A) toricRank), NeronModelInfra.schemeHomOverComp y torusFibre = x abqFibre_twist : ∀ (τ : SchemeHomOver (resPt A ≫ Λ.σA) (resPt A ≫ Λ.σA)) (i : Fin 2) (x : SchemeHomOver (resPt A ≫ Λ.σA) g), fibreMap (abqFibre i) (GoodReductionJacobian.schemeHomOverComp τ.1 τ.2 x) = GoodReductionJacobian.schemeHomOverComp τ.1 τ.2 (fibreMap (abqFibre i) x) degeneracyHom : Fin 2 → SchemeHomOver g Λ.f degeneracyHom_mul : ∀ (i : Fin 2) {T : Scheme.{0}} (s : T ⟶ base p) (x y : SchemeHomOver s g), NeronModelInfra.schemeHomOverComp (L.mul s x y) (degeneracyHom i) = Λ.L.mul s (NeronModelInfra.schemeHomOverComp x (degeneracyHom i)) (NeronModelInfra.schemeHomOverComp y (degeneracyHom i)) degeneracyHom_pts : ∀ (i : Fin 2) (x : JZero (N₀ * p)), (Λ.pts (degeneracyPushforwardPair N₀ p i x)).1 = (pts x).1 ≫ (degeneracyHom i).1 frobSp : JZeroC (ResidueField ↥A) N₀ →+ JZeroC (ResidueField ↥A) N₀ frobSp_reductionModL : ∀ φ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ, A.IsFrobeniusAt φ p → ∀ y : JZero N₀, reductionModL A N₀ (φ • y) = frobSp (reductionModL A N₀ y) degeneracyHom_special : ∀ x : SchemeHomOver (resPt A ≫ Λ.σA) g, Λ.ptsSp.symm (NeronModelInfra.schemeHomOverComp x (degeneracyHom 0)) = Λ.ptsSp.symm (fibreMap (abqFibre 0) x) + frobSp (Λ.ptsSp.symm (fibreMap (abqFibre 1) x)) ∧ Λ.ptsSp.symm (NeronModelInfra.schemeHomOverComp x (degeneracyHom 1)) = frobSp (Λ.ptsSp.symm (fibreMap (abqFibre 0) x)) + Λ.ptsSp.symm (fibreMap (abqFibre 1) x) ker_degeneracyHom_special_isReduced : let dκ := fun i : Fin 2 => (NeronSpecialFibreInfra.fibreRestrictAlong (resPt A ≫ Λ.σA) Λ.f g (degeneracyHom i)).1 let eκ := ((Λ.L.baseChange (resPt A ≫ Λ.σA)).one (𝟙 _)).1 IsReduced (pullback (pullback.fst (dκ 0) eκ) (pullback.fst (dκ 1) eκ)) toricLift : ∀ m : ℕ, 0 < m → SchemeHomOver (muStr ↥A toricRank m) (RelativeGroupLaw.baseChangeStr Λ.σA g) toricLift_isClosedImmersion : ∀ (m : ℕ) (hm : 0 < m), IsClosedImmersion (toricLift m hm).1 toricLift_mul : ∀ (m : ℕ) (hm : 0 < m) (χ χ' : WithConv (muCoord ↥A toricRank m →ₐ[↥A] AlgebraicClosure ℚ)), NeronModelInfra.schemeHomOverComp (muPt A toricRank m (χ * χ').ofConv) (toricLift m hm) = (L.baseChange Λ.σA).mul _ (NeronModelInfra.schemeHomOverComp (muPt A toricRank m χ.ofConv) (toricLift m hm)) (NeronModelInfra.schemeHomOverComp (muPt A toricRank m χ'.ofConv) (toricLift m hm)) toricLift_compat : ∀ (m m' : ℕ) (hm : 0 < m) (hm' : 0 < m') (h : m ∣ m'), muIncl ↥A toricRank h ≫ (toricLift m' hm').1 = (toricLift m hm).1 toricLift_special : ∀ (m : ℕ) (hm : 0 < m), muBaseChange (residue ↥A) toricRank m ≫ (toricLift m hm).1 ≫ pullback.fst g Λ.σA = muToTorus (ResidueField ↥A) toricRank m ≫ torusFibre.1 ≫ pullback.fst g (resPt A ≫ Λ.σA) toricLift_inertia : ∀ (m : ℕ) (hm : 0 < m), ∀ σ ∈ A.inertiaSubgroupIn ℚ, ∀ c : ℕ, (∀ ζ : AlgebraicClosure ℚ, ζ ^ m = 1 → σ ζ = ζ ^ c) → ∀ χ : muCoord ↥A toricRank m →ₐ[↥A] AlgebraicClosure ℚ, σ • pts.symm (genOfBaseChangePt Λ.hσA (NeronModelInfra.schemeHomOverComp (muPt A toricRank m χ) (toricLift m hm))) = c • pts.symm (genOfBaseChangePt Λ.hσA (NeronModelInfra.schemeHomOverComp (muPt A toricRank m χ) (toricLift m hm))) toricLift_dec : ∀ (m : ℕ) (hm : 0 < m), ∀ σ ∈ A.decompositionSubgroup ℚ, ∀ χ : muCoord ↥A toricRank m →ₐ[↥A] AlgebraicClosure ℚ, ∃ χ' : muCoord ↥A toricRank m →ₐ[↥A] AlgebraicClosure ℚ, σ • pts.symm (genOfBaseChangePt Λ.hσA (NeronModelInfra.schemeHomOverComp (muPt A toricRank m χ) (toricLift m hm))) = pts.symm (genOfBaseChangePt Λ.hσA (NeronModelInfra.schemeHomOverComp (muPt A toricRank m χ') (toricLift m hm))) ssFinset : Finset (Place (ResidueField ↥A) (modularFunctionFieldC (ResidueField ↥A) N₀)) mem_ssFinset_iff : ∀ w, w ∈ ssFinset ↔ w ∈ ssPlaces p N₀ (ResidueField ↥A) frob : SemilinearAut (ResidueField ↥A) (modularFunctionFieldC (ResidueField ↥A) N₀) baseAut_frob : ∀ a : ResidueField ↥A, SemilinearAut.baseAut frob a = a ^ p frob_jGeomGen : frob • (jGeomGen (ResidueField ↥A) N₀ : modularFunctionFieldC (ResidueField ↥A) N₀) = jGeomGen (ResidueField ↥A) N₀ frob_jNGeomGen : frob • (jNGeomGen (ResidueField ↥A) N₀ : modularFunctionFieldC (ResidueField ↥A) N₀) = jNGeomGen (ResidueField ↥A) N₀ toricRank_succ_eq_card : toricRank + 1 = ssFinset.card width : ↥(nodePairsOfPlaces frob ssFinset) → ℕ width_pos : ∀ s, 0 < width s comp : ↥(inertiaInvariants A (N₀ * p)) →+ componentGroup width comp_heckeGen : letI := heckeModuleBar (N₀ * p) ∀ ℓ : Nat.Primes, ¬ (ℓ : ℕ) ∣ N₀ * p → ∀ (x : ↥(inertiaInvariants A (N₀ * p))) (hx : heckeGen ℓ • (x : JZero (N₀ * p)) ∈ inertiaInvariants A (N₀ * p)), comp ⟨heckeGen ℓ • (x : JZero (N₀ * p)), hx⟩ = (((ℓ : ℕ) : ℤ) + 1) • comp x comp_surjective : Function.Surjective comp comp_eq_zero_iff : ∀ x : ↥(inertiaInvariants A (N₀ * p)), comp x = 0 ↔ ExtendsToPlace A Λ.σA (pts (x : JZero (N₀ * p))) attribute [nolint docBlame] JZeroNeronObjectAtP.separated JZeroNeronObjectAtP.locallyOfFiniteType JZeroNeronObjectAtP.quasiCompact JZeroNeronObjectAtP.surjective JZeroNeronObjectAtP.fibre_preconnected JZeroNeronObjectAtP.nsmul_surjective JZeroNeronObjectAtP.frob_jNGeomGen namespace JZeroNeronObjectAtP variable {N₀ p : ℕ} [NeZero N₀] [Fact p.Prime] [NeZero p] {hpN₀ : ¬ p ∣ N₀} {A : ValuationSubring (AlgebraicClosure ℚ)} {hA : A.LiesOverPrime p} {Λ : LevelData N₀ p A} abbrev nodes (O : JZeroNeronObjectAtP N₀ p hpN₀ A hA Λ) : Finset (Place (ResidueField ↥A) (modularFunctionFieldC (ResidueField ↥A) N₀) × Place (ResidueField ↥A) (modularFunctionFieldC (ResidueField ↥A) N₀)) := nodePairsOfPlaces O.frob O.ssFinset def toricPoint (O : JZeroNeronObjectAtP N₀ p hpN₀ A hA Λ) (m : ℕ) (hm : 0 < m) (χ : muCoord ↥A O.toricRank m →ₐ[↥A] AlgebraicClosure ℚ) : JZero (N₀ * p) := O.pts.symm (genOfBaseChangePt Λ.hσA (NeronModelInfra.schemeHomOverComp (muPt A O.toricRank m χ) (O.toricLift m hm))) def toricPts (O : JZeroNeronObjectAtP N₀ p hpN₀ A hA Λ) (m : ℕ) : AddSubgroup (JZero (N₀ * p)) := if hm : 0 < m then AddSubgroup.closure (Set.range (O.toricPoint m hm)) else ⊥ def finPts (O : JZeroNeronObjectAtP N₀ p hpN₀ A hA Λ) (m : ℕ) : AddSubgroup (JZero (N₀ * p)) := AddSubgroup.closure {x | x ∈ jZeroTorsion (N₀ * p) m ∧ ExtendsToPlace A Λ.σA (O.pts x)} end JZeroNeronObjectAtP end ModularCurve end
Statements phrased using this module (191)
- Uₚ acts as an involution on toric points
ModularCurve.JZeroNeronObjectAtP.heckeGen_smul_heckeGen_smul_eq_self_of_mem_toricPts481 below · depth 11 - Comparison of the H=top and Igusa integral models
ModularCurve.exists_iso_xHDRLevel_top_drLevel_epsInf_pointEquivPlace191 below · depth 11 - Néron object of J₀(N₀p) at p with its bridges
ModularCurve.exists_jZeroNeronObjectAtP_and_bridge4,509 below · depth 11 - Finite and toric parts transport from Jₜop(N₀p) to J₀(N₀p)
ModularCurve.map_finPts_jHNeronObjectAtP_top_eq_and_map_toricPts_eq_of_pic0Congr_of_bridge136 below · depth 11 - 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 - Rigidity of μ_m^t-homomorphisms over a henselian valuation base
ModularCurve.JZeroNeronObjectAtP.eq_of_muBaseChange_residue_comp_eq39 below · depth 12 - Reduction mod m of a toric matrix across an isomorphism
ModularCurve.JZeroNeronObjectAtP.exists_forall_muPt_comp_eq_comp_of_torusMatrix_of_rigid0 below · depth 12 - The generating set of `finPts` is already a subgroup
ModularCurve.JZeroNeronObjectAtP.mem_finPts_iff0 below · depth 12 - Multiplicativity on torsion torus points of the special fibre
ModularCurve.JZeroNeronObjectAtP.schemeHomOverComp_mul_torusPt_fibreRestrictAlong_of_torsion1 below · depth 12 - Hecke stability of the toric m-torsion of J₀(N₀p)
ModularCurve.JZeroNeronObjectAtP.smul_mem_toricPts65 below · depth 12 - Toric points lie in the kernel of both degeneracy push-forwards
ModularCurve.JZeroNeronObjectAtP.toricPts_le_ker_degeneracyPushforwardPair304 below · depth 12 - Generic fibre and points dictionary for the level-M/p Pic⁰ object
ModularCurve.XHDRModelAtP.exists_representsRelSubPic_abelJacobi_pts_levelN_of_representsRelSubPic299 below · depth 12 - Abel–Jacobi dictionary for the relative Pic⁰ of X_H(M)
ModularCurve.XHDRModelAtP.exists_representsRelSubPic_abelJacobi_pts_of_representsRelSubPic299 below · depth 12 - Pull-back along φ⁻¹ intertwines the two Abel–Jacobi dictionaries
ModularCurve.jZeroNeronObjectAtP_pts_pic0Congr_eq_pts_comp_pullbackHom_of_modelIso_levelData66 below · depth 12 - Torus homomorphism induced on toric parts by Ψ_κ
NeronSpecialFibreInfra.exists_mapDomainRingHom_comp_eq_comp_of_comp_one_of_forall_torsion_mul7 below · depth 12 - Strict points reduce to reduceFst and reduceSnd
ModularCurve.DRModelPackageLevel.compat_reduceFst_reduceSnd_of_sp_eq_spPlace1,848 below · depth 13 - Points dictionary for the relative Pic⁰ of the level-N₀p model
ModularCurve.DRModelPackageLevel.exists_representsRelSubPic_abelJacobi_pts_of_representsRelSubPic388 below · depth 13 - 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 - Extension to an A-point of relative Pic⁰ versus good classes
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_iff_isGoodClass3,053 below · depth 13 - Inertia displacements σ x-x extend over the place
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_smul_sub2,607 below · depth 13 - Hecke algebra acts by homomorphic endomorphisms of D
ModularCurve.DRModelPackageLevel.forall_heckeAlg_exists_hom_mul_and_pts_smul_eq_comp2,300 below · depth 13 - Extendability over a valuation ring is closed under inversion
ModularCurve.JZeroNeronObjectAtP.ExtendsToPlace.inv0 below · depth 13 - Extendable points are closed under the relative group law
ModularCurve.JZeroNeronObjectAtP.ExtendsToPlace.mul0 below · depth 13 - Unit point of a relative group law extends to a place
ModularCurve.JZeroNeronObjectAtP.ExtendsToPlace.one0 below · depth 13 - Endomorphisms act on the special-fibre torus by a character matrix
ModularCurve.JZeroNeronObjectAtP.exists_mapDomain_comp_torusFibre_eq_torusFibre_comp_fibreRestrictAlong22 below · depth 13 - Base-changed endomorphisms preserve the toric lift on ℚ̄-points
ModularCurve.JZeroNeronObjectAtP.exists_muPt_comp_toricLift_eq_comp_fibreRestrictAlong63 below · depth 13 - Toricity of p-new finite points up to a bounded multiple
ModularCurve.JZeroNeronObjectAtP.exists_nsmul_mem_toricPts_of_mem_finPts1,736 below · depth 13 - Valuative criterion: extending a ℚ̄-point over a place
ModularCurve.JZeroNeronObjectAtP.exists_schemeHomOver_barPt_comp_eq_of_isProper0 below · depth 13 - Toric lifts μ_m^t of the special-fibre torus over a place
ModularCurve.JZeroNeronObjectAtP.exists_toricLift_of_torusFibre43 below · depth 13 - Multiplication by m is quasi-finite, quasi-compact and flat
ModularCurve.JZeroNeronObjectAtP.locallyQuasiFinite_quasiCompact_flat_schemeNsmul_baseChange12 below · depth 13 - Degeneracy morphisms kill the ℚ̄-points of the toric lift
ModularCurve.JZeroNeronObjectAtP.muPt_toricLift_degeneracyHom_eq_one303 below · depth 13 - Hecke stability of the extendable m-torsion subgroup
ModularCurve.JZeroNeronObjectAtP.smul_mem_finPts0 below · depth 13 - Prime-to-p inertia differences lie in the toric part
ModularCurve.JZeroNeronObjectAtP.smul_sub_self_mem_toricPts_of_isGluedSpecialization2,620 below · depth 13 - Toric m-torsion subgroup as closure of toric points
ModularCurve.JZeroNeronObjectAtP.toricPts_of_pos0 below · depth 13 - Hecke operator T_ℓ, ℓ≠ p, on relative Pic⁰
ModularCurve.DRModelPackageLevel.exists_hom_mul_and_pts_heckeOperatorBar_eq_comp_of_ne1,593 below · depth 14 - Uₚ on J₀(N₀p) induced by an endomorphism of D
ModularCurve.DRModelPackageLevel.exists_hom_mul_and_pts_heckeOperatorBar_self_eq_comp1,914 below · depth 14 - Closure under addition of points extending to a place
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_add0 below · depth 14 - Inertia displacement at a non-crossing point extends to A
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_mk_smul_single_sub_single_of_not_mem_range_comp_inter1,146 below · depth 14 - Negation preserves extendability of Picard points to a place
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_neg0 below · depth 14 - Good classes extend to A-points of relative Pic⁰
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_of_isGoodClass1,152 below · depth 14 - Extension over A implies good class for P
ModularCurve.DRModelPackageLevel.isGoodClass_of_extendsToPlace_pts3,008 below · depth 14 - Crossing special point: non-strict place, supersingular first reduction
ModularCurve.DRModelPackageLevel.not_isStrict_and_reduceFst_mem_of_range_subset_range_comp_inter1,910 below · depth 14 - Strict places reduce to reduceFst, reduceSnd on the Deligne–Rapoport model
ModularCurve.DRModelPackageLevel.placeOfPoint_eq_reduce_of_isModel_of_orderLawFixed1,896 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 - Inertia fixes the reduction of the section attached to a place
ModularCurve.DRModelPackageLevel.residue_comp_section_smul_eq_of_mem_inertia1 below · depth 14 - Ribet's matrix for the two degeneracy maps mod p
ModularCurve.DRModelPackageLevel.symm_schemeHomOverComp_degeneracyHom_eq_add_frobeniusPushforwardModL_of_dictionary928 below · depth 14 - Norm along φ_κ acts as Frobenius pushforward on Pic⁰
ModularCurve.JZeroNeronObjectAtP.LevelModel.symm_fibreMap_frobeniusNormHom_eq_frobeniusPushforwardModL_symm1,181 below · depth 14 - Unique extension of a geometric generic point over a valuation ring
ModularCurve.JZeroNeronObjectAtP.existsUnique_schemeHomOver_barPt_comp_eq_of_isProper0 below · depth 14 - Bialgebra comorphism of the toric lift through the m-torsion
ModularCurve.JZeroNeronObjectAtP.exists_bialgHom_muCoord_forall_torsionPoint_comp_fst_eq11 below · depth 14 - Degeneracy maps on Pic⁰ commute with base twists
ModularCurve.JZeroNeronObjectAtP.fibreMap_abq_schemeHomOverComp_eq_of_pullbackHom_pin858 below · depth 14 - Counting A-integral m-torsion in the joint degeneracy kernel
ModularCurve.JZeroNeronObjectAtP.finite_and_card_le_of_kernel_coset_representatives1,013 below · depth 14 - Finiteness of the fixed points of frobSp²
ModularCurve.JZeroNeronObjectAtP.finite_fixedPoints_frobSp_comp_self971 below · depth 14 - Galois action on toric μ_m-points: inertia and decomposition
ModularCurve.JZeroNeronObjectAtP.inertia_smul_eq_and_exists_decomposition_smul_eq_of_muLift42 below · depth 14 - Toric torsion as integral points reducing into the torus
ModularCurve.JZeroNeronObjectAtP.mem_toricPts_iff_exists_fibreMap_abqFibre_eq_one1,637 below · depth 14 - Degeneracy maps kill the toric lift over the residue field
ModularCurve.JZeroNeronObjectAtP.muBaseChange_toricLift_degeneracyHom_eq_one21 below · depth 14 - Lower bound m^t for the toric m-torsion subgroup
ModularCurve.JZeroNeronObjectAtP.pow_toricRank_le_card_toricPts1,632 below · depth 14 - Toric points lie in the finite part
ModularCurve.JZeroNeronObjectAtP.toricPts_le_finPts1 below · depth 14 - Reduction killed by both restriction maps when glued Pic⁰-pair vanishes
ModularCurve.DRModelPackageLevel.abq_reduction_eq_one_of_toPic0Pair_glueData_eq_zero_residueField1,404 below · depth 15 - Strict places of the first kind reduce into the first component
ModularCurve.DRModelPackageLevel.exists_placeOfPoint_eq_reduceFst_of_isStrictFst1 below · depth 15 - Strict second-kind places reduce onto the second DR component
ModularCurve.DRModelPackageLevel.exists_placeOfPoint_eq_reduceSnd_of_isStrictSnd1 below · depth 15 - Strict places reduce onto one Deligne–Rapoport component, off the other
ModularCurve.DRModelPackageLevel.exists_swap_forall_isStrict_range_subset_range_comp3 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 - Geometric generic restriction of a smooth-locus A-point of Pic⁰
ModularCurve.DRModelPackageLevel.pts_pic0Mk_eq_comp_of_poincare_pullbackAlong_iso_rigidify_sectionTwist_of_range_subset_smoothLocus35 below · depth 15 - Points through a crossing have supersingular first reduction
ModularCurve.DRModelPackageLevel.reduceFst_mem_ssPlaces_of_specialPoint_eq_crossing126 below · depth 15 - Finiteness of n-torsion in the special fibre of J₀(N₀)
ModularCurve.JZeroNeronObjectAtP.LevelData.finite_torsionSubset_special1,600 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 - The Néron object's `frobSp` is Frobenius push-forward mod p
ModularCurve.JZeroNeronObjectAtP.frobSp_eq_frobeniusPushforwardModL923 below · depth 15 - Finiteness and rank bound for m-torsion of the joint kernel
ModularCurve.JZeroNeronObjectAtP.isFinite_schemeKerStr_kerPairLaw_special_and_finrank_le5 below · depth 15 - Local quasi-finiteness of m-torsion in the degeneracy kernel
ModularCurve.JZeroNeronObjectAtP.locallyQuasiFinite_schemeKerStr_kerPairLaw1,000 below · depth 15 - Order of the toric m-torsion subgroup: m^{toricRank}
ModularCurve.JZeroNeronObjectAtP.natCard_toricPts1,633 below · depth 15 - Local points over a crossing factor through the finite-j chart
ModularCurve.DRModelPackageLevel.exists_eq_spec_map_comp_iotaFin_of_comp_base_eq1 below · depth 16 - Sections of the resolved X₀(N₀p) model with depth-prescribed components
ModularCurve.DRModelPackageLevel.exists_sections_multidegree_eq_depth_of_exists_schemeHomOver_of_branch186 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 - Restricting a rigidified section twist to the geometric generic fibre
ModularCurve.DRModelPackageLevel.nonempty_poincare_pullbackAlong_iso_pointTwist_of_iso_rigidify_sectionTwist29 below · depth 16 - Poincaré bundle at a degree-zero class as a point twist
ModularCurve.DRModelPackageLevel.nonempty_poincare_pullbackAlong_pts_pic0Mk_iso_pointTwist23 below · depth 16 - Positivity of ord_W(j-φ(j)) for a chart A-point
ModularCurve.DRModelPackageLevel.ord_jFun_sub_pos_of_eq_spec_map_comp_iotaFin1 below · depth 16 - Reduction of the chart value of j at a crossing
ModularCurve.DRModelPackageLevel.red_jChartFin_eq_evalAt_jGeomGen_nodeEquiv1 below · depth 16 - Special m-kernel of the J₀(N₀) datum has order m^{2g}
ModularCurve.JZeroNeronObjectAtP.LevelData.isFinite_schemeKerStr_special_and_finrank_eq_pow_two_mul_genusFF1,598 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 - Assembling the at-p Néron datum from a Néron object
ModularCurve.JZeroNeronObjectAtP.exists_jZeroNeronAtPDataOrdV22_toric_eq_fin_eq_of_forall_smul_sub_mem5,559 below · depth 16 - Poincaré pullback of an O-point as a twist of sections
ModularCurve.DRModelPackageLevel.nonempty_pullback_toDR_poincare_pullbackAlong_iso_foldr_sectionTwist180 below · depth 17 - Prime-to-p abelian quotient family for the level-N₀p Néron object
ModularCurve.JZeroNeronObjectAtP.exists_abq_family_of_coprime2,209 below · depth 17 - Assembly of the at-p Néron datum from a Néron object
ModularCurve.JZeroNeronObjectAtP.exists_jZeroNeronAtPDataOrdV22_of_children2,106 below · depth 17 - Non-toric 𝔪-torsion at p forces lower-level torsion
ModularCurve.JZeroNeronObjectAtP.hasLowerLevelTorsion_of_mem_finPts_of_not_mem_toricPts2,138 below · depth 17 - Non-toric 𝔪-torsion at p descends to level N₀
ModularCurve.JZeroNeronObjectAtP.heckeTorsion_ne_bot_of_mem_finPts_of_not_mem_toricPts2,161 below · depth 17 - Cardinality of the A-extendable m-torsion: m^{t+4g₀}
ModularCurve.JZeroNeronObjectAtP.natCard_finPts1,619 below · depth 17 - Frobenius acts as p Tₚ on toric torsion
ModularCurve.JZeroNeronObjectAtP.smul_eq_hecke_of_isFrobeniusAt_of_mem_toricPts_of_forall_smul_sub_mem_toricPts5,239 below · depth 17 - Frobenius squared acts by p² on prime-to-p toric torsion
ModularCurve.JZeroNeronObjectAtP.smul_smul_eq_of_isFrobeniusAt_of_mem_toricPts_of_forall_smul_sub_mem_toricPts3,616 below · depth 17 - Prime-to-p toric points lie in the monodromy toric part
ModularCurve.JZeroNeronObjectAtP.toricPts_le_toricMonodromyPart_of_forall_smul_sub_mem_toricPts1,702 below · depth 17 - Kernel of an abelian-quotient family equals the toric points
ModularCurve.JZeroNeronObjectAtP.abq_eq_zero_iff_mem_toricPts_of_forall_reductionModL_eq989 below · depth 18 - Hecke equivariance of an abelian-quotient family at p
ModularCurve.JZeroNeronObjectAtP.abq_heckeGen_smul_of_forall_reductionModL_eq1,225 below · depth 18 - Decomposition group equivariance of the abelian quotient family
ModularCurve.JZeroNeronObjectAtP.abq_smul_of_mem_decompositionSubgroup_of_forall_reductionModL_eq980 below · depth 18 - A prime-to-p abelian-quotient family on the Néron object
ModularCurve.JZeroNeronObjectAtP.exists_abq_family_forall_reductionModL_eq1,823 below · depth 18 - From Néron object and extension to a v2.2 at-p datum
ModularCurve.JZeroNeronObjectAtP.exists_jZeroNeronAtPDataOrdV22_of_children_of_neronExtension2,057 below · depth 18 - Divisibility of the toric point subgroups
ModularCurve.JZeroNeronObjectAtP.exists_mem_toricPts_mul_nsmul_eq0 below · depth 18 - Lower-level 𝔪-torsion from a non-zero abelian-quotient coordinate
ModularCurve.JZeroNeronObjectAtP.hasLowerLevelTorsion_of_ptsSp_symm_fibreMap_abqFibre_ne_zero1,897 below · depth 18 - Transport of 𝔪-torsion from level N₀p to level N₀
ModularCurve.JZeroNeronObjectAtP.heckeTorsion_ne_bot_of_ptsSp_symm_fibreMap_abqFibre_ne_zero1,920 below · depth 18 - Order of the special m-kernel: m^{t+4g₀}
ModularCurve.JZeroNeronObjectAtP.isFinite_schemeKerStr_special_and_finrank_eq1,611 below · depth 18 - Finite-part m-torsion counted by A-sections of the m-kernel
ModularCurve.JZeroNeronObjectAtP.natCard_finPts_eq_natCard_sections_schemeKer1 below · depth 18 - Inertia-invariant n-torsion bounded by finite part times component group
ModularCurve.JZeroNeronObjectAtP.natCard_jZeroTorsion_inf_inertiaInvariants_le1,627 below · depth 18 - Inertia displacement count for ℓ^k-torsion of J₀(N₀p)
ModularCurve.JZeroNeronObjectAtP.natCard_jZeroTorsion_le_mul_of_prime_pow6 below · depth 18 - Newform eigenplane not inside the finite part of Tₚ J₀(N₀p)
ModularCurve.JZeroNeronObjectAtP.not_eigenPlane_le_span_tateModule_finPts_of_isNewform_of_inertia_smul_sub_mem_finPts2,099 below · depth 18 - Non-toric finite p-points have non-zero abelian-quotient coordinates
ModularCurve.JZeroNeronObjectAtP.ptsSp_symm_fibreMap_abqFibre_ne_zero_of_mem_finPts_of_not_mem_toricPts1,741 below · depth 18 - Range of the abelian-quotient maps is the m-torsion
ModularCurve.JZeroNeronObjectAtP.range_abq_eq_torsionBy_of_forall_reductionModL_eq1,761 below · depth 18 - Kernel of [m] on the Néron object over a place A
ModularCurve.JZeroNeronObjectAtP.schemeKerStr_baseChange_props1,616 below · depth 18 - Inertia fixes the prime-to-p toric points
ModularCurve.JZeroNeronObjectAtP.smul_eq_self_of_mem_inertiaSubgroupIn_of_mem_toricPts3 below · depth 18 - Toric ab-torsion lies in toric a- plus b-torsion
ModularCurve.JZeroNeronObjectAtP.toricPts_mul_le_sup_of_coprime0 below · depth 18 - Lower-level torsion from a non-vanishing degeneracy push-forward
ModularCurve.hasLowerLevelTorsion_of_mem_heckeTorsion_of_degeneracyPushforwardPair_ne_zero212 below · depth 18 - Level-N₀ 𝔪-torsion from a p-old point when Uₚnotin𝔪
ModularCurve.heckeTorsion_ne_bot_of_mem_heckeTorsion_of_degeneracyPushforwardPair_ne_zero_of_not_mem252 below · depth 18 - Frobenius and Uₚ on the toric part of J₀(N₀p)[pⁿ]
ModularCurve.jZeroNeronObjectAtP_smul_mem_toricPts_and_heckeGen_smul_eq_of_isFrobeniusAt_of_bridge1,998 below · depth 18 - Reduction mod p intertwines Hecke action on the special fibre
ModularCurve.JZeroNeronObjectAtP.LevelData.reductionModL_smul_eq_ptsSp_symm_schemeHomOverComp742 below · depth 19 - Degeneracy morphisms intertwine Hecke endomorphisms over the base
ModularCurve.JZeroNeronObjectAtP.comp_degeneracyHom_eq_degeneracyHom_comp5 below · depth 19 - The abelian-quotient class map on finite-part m-torsion
ModularCurve.JZeroNeronObjectAtP.exists_addMonoidHom_finPts_eq_ptsSp_symm_fibreMap_abqFibre2 below · depth 19 - Endomorphisms act on toric lifts through M₀ mod m
ModularCurve.JZeroNeronObjectAtP.exists_comp_toricLift_fibreRestrictAlong_eq_toricLift_comp_mapDomainAlgHom40 below · depth 19 - Semilinear twist of the toric part of the special fibre
ModularCurve.JZeroNeronObjectAtP.exists_mapRingHom_comp_torusFibre_eq_mapDomain_comp_torusFibre_comp_baseTwist22 below · depth 19 - Prime-to-p division modulo points extending to the place
ModularCurve.JZeroNeronObjectAtP.exists_mem_inertiaInvariants_nsmul_eq_zero_sub_extendsToPlace21 below · depth 19 - Divisibility of A-points of the Néron identity component
ModularCurve.JZeroNeronObjectAtP.exists_nsmul_eq22 below · depth 19 - Frobenius action on toric points via a reduced Frobenius matrix
ModularCurve.JZeroNeronObjectAtP.exists_smul_toricPoint_eq_toricPoint_galoisValues_comp_mapDomainAlgHom40 below · depth 19 - Extendable prime-to-p torsion on J₀(N₀p) is inertia-invariant
ModularCurve.JZeroNeronObjectAtP.finPts_le_inertiaInvariantTorsion5 below · depth 19 - Counting extendable m-torsion points with trivial abelian-quotient reduction
ModularCurve.JZeroNeronObjectAtP.finite_and_natCard_le_pow_toricRank_of_ptsSp_symm_fibreMap_abqFibre_eq_zero1,016 below · depth 19 - Frobenius and Uₚ torus matrices are mutually inverse
ModularCurve.JZeroNeronObjectAtP.frobMatrix_comp_torusMatrix_eq_id_of_forall_prime_pow_smul_toricPoint45 below · depth 19 - Order of the special m-kernel: m^t times a square
ModularCurve.JZeroNeronObjectAtP.isFinite_schemeKerStr_special_and_finrank_eq_mul_sq13 below · depth 19 - Toric 𝔪-torsion bound at p∈𝔪
ModularCurve.JZeroNeronObjectAtP.natCard_toricPts_inf_heckeTorsion_le1,205 below · depth 19 - Uₚ on the two special-fibre coordinates at p
ModularCurve.JZeroNeronObjectAtP.ptsSp_symm_fibreMap_abqFibre_comp_eq_of_degeneracyHom_heckeGen_self1,015 below · depth 19 - Frobenius commutes with the transported Hecke operator on the reduction
ModularCurve.JZeroNeronObjectAtP.ptsSp_symm_schemeHomOverComp_frobSp960 below · depth 19 - Rigidity: morphisms out of G are determined on ℚ̄-points
ModularCurve.JZeroNeronObjectAtP.schemeHomOver_ext_of_forall_pts_comp_eq5 below · depth 19 - Toric points: a character group mapping isomorphically onto T̃[m]
ModularCurve.JZeroNeronObjectAtP.toricPoint_convMul_and_injective_and_mem_toricPts_iff_and_natCard0 below · depth 19 - Saturation of the toric torsion tower of J₀(N₀p)
ModularCurve.JZeroNeronObjectAtP.toricPts_eq_inf1,634 below · depth 19 - Frobenius and Uₚ on prime-to-p toric torsion
ModularCurve.jZeroNeronObjectAtP_smul_mem_toricPts_and_heckeGen_smul_eq_and_smul_heckeGen_eq_of_isFrobeniusAt_of_ne1,993 below · depth 19 - fppf-local sections of the m-torsion comparison map
ModularCurve.JZeroNeronObjectAtP.exists_fppfCover_section_schemeKer_of_abqFibre5 below · depth 20 - Split torus open in the joint degeneracy kernel
ModularCurve.JZeroNeronObjectAtP.exists_isOpenImmersion_torus_kerPair_degeneracyHom974 below · depth 20 - Shear isomorphism for m-torsion over the abelian-quotient kernel pair
ModularCurve.JZeroNeronObjectAtP.exists_iso_pullback_schemeKer_torus_of_abqFibre0 below · depth 20 - Toric part as joint kernel of the abelian-quotient pair
ModularCurve.JZeroNeronObjectAtP.exists_iso_torus_kerPair_abqFibre2 below · depth 20 - Divisibility by m coprime to p on A-points
ModularCurve.JZeroNeronObjectAtP.exists_nsmul_eq_of_coprime17 below · depth 20 - Toric points lift to A-sections with torus special point
ModularCurve.JZeroNeronObjectAtP.exists_section_and_torusPt_of_mem_toricPts1 below · depth 20 - Preconnectedness of the Néron object base-changed to A
ModularCurve.JZeroNeronObjectAtP.preconnectedSpace_pullback_g_sigmaA7 below · depth 21 - Flatness and local quasi-finiteness of [m] after base change
ModularCurve.JZeroNeronObjectAtP.locallyQuasiFinite_quasiCompact_flat_schemeNsmul_baseChange_shStr12 below · depth 25 - Valuative extension of a geometric point to an A-section
ModularCurve.XHDRModelAtP.exists_schemeHomOver_barPt_eq_and_fibre_lift_and_comp_base_closedPoint_eq1 below · depth 25 - 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 - Annulus at a node from an oriented étale crossing chart
ModularCurve.XHDRModelAtP.exists_annulus_mem_dom_iff_and_param_eq_read_chart_and_modulus_eq_pow_of_chart_of_residue_surjective1,128 below · depth 26 - Unit germ at a crossing from unit values on the tube
ModularCurve.XHDRModelAtP.exists_isUnit_and_read_eq_and_ord_placeOn_eq_zero_of_forall_ord_eq_zero_of_forall_isUnit_evalAt_of_chart_of_residue_surjective1,123 below · depth 26 - Reading an oriented crossing chart in the geometric function field
ModularCurve.XHDRModelAtP.exists_read_chart_mul_eq_and_isUnit_germ_and_smul_eq_and_evalAt_eq_of_chart1,020 below · depth 26 - Crossing points of the special fibre: finite and point-determined
ModularCurve.XHDRModelAtP.finite_and_injective_and_forall_exists_schemeHomOver_crossing_baseChange62 below · depth 26 - Integrality and residues of a section at both special-fibre components
ModularCurve.XHDRModelAtP.read_mem_integers_and_residue_eq_restrict_comp_of_mem916 below · depth 26 - Crossing coordinates of an A-section through the node
ModularCurve.XHDRModelAtP.exists_comp_eq_specMap_and_mem_maximalIdeal_and_mul_eq_of_section_of_chart0 below · depth 27
… and 41 more statements (search for the module name to find them).