Definitions/Def_AlgebraicGeometry_RelSubPicBaseChange.lean
Base change for the rigidified relative Picard presheaf
Fix a commutative ring R, a morphism c\colon C\to\operatorname{Spec} R together with a section \varepsilon of it (an element of SchemeHomOver (𝟙 (Spec R)) c, i.e. a morphism \operatorname{Spec} R\to C whose composite with c is the identity), and an R-algebra R'; write c' = baseChange R c R' for \operatorname{pr}_2\colon C\times_{\operatorname{Spec} R}\operatorname{Spec} R'\to\operatorname{Spec} R' and \varepsilon' = sectionBaseChange R' ε for the induced section. For an R'-scheme t'\colon T\to\operatorname{Spec} R', κ is the canonical isomorphism (C\times_R R')\times_{R'} T\cong C\times_R T (the latter formed along t' followed by \operatorname{Spec}(R'\!\leftarrow\!R)), obtained from Mathlib's iterated-pullback isomorphism; the accompanying lemmas identify its composites with the two projections, with the rigidifying section rigSection and with the transition maps baseChangeSnd along a morphism of R'-schemes (the latter rephrased over R by overR). Transport of modules along κ gives mutually inverse operations toR and ofR between rigidified line bundles for (c',\varepsilon') over T/R' and for (c,\varepsilon) over T/R — a rigidified line bundle being a module on the relevant pullback, locally isomorphic to the unit sheaf, together with a non-empty set of isomorphisms of its restriction along the rigidifying section with the unit sheaf — with specified isomorphisms of underlying modules expressing the two round trips, compatibility with pullback and with the unit bundle. restrict transports a SubPicCondition for (c,\varepsilon) (a family of predicates on rigidified line bundles closed under the unit, under isomorphism of underlying modules and under pullback) to one for (c',\varepsilon') by testing toR; subPicCondition_ext is the extensionality principle for such conditions. The fibre comparison maps fibreMap, fibreMap' over a point \operatorname{Spec} k\to T yield fibrewiseAlgEquivZero_toR_iff and hence restrict_algEquivZeroCut: the restriction of the cut algEquivZeroCut is the corresponding cut for (c',\varepsilon'). On classes (rigidified bundles modulo isomorphism of underlying modules) classesEquiv is the induced bijection, natural in T and compatible with the defining predicates; this produces relSubPicPresheafRestrictIso, an isomorphism of presheaves on (\mathbf{Over}\ \operatorname{Spec} R')^{\mathrm{op}} between relSubPicPresheaf for (c',\varepsilon',\text{restrict }P) and the composite of (\mathbf{Over}\ \operatorname{Spec}(R\to R'))^{\mathrm{op}} with relSubPicPresheaf for (c,\varepsilon,P), its special case for the algebraic-equivalence cut, and representableByRestrict: from RepresentsRelSubPic data for that cut over R' with designation D' one obtains that D''s structure morphism represents the restriction to R'-schemes of the presheaf over R. Two simp lemmas record the underlying class of the components of the comparison isomorphism.
Relation to Mathlib
Mathlib has no relative Picard functor or notion of rigidified line bundle; those are the project's own, built on Mathlib's Scheme.Modules.pullback, SheafOfModules.unit, Subfunctor and Functor.RepresentableBy. The comparison isomorphism κ is Mathlib's iterated-pullback isomorphism pullbackLeftPullbackSndIso specialised to this situation.
Where it is used
This is the functor-level compatibility of the rigidified relative Picard presheaf, and of its algebraic-equivalence-to-zero cut, with extension of the base ring; it is what allows a representing object constructed over R' to be recognised as representing the restriction of the functor defined over R, as needed when descending relative Jacobians of curves along a base extension in the treatment of Jacobians of modular curves.
References
- S. Bosch, W. Lütkebohmert and M. Raynaud, Néron Models, Ergebnisse der Mathematik und ihrer Grenzgebiete 21, Springer, 1990, §8.1
- S. L. Kleiman, The Picard scheme, in: Fundamental Algebraic Geometry: Grothendieck's FGA Explained, Mathematical Surveys and Monographs 123, American Mathematical Society, 2005
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 300 lines
- 38 declarations
- used in the statements of 433 theorems and imported by 458 proofs
- imports 7 definition modules
Source file: Definitions/Def_AlgebraicGeometry_RelSubPicBaseChange.lean
Imports
Declarations
- def
AlgebraicGeometry.RelPicard.BaseChange.κ - theorem
AlgebraicGeometry.RelPicard.BaseChange.κ_hom_snd - theorem
AlgebraicGeometry.RelPicard.BaseChange.κ_hom_fst - theorem
AlgebraicGeometry.RelPicard.BaseChange.rigSection_fst' - theorem
AlgebraicGeometry.RelPicard.BaseChange.rigSection_snd' - theorem
AlgebraicGeometry.RelPicard.BaseChange.baseChangeSnd_fst' - theorem
AlgebraicGeometry.RelPicard.BaseChange.baseChangeSnd_snd' - theorem
AlgebraicGeometry.RelPicard.BaseChange.rigSection_κ_hom - theorem
AlgebraicGeometry.RelPicard.BaseChange.rigSection_κ_inv - def
AlgebraicGeometry.RelPicard.BaseChange.overR - theorem
AlgebraicGeometry.RelPicard.BaseChange.baseChangeSnd_κ_hom - def
AlgebraicGeometry.RelPicard.BaseChange.toR - def
AlgebraicGeometry.RelPicard.BaseChange.ofR - def
AlgebraicGeometry.RelPicard.BaseChange.toR_ofR_iso - def
AlgebraicGeometry.RelPicard.BaseChange.ofR_toR_iso - theorem
AlgebraicGeometry.RelPicard.BaseChange.baseChangeSnd_κ_inv - def
AlgebraicGeometry.RelPicard.BaseChange.toR_pullbackAlong_iso - def
AlgebraicGeometry.RelPicard.BaseChange.toR_unit_iso - def
AlgebraicGeometry.RelPicard.BaseChange.restrict - theorem
AlgebraicGeometry.RelPicard.BaseChange.restrict_P - theorem
AlgebraicGeometry.RelPicard.BaseChange.subPicCondition_ext - def
AlgebraicGeometry.RelPicard.BaseChange.fibreMap - def
AlgebraicGeometry.RelPicard.BaseChange.fibreMap' - theorem
AlgebraicGeometry.RelPicard.BaseChange.fibreMap_fibreAt - theorem
AlgebraicGeometry.RelPicard.BaseChange.fibreMap'_fibreAt - theorem
AlgebraicGeometry.RelPicard.BaseChange.fibreMap_fst - theorem
AlgebraicGeometry.RelPicard.BaseChange.fibreMap'_fst - theorem
AlgebraicGeometry.RelPicard.BaseChange.fibrewiseAlgEquivZero_toR_iff - theorem
AlgebraicGeometry.RelPicard.BaseChange.restrict_algEquivZeroCut - def
AlgebraicGeometry.RelPicard.BaseChange.classesEquiv - theorem
AlgebraicGeometry.RelPicard.BaseChange.onClasses_classesEquiv - theorem
AlgebraicGeometry.RelPicard.BaseChange.classesEquiv_classesMap - def
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso - def
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafAlgEquivZeroCutIso - def
AlgebraicGeometry.RelPicard.BaseChange.representableByRestrict - theorem
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheaf_eqToHom_app_coe - theorem
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe - theorem
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
Source
import Mathlib import Definitions.Def_AlgebraicGeometry_NeronModelPropertyBundleCarrier import Definitions.Def_AlgebraicGeometry_RelativePicardFunctor import Definitions.Def_AlgebraicGeometry_RepresentsRelSubPic import Definitions.Def_AlgebraicGeometry_RelPicardAlgEquivZeroCut import Definitions.Def_AlgebraicGeometry_RelSubPicPresheaf import Definitions.Def_JacJ1Iface import Definitions.Def_AlgebraicGeometry_SmoothProperCurveBase set_option autoImplicit false universe u open CategoryTheory CategoryTheory.Limits AlgebraicGeometry AlgebraicGeometry.RelPicard AlgebraicGeometry.SmoothProperCurve NeronModelInfra GoodReductionJacobian Opposite namespace AlgebraicGeometry.RelPicard.BaseChange variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) (ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) (R' : Type u) [CommRing R'] [Algebra R R'] noncomputable def κ {T : Scheme.{u}} (t' : T ⟶ Spec (CommRingCat.of R')) : pullback (baseChange R c R') t' ≅ pullback c (t' ≫ specMap R R') := pullbackLeftPullbackSndIso c (specMap R R') t' theorem κ_hom_snd {T : Scheme.{u}} (t' : T ⟶ Spec (CommRingCat.of R')) : (κ c R' t').hom ≫ pullback.snd c (t' ≫ specMap R R') = pullback.snd (baseChange R c R') t' := pullbackLeftPullbackSndIso_hom_snd _ _ _ theorem κ_hom_fst {T : Scheme.{u}} (t' : T ⟶ Spec (CommRingCat.of R')) : (κ c R' t').hom ≫ pullback.fst c (t' ≫ specMap R R') = pullback.fst (baseChange R c R') t' ≫ pullback.fst c (specMap R R') := pullbackLeftPullbackSndIso_hom_fst _ _ _ omit [Algebra R R'] in theorem rigSection_fst' {T : Scheme.{u}} (cc : C ⟶ Spec (CommRingCat.of R')) (t : T ⟶ Spec (CommRingCat.of R')) (e : SchemeHomOver (𝟙 (Spec (CommRingCat.of R'))) cc) : rigSection cc t e ≫ pullback.fst cc t = t ≫ e.1 := pullback.lift_fst _ _ _ omit [Algebra R R'] in theorem rigSection_snd' {T : Scheme.{u}} (cc : C ⟶ Spec (CommRingCat.of R')) (t : T ⟶ Spec (CommRingCat.of R')) (e : SchemeHomOver (𝟙 (Spec (CommRingCat.of R'))) cc) : rigSection cc t e ≫ pullback.snd cc t = 𝟙 T := pullback.lift_snd _ _ _ omit [Algebra R R'] in theorem baseChangeSnd_fst' {T T' : Scheme.{u}} (cc : C ⟶ Spec (CommRingCat.of R')) {t : T ⟶ Spec (CommRingCat.of R')} {t' : T' ⟶ Spec (CommRingCat.of R')} (ψ : SchemeHomOver t' t) : baseChangeSnd cc ψ ≫ pullback.fst cc t = pullback.fst cc t' := (pullback.lift_fst _ _ _).trans (Category.comp_id _) omit [Algebra R R'] in theorem baseChangeSnd_snd' {T T' : Scheme.{u}} (cc : C ⟶ Spec (CommRingCat.of R')) {t : T ⟶ Spec (CommRingCat.of R')} {t' : T' ⟶ Spec (CommRingCat.of R')} (ψ : SchemeHomOver t' t) : baseChangeSnd cc ψ ≫ pullback.snd cc t = pullback.snd cc t' ≫ ψ.1 := pullback.lift_snd _ _ _ theorem rigSection_κ_hom {T : Scheme.{u}} (t' : T ⟶ Spec (CommRingCat.of R')) : rigSection (baseChange R c R') t' (sectionBaseChange R' ε) ≫ (κ c R' t').hom = rigSection c (t' ≫ specMap R R') ε := by apply pullback.hom_ext · rw [Category.assoc, κ_hom_fst, ← Category.assoc, rigSection_fst', rigSection_fst', Category.assoc, sectionBaseChange_coe_fst, Category.assoc] · rw [Category.assoc, κ_hom_snd, rigSection_snd', rigSection_snd'] theorem rigSection_κ_inv {T : Scheme.{u}} (t' : T ⟶ Spec (CommRingCat.of R')) : rigSection c (t' ≫ specMap R R') ε ≫ (κ c R' t').inv = rigSection (baseChange R c R') t' (sectionBaseChange R' ε) := by rw [← rigSection_κ_hom c ε R' t', Category.assoc, Iso.hom_inv_id, Category.comp_id] def overR {T T'' : Scheme.{u}} {t' : T ⟶ Spec (CommRingCat.of R')} {t'' : T'' ⟶ Spec (CommRingCat.of R')} (ψ : SchemeHomOver t'' t') : SchemeHomOver (t'' ≫ specMap R R') (t' ≫ specMap R R') := ⟨ψ.1, by rw [← Category.assoc, ψ.2]⟩ theorem baseChangeSnd_κ_hom {T T'' : Scheme.{u}} {t' : T ⟶ Spec (CommRingCat.of R')} {t'' : T'' ⟶ Spec (CommRingCat.of R')} (ψ : SchemeHomOver t'' t') : baseChangeSnd (baseChange R c R') ψ ≫ (κ c R' t').hom = (κ c R' t'').hom ≫ baseChangeSnd c (overR R' ψ) := by apply pullback.hom_ext · rw [Category.assoc, κ_hom_fst, ← Category.assoc, baseChangeSnd_fst', Category.assoc, baseChangeSnd_fst', κ_hom_fst] · rw [Category.assoc, κ_hom_snd, baseChangeSnd_snd', Category.assoc, baseChangeSnd_snd', ← Category.assoc, κ_hom_snd] rfl noncomputable def toR {T : Scheme.{u}} {t' : T ⟶ Spec (CommRingCat.of R')} (M : RigidifiedLineBundle (baseChange R c R') (sectionBaseChange R' ε) t') : RigidifiedLineBundle c ε (t' ≫ specMap R R') where L := (Scheme.Modules.pullback (κ c R' t').inv).obj M.L isInvertible := M.isInvertible.pullback _ rigidified := ⟨(Scheme.Modules.pullbackComp (rigSection c (t' ≫ specMap R R') ε) (κ c R' t').inv).app M.L ≪≫ (Scheme.Modules.pullbackCongr (rigSection_κ_inv c ε R' t')).app M.L ≪≫ M.rigidified.some⟩ noncomputable def ofR {T : Scheme.{u}} {t' : T ⟶ Spec (CommRingCat.of R')} (M : RigidifiedLineBundle c ε (t' ≫ specMap R R')) : RigidifiedLineBundle (baseChange R c R') (sectionBaseChange R' ε) t' where L := (Scheme.Modules.pullback (κ c R' t').hom).obj M.L isInvertible := M.isInvertible.pullback _ rigidified := ⟨(Scheme.Modules.pullbackComp (rigSection (baseChange R c R') t' (sectionBaseChange R' ε)) (κ c R' t').hom).app M.L ≪≫ (Scheme.Modules.pullbackCongr (rigSection_κ_hom c ε R' t')).app M.L ≪≫ M.rigidified.some⟩ noncomputable def toR_ofR_iso {T : Scheme.{u}} {t' : T ⟶ Spec (CommRingCat.of R')} (M : RigidifiedLineBundle c ε (t' ≫ specMap R R')) : (toR c ε R' (ofR c ε R' M)).L ≅ M.L := (Scheme.Modules.pullbackComp (κ c R' t').inv (κ c R' t').hom).app M.L ≪≫ (Scheme.Modules.pullbackCongr ((κ c R' t').inv_hom_id)).app M.L ≪≫ (Scheme.Modules.pullbackId _).app M.L noncomputable def ofR_toR_iso {T : Scheme.{u}} {t' : T ⟶ Spec (CommRingCat.of R')} (M : RigidifiedLineBundle (baseChange R c R') (sectionBaseChange R' ε) t') : (ofR c ε R' (toR c ε R' M)).L ≅ M.L := (Scheme.Modules.pullbackComp (κ c R' t').hom (κ c R' t').inv).app M.L ≪≫ (Scheme.Modules.pullbackCongr ((κ c R' t').hom_inv_id)).app M.L ≪≫ (Scheme.Modules.pullbackId _).app M.L theorem baseChangeSnd_κ_inv {T T'' : Scheme.{u}} {t' : T ⟶ Spec (CommRingCat.of R')} {t'' : T'' ⟶ Spec (CommRingCat.of R')} (ψ : SchemeHomOver t'' t') : baseChangeSnd c (overR R' ψ) ≫ (κ c R' t').inv = (κ c R' t'').inv ≫ baseChangeSnd (baseChange R c R') ψ := by rw [Iso.eq_inv_comp, ← Category.assoc, ← baseChangeSnd_κ_hom, Category.assoc, Iso.hom_inv_id, Category.comp_id] noncomputable def toR_pullbackAlong_iso {T T'' : Scheme.{u}} {t' : T ⟶ Spec (CommRingCat.of R')} {t'' : T'' ⟶ Spec (CommRingCat.of R')} (ψ : SchemeHomOver t'' t') (M : RigidifiedLineBundle (baseChange R c R') (sectionBaseChange R' ε) t') : ((toR c ε R' M).pullbackAlong (overR R' ψ)).L ≅ (toR c ε R' (M.pullbackAlong ψ)).L := (Scheme.Modules.pullbackComp (baseChangeSnd c (overR R' ψ)) (κ c R' t').inv).app M.L ≪≫ (Scheme.Modules.pullbackCongr (baseChangeSnd_κ_inv c R' ψ)).app M.L ≪≫ ((Scheme.Modules.pullbackComp (κ c R' t'').inv (baseChangeSnd (baseChange R c R') ψ)).app M.L).symm noncomputable def toR_unit_iso {T : Scheme.{u}} (t' : T ⟶ Spec (CommRingCat.of R')) : (toR c ε R' (RigidifiedLineBundle.unit t')).L ≅ (RigidifiedLineBundle.unit (c := c) (ε := ε) (t' ≫ specMap R R')).L := Scheme.Modules.pullbackUnitIso (κ c R' t').inv noncomputable def restrict (P : SubPicCondition c ε) : SubPicCondition (baseChange R c R') (sectionBaseChange R' ε) where P := fun t' M => P.P (t' ≫ specMap R R') (toR c ε R' M) unit_mem := fun t' => P.congr _ _ _ ⟨(toR_unit_iso c ε R' t').symm⟩ (P.unit_mem (t' ≫ specMap R R')) congr := fun t' _ _ h hM => P.congr _ _ _ ⟨(Scheme.Modules.pullback (κ c R' t').inv).mapIso h.some⟩ hM pullback_mem := fun _ _ ψ M hM => P.congr _ _ _ ⟨toR_pullbackAlong_iso c ε R' ψ M⟩ (P.pullback_mem _ _ (overR R' ψ) _ hM) @[simp] theorem restrict_P (P : SubPicCondition c ε) {T : Scheme.{u}} (t' : T ⟶ Spec (CommRingCat.of R')) (M : RigidifiedLineBundle (baseChange R c R') (sectionBaseChange R' ε) t') : (restrict c ε R' P).P t' M ↔ P.P (t' ≫ specMap R R') (toR c ε R' M) := Iff.rfl omit [Algebra R R'] in theorem subPicCondition_ext {cc : C ⟶ Spec (CommRingCat.of R')} {e : SchemeHomOver (𝟙 (Spec (CommRingCat.of R'))) cc} {P Q : SubPicCondition cc e} (h : ∀ {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of R')) (M : RigidifiedLineBundle cc e t), P.P t M ↔ Q.P t M) : P = Q := by obtain ⟨P1, h1, h2, h3⟩ := P obtain ⟨Q1, g1, g2, g3⟩ := Q have hPQ : @P1 = @Q1 := by funext T t M exact propext (h t M) subst hPQ rfl section fibres variable {T : Scheme.{u}} (t' : T ⟶ Spec (CommRingCat.of R')) {k : Type u} [Field k] (σ : Spec (CommRingCat.of k) ⟶ T) noncomputable def fibreMap : pullback (pullback.snd (baseChange R c R') t') σ ⟶ pullback (pullback.snd c (t' ≫ specMap R R')) σ := pullback.map _ _ _ _ (κ c R' t').hom (𝟙 _) (𝟙 T) (by rw [Category.comp_id, κ_hom_snd]) (by rw [Category.comp_id, Category.id_comp]) noncomputable def fibreMap' : pullback (pullback.snd c (t' ≫ specMap R R')) σ ⟶ pullback (pullback.snd (baseChange R c R') t') σ := pullback.map _ _ _ _ (κ c R' t').inv (𝟙 _) (𝟙 T) (by rw [Category.comp_id, ← κ_hom_snd, Iso.inv_hom_id_assoc]) (by rw [Category.comp_id, Category.id_comp]) theorem fibreMap_fibreAt : fibreMap c R' t' σ ≫ fibreAt c (t' ≫ specMap R R') σ = fibreAt (baseChange R c R') t' σ := (pullback.lift_snd _ _ _).trans (Category.comp_id _) theorem fibreMap'_fibreAt : fibreMap' c R' t' σ ≫ fibreAt (baseChange R c R') t' σ = fibreAt c (t' ≫ specMap R R') σ := (pullback.lift_snd _ _ _).trans (Category.comp_id _) theorem fibreMap_fst : fibreMap c R' t' σ ≫ pullback.fst (pullback.snd c (t' ≫ specMap R R')) σ = pullback.fst (pullback.snd (baseChange R c R') t') σ ≫ (κ c R' t').hom := pullback.lift_fst _ _ _ theorem fibreMap'_fst : fibreMap' c R' t' σ ≫ pullback.fst (pullback.snd (baseChange R c R') t') σ = pullback.fst (pullback.snd c (t' ≫ specMap R R')) σ ≫ (κ c R' t').inv := pullback.lift_fst _ _ _ end fibres theorem fibrewiseAlgEquivZero_toR_iff {T : Scheme.{u}} {t' : T ⟶ Spec (CommRingCat.of R')} (M : RigidifiedLineBundle (baseChange R c R') (sectionBaseChange R' ε) t') : FibrewiseAlgEquivZero (toR c ε R' M) ↔ FibrewiseAlgEquivZero M := by constructor · intro h k _ _ σ have h1 := (h k σ).pullback (fibreMap c R' t' σ) (fibreMap_fibreAt c R' t' σ) refine h1.of_iso ?_ exact (Scheme.Modules.pullbackComp (fibreMap c R' t' σ) (pullback.fst (pullback.snd c (t' ≫ specMap R R')) σ)).app _ ≪≫ (Scheme.Modules.pullbackComp (fibreMap c R' t' σ ≫ pullback.fst (pullback.snd c (t' ≫ specMap R R')) σ) (κ c R' t').inv).app M.L ≪≫ (Scheme.Modules.pullbackCongr (by rw [fibreMap_fst, Category.assoc, Iso.hom_inv_id, Category.comp_id])).app M.L · intro h k _ _ σ have h1 := (h k σ).pullback (fibreMap' c R' t' σ) (fibreMap'_fibreAt c R' t' σ) refine h1.of_iso ?_ exact (Scheme.Modules.pullbackComp (fibreMap' c R' t' σ) (pullback.fst (pullback.snd (baseChange R c R') t') σ)).app M.L ≪≫ (Scheme.Modules.pullbackCongr (fibreMap'_fst c R' t' σ)).app M.L ≪≫ ((Scheme.Modules.pullbackComp (pullback.fst (pullback.snd c (t' ≫ specMap R R')) σ) (κ c R' t').inv).app M.L).symm theorem restrict_algEquivZeroCut : restrict c ε R' (algEquivZeroCut c ε) = algEquivZeroCut (baseChange R c R') (sectionBaseChange R' ε) := subPicCondition_ext R' (fun _ M => fibrewiseAlgEquivZero_toR_iff c ε R' M) noncomputable def classesEquiv {T : Scheme.{u}} (t' : T ⟶ Spec (CommRingCat.of R')) : RigidifiedLineBundle.Classes (baseChange R c R') (sectionBaseChange R' ε) t' ≃ RigidifiedLineBundle.Classes c ε (t' ≫ specMap R R') where toFun := Quotient.map (toR c ε R') (fun _ _ h => ⟨(Scheme.Modules.pullback (κ c R' t').inv).mapIso h.some⟩) invFun := Quotient.map (ofR c ε R') (fun _ _ h => ⟨(Scheme.Modules.pullback (κ c R' t').hom).mapIso h.some⟩) left_inv := fun x => by induction x using Quotient.ind exact Quotient.sound ⟨ofR_toR_iso c ε R' _⟩ right_inv := fun x => by induction x using Quotient.ind exact Quotient.sound ⟨toR_ofR_iso c ε R' _⟩ theorem onClasses_classesEquiv (P : SubPicCondition c ε) {T : Scheme.{u}} (t' : T ⟶ Spec (CommRingCat.of R')) (x : RigidifiedLineBundle.Classes (baseChange R c R') (sectionBaseChange R' ε) t') : P.onClasses (t' ≫ specMap R R') (classesEquiv c ε R' t' x) ↔ (restrict c ε R' P).onClasses t' x := by induction x using Quotient.ind exact Iff.rfl theorem classesEquiv_classesMap {T T'' : Scheme.{u}} {t' : T ⟶ Spec (CommRingCat.of R')} {t'' : T'' ⟶ Spec (CommRingCat.of R')} (ψ : SchemeHomOver t'' t') (x : RigidifiedLineBundle.Classes (baseChange R c R') (sectionBaseChange R' ε) t') : classesEquiv c ε R' t'' (RigidifiedLineBundle.classesMap ψ x) = RigidifiedLineBundle.classesMap (overR R' ψ) (classesEquiv c ε R' t' x) := by induction x using Quotient.ind exact Quotient.sound ⟨(toR_pullbackAlong_iso c ε R' ψ _).symm⟩ noncomputable def relSubPicPresheafRestrictIso (P : SubPicCondition c ε) : relSubPicPresheaf (baseChange R c R') (sectionBaseChange R' ε) (restrict c ε R' P) ≅ (Over.map (specMap R R')).op ⋙ relSubPicPresheaf c ε P := NatIso.ofComponents (fun X => Equiv.toIso { toFun := fun x => ⟨classesEquiv c ε R' X.unop.hom x.1, (onClasses_classesEquiv c ε R' P _ x.1).2 x.2⟩ invFun := fun y => ⟨(classesEquiv c ε R' X.unop.hom).symm y.1, by have h := (onClasses_classesEquiv c ε R' P X.unop.hom ((classesEquiv c ε R' X.unop.hom).symm y.1)).1 rw [Equiv.apply_symm_apply] at h exact h y.2⟩ left_inv := fun x => Subtype.ext ((classesEquiv c ε R' X.unop.hom).symm_apply_apply x.1) right_inv := fun y => Subtype.ext ((classesEquiv c ε R' X.unop.hom).apply_symm_apply y.1) }) (fun {X Y} φ => by apply TypeCat.homEquiv.injective funext x apply Subtype.ext exact classesEquiv_classesMap c ε R' ⟨φ.unop.left, Over.w φ.unop⟩ x.1) noncomputable def relSubPicPresheafAlgEquivZeroCutIso : relSubPicPresheaf (baseChange R c R') (sectionBaseChange R' ε) (algEquivZeroCut (baseChange R c R') (sectionBaseChange R' ε)) ≅ (Over.map (specMap R R')).op ⋙ relSubPicPresheaf c ε (algEquivZeroCut c ε) := eqToIso (by rw [← restrict_algEquivZeroCut]) ≪≫ relSubPicPresheafRestrictIso c ε R' (algEquivZeroCut c ε) noncomputable def representableByRestrict {D' : RelativePic0Designation R' (baseChange R c R')} (h' : RepresentsRelSubPic (baseChange R c R') (sectionBaseChange R' ε) (algEquivZeroCut (baseChange R c R') (sectionBaseChange R' ε)) D') : ((Over.map (specMap R R')).op ⋙ relSubPicPresheaf c ε (algEquivZeroCut c ε)).RepresentableBy (Over.mk D'.toBase) := h'.representableBy.ofIso (relSubPicPresheafAlgEquivZeroCutIso c ε R') omit [Algebra R R'] in theorem relSubPicPresheaf_eqToHom_app_coe {cc : C ⟶ Spec (CommRingCat.of R')} {e : SchemeHomOver (𝟙 (Spec (CommRingCat.of R'))) cc} {P₁ P₂ : SubPicCondition cc e} (h : P₁ = P₂) (X : (Over (Spec (CommRingCat.of R')))ᵒᵖ) (x : (relSubPicPresheaf cc e P₁).obj X) : ((eqToHom (congrArg (relSubPicPresheaf cc e) h)).app X x).1 = x.1 := by subst h rfl @[simp] theorem relSubPicPresheafRestrictIso_hom_app_coe (P : SubPicCondition c ε) (X : (Over (Spec (CommRingCat.of R')))ᵒᵖ) (x : (relSubPicPresheaf (baseChange R c R') (sectionBaseChange R' ε) (restrict c ε R' P)).obj X) : ((relSubPicPresheafRestrictIso c ε R' P).hom.app X x).1 = classesEquiv c ε R' X.unop.hom x.1 := rfl @[simp] theorem relSubPicPresheafRestrictIso_inv_app_coe (P : SubPicCondition c ε) (X : (Over (Spec (CommRingCat.of R')))ᵒᵖ) (y : ((Over.map (specMap R R')).op ⋙ relSubPicPresheaf c ε P).obj X) : ((relSubPicPresheafRestrictIso c ε R' P).inv.app X y).1 = (classesEquiv c ε R' X.unop.hom).symm y.1 := rfl end AlgebraicGeometry.RelPicard.BaseChange
Statements phrased using this module (433)
- Néron object for J_H(M) at p ∥ M with torus coordinates
ModularCurve.JHNeronObjectAtP.exists_levelData_representsRelSubPic_dictionary_of_xHDRModelAtP_torusCoords2,647 below · depth 11 - Toric-by-finite filtration of Tₚ J_H(M) at p ∥ M
ModularCurve.JHNeronObjectAtP.exists_toricFiniteFiltration_tateModule_jH_self70 below · depth 11 - Frobenius acts as Uₚ on toric ℓ^k-torsion
ModularCurve.JHNeronObjectAtP.genOpH_U_smul_eq_cyclotomicCharacter_toZModPow_smul_of_mem_toricPts123 below · depth 11 - Frobenius on node units: p-th power twisted by the crossing permutation
ModularCurve.JHNeronObjectAtP.ptsSp_symm_eq_nodeUnit_pow_comp_frobPerm_of_isFrobeniusAt100 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 - Degeneracy morphisms D → D₀ and Ribet's special-fibre formula
ModularCurve.XHDRModelAtP.exists_degeneracyHom_mul_pts_special1,698 below · depth 12 - Diamond operators induced by endomorphisms of the Pic⁰ scheme
ModularCurve.XHDRModelAtP.exists_hom_mul_and_pts_diamondHBar_eq_comp163 below · depth 12 - Hecke operators at ℓ≠ p on a relative Pic⁰ of X_H(M)
ModularCurve.XHDRModelAtP.exists_hom_mul_and_pts_heckeOperatorHAlong_eq_comp_of_ne719 below · depth 12 - Uₚ at p ∥ M as a group endomorphism of Pic⁰
ModularCurve.XHDRModelAtP.exists_hom_mul_and_pts_heckeOperatorHAlong_self_eq_comp719 below · depth 12 - Glued special-fibre dictionary for relative Pic⁰ at p ‖ M
ModularCurve.XHDRModelAtP.exists_ptsSp_gluedPic0_dictionary_specialFibre1,294 below · depth 12 - Special-fibre Pic⁰ dictionary for the level-Γ_N model
ModularCurve.XHDRModelAtP.exists_ptsSp_levelN_pic0_equiv_of_representsRelSubPic1,183 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 - Matching the generic and special Pic⁰ dictionaries by an A-section
ModularCurve.XHDRModelAtP.exists_schemeHomOver_pts_eq_and_ptsSp_symm_eq_mk_of_sameComponent30 below · depth 12 - Push-down and reduction agree on level-(M/p) dictionaries
ModularCurve.XHDRModelAtP.exists_schemeHomOver_pts_levelN_degPts_eq_and_ptsSp_levelN_symm_eq_mk166 below · depth 12 - Inertia differences σ x - x extend over the place
ModularCurve.XHDRModelAtP.extendsToPlace_pts_smul_sub_of_mem_inertiaSubgroupIn1,446 below · depth 12 - Properness and geometric connectedness of the generic fibre of Pic⁰
ModularCurve.XHDRModelAtP.isProper_and_geometricallyConnected_pullback_snd_rat_of_representsRelSubPic392 below · depth 12 - Degeneracy pull-backs match the point dictionaries
ModularCurve.XHDRModelAtP.pts_alphaPull_eq_pts_levelN_comp_degPull364 below · depth 12 - Special fibre of the degeneracy pull-backs on Pic⁰ coordinates
ModularCurve.XHDRModelAtP.toPic0Pair_ptsSp_symm_schemeHomOverComp_degPull_eq1,100 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 - Base-change compatibility of the classifying morphism of f^*
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.pullbackHom_baseChange_fst0 below · depth 13 - Base-changed Picard restriction maps commute with 1×τ
AlgebraicGeometry.RelPicard.baseChangeSnd_comp_restrictHom_eq_of_baseChangeSnd_comp0 below · depth 13 - Base change compatibility of the relative group law on points
AlgebraicGeometry.RelPicard.baseChange_relativeGroupLaw_mul_compat1 below · depth 13 - Base change of a relative Pic⁰ representation
AlgebraicGeometry.RelPicard.exists_representsRelSubPic_baseChange0 below · depth 13 - Properness and geometric connectedness of Pic⁰ after base change to a field
AlgebraicGeometry.RelPicard.isProper_and_geometricallyConnected_baseChange_toBase_of_representsRelSubPic_of_field391 below · depth 13 - Group law of the base-changed relative Pic⁰
AlgebraicGeometry.RelPicard.relativeGroupLaw_baseChange_eq2 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 - Properness and geometric connectedness of the generic Picard fibre
ModularCurve.DRModelPackageLevel.isProper_and_geometricallyConnected_pullback_snd_rat_of_representsRelSubPic392 below · depth 13 - Norm morphisms realise the degeneracy pushforwards on ℚ̄-points
ModularCurve.DRModelPackageLevel.pts_degeneracyPushforwardPair_eq_comp_degeneracyHom298 below · depth 13 - Torus and abelian quotient on the special fibre of Pic⁰
ModularCurve.XHDRModelAtP.exists_representsRelSubPic_torus_abq_specialFibre1,035 below · depth 13 - An A-point of relative Pic⁰ carrying 𝒪(u₁)⊗𝒪(u₂)⁻¹
ModularCurve.XHDRModelAtP.exists_schemeHomOver_poincare_iso_ofPoint_tensor_idealModule_of_sameComponent1,204 below · depth 13 - Inertia displacement at a non-crossing place extends over A
ModularCurve.XHDRModelAtP.extendsToPlace_pts_mk_smul_single_sub_single_of_not_mem_range_comp_inter1,214 below · depth 13 - Inertial displacement of a place extends: crossing case
ModularCurve.XHDRModelAtP.extendsToPlace_pts_mk_smul_single_sub_single_of_range_subset_range_comp_inter1,429 below · depth 13 - Poincaré bundle at ℚ̄-points of the integral model
ModularCurve.XHDRModelAtP.nonempty_poincare_pullbackAlong_iso_ofPoint_tensor_ofPoint_idealModule_of_eq_comp_ajbar15 below · depth 13 - Special-fibre formula for the degeneracy push-forwards at p ∥ M
ModularCurve.XHDRModelAtP.ptsSp_levelN_symm_schemeHomOverComp_degeneracyHom_eq_of_pts_levelN_degPts_eq_comp1,637 below · depth 13 - Degeneracy push-forwards as norm homomorphisms on ℚ̄-points
ModularCurve.XHDRModelAtP.pts_levelN_degPts_eq_comp_degeneracyHom_of_classifies_normModule230 below · depth 13 - Base change of a represented relative Pic⁰: points, group law, Poincaré bundle
AlgebraicGeometry.RelPicard.baseChange_points_mul_poincare_compat1 below · depth 14 - Representability of the Pic⁰ cut is Zariski-local on the base
AlgebraicGeometry.RelPicard.exists_representsRelSubPic_algEquivZeroCut_of_forall_prime_exists_localizationAway16 below · depth 14 - Existence of the norm endomorphism on the special-fibre Pic⁰
ModularCurve.DRModelPackageLevel.exists_frobHom_classifies_normModule_baseChange78 below · depth 14 - 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 - Special fibre of Pic⁰ of the Deligne–Rapoport model
ModularCurve.DRModelPackageLevel.exists_representsRelSubPic_torus_abq_specialFibre284 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 - Reducedness of the joint kernel of the two degeneracy maps mod p
ModularCurve.DRModelPackageLevel.isReduced_pullback_ker_fibreRestrictAlong_normHom_of_comp_eq1,399 below · depth 14 - 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 - 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 - 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 - 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 - Degeneracy maps on Pic⁰ commute with base twists
ModularCurve.JZeroNeronObjectAtP.fibreMap_abq_schemeHomOverComp_eq_of_pullbackHom_pin858 below · depth 14 - Inertia line bundle 𝒪(σ V-V) at a crossing
ModularCurve.XHDRModelAtP.exists_isInvertible_iso_ofPoint_tensor_idealModule_iso_tensorUnit_of_range_subset_range_comp_inter1,176 below · depth 14 - Trivialised line bundle on mathfrak X_A makes pts([y₁]-[y₂]) extend
ModularCurve.XHDRModelAtP.extendsToPlace_pts_pic0Mk_single_sub_single_of_isInvertible_of_iso_ofPoint_tensor_idealModule_of_iso_tensorUnit1,205 below · depth 14 - A-point with Poincaré bundle 𝒪(u₁-u₂) computes pts([y₁]-[y₂])
ModularCurve.XHDRModelAtP.pts_pic0Mk_eq_barPt_comp_of_poincare_pullbackAlong_iso_ofPoint_tensor_idealModule30 below · depth 14 - Finite étale descent of the represented relative Pic⁰
AlgebraicGeometry.RelPicard.exists_representsRelSubPic_of_finite_etale_descent_of_bijective_sections_of_forall_orbit50 below · depth 15 - Descent orbits on relative Pic⁰ lie in affine opens
AlgebraicGeometry.RelPicard.forall_exists_isAffineOpen_forall_act_mem_of_twoSidedBlocks_of_isInvertible25 below · depth 15 - Counit nonzero on every fibre when h¹=0, h⁰=1
AlgebraicGeometry.RelPicard.pullback_map_counit_app_ne_zero_of_forall_fibre_of_twoAffineOpenCover96 below · depth 15 - Néron extension of an endomorphism preserves the group law
AlgebraicGeometry.RelPicard.schemeHomOverComp_relativeGroupLaw_mul_endExtensionEquiv_symm3 below · depth 15 - Reducedness of fibres of a homomorphism pair with split-torus kernel
AlgebraicGeometry.isReduced_pullback_lift_of_forall_iff_exists_torus0 below · depth 15 - Dual-number points of the kernel of Ribet's matrix are constant
GoodReductionJacobian.RelativeGroupLaw.dualNumber_eq_comp_of_ker_ribetMatrix0 below · depth 15 - 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 - Ribet's matrix on κ-points of Pic⁰
ModularCurve.DRModelPackageLevel.baseChange_normHom_eq_restrict_mul_frob_restrict_points922 below · depth 15 - Integral D-points have vanishing component invariant
ModularCurve.DRModelPackageLevel.comp_eq_zero_of_exists_schemeHomOver_of_depthCompLaw_of_abelJacobiPin_of_surjective_red_of_sp_eq_spPlace2,485 below · depth 15 - Ribet's matrix as an identity of morphisms on special fibres
ModularCurve.DRModelPackageLevel.fibreRestrictAlong_normHom_eq_lift_abq_comp_ribetMatrix928 below · depth 15 - 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 - 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 - Norm endomorphism of Pic⁰ annihilates tangent vectors
ModularCurve.DRModelPackageLevel.schemeHomOverComp_frob_eq_of_dualNumber951 below · depth 15 - Places restrict along chart-pinned morphisms of Igusa schemes
ModularCurve.IgusaScheme.pointEquivPlace_eq_restrictAlong_of_chart_pin4 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 - Crossing-chart glued module restricts to 𝒪(̄ y₁)⊗𝒪(̄ y₂)⁻¹ generically
ModularCurve.XHDRModelAtP.nonempty_pullback_baseChangeSnd_iso_ofPoint_tensor_idealModule_of_isFrameOn_of_map_eq_smul22 below · depth 15 - Relative Pic⁰ of the Deligne–Rapoport model: group law and points
ModularCurve.exists_abelJacobi_pts_relativeGroupLaw_of_dRModelPackage_of_representsRelSubPic1,214 below · depth 15 - A component map on inertia invariants of J₀(p)
ModularCurve.exists_componentHom_extension_of_dRModelPackage_of_abelJacobi_of_ffPin2,509 below · depth 15 - Points dictionaries modulo ℓ for the relative Pic⁰ of X₀(p)
ModularCurve.exists_pointsDict_pullback_snd_ratLocalizedAt_of_dRModelPackage_of_representsRelSubPic1,835 below · depth 15 - Hecke action on the generic fibre of relative Pic⁰
ModularCurve.forall_exists_schemeHomOver_baseChange_rat_isHom_pts_smul_of_dRModelPackage1,207 below · depth 15 - Good-prime data for relative Pic⁰ of the DR model at ℓ ∤ p
ModularCurve.goodPrime_relativePic0_of_dRModelPackage_of_representsRelSubPic1,837 below · depth 15 - Norm transform endomorphism realises T_q on ℚ̄-points
ModularCurve.heckeOperatorBar_points_eq_comp_of_transform359 below · depth 15 - Descent orbits of relative Pic⁰ points lie in affine charts
AlgebraicGeometry.RelPicard.forall_exists_isAffineOpen_forall_act_mem_of_blocks_of_isInvertible17 below · depth 16 - Cohomology and base change for a proper flat family
AlgebraicGeometry.RelPicard.isIso_baseChangeHom_pushforward_of_forall_fibre_of_twoAffineOpenCover94 below · depth 16 - Base change of the theta bundle along R → R'
AlgebraicGeometry.RelPicard.nonempty_pullback_fst_thetaBundle_iso_baseChange76 below · depth 16 - Trivial component classes extend to A-points of Pic⁰
ModularCurve.DRModelPackage.exists_schemeHomOver_of_comp_eq_zero_of_abelJacobiPin_of_surjective2,060 below · depth 16 - Injectivity on closed points of πcirccomp₁ in characteristic p
ModularCurve.DRModelPackageLevel.eq_of_isClosed_of_comp_one_fibreMap0_pi_apply_eq0 below · depth 16 - Existence of a resolved Deligne–Rapoport model with place–component dictionary
ModularCurve.DRModelPackageLevel.exists_dRResolvedModelPackageLevel_nodeEquiv_swap_nodeCoordinates_of_surjective_of_sp_eq_spPlace2,427 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 - 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 - 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 - Vanishing divisor class trivialises a point twist on the special fibre
ModularCurve.DRModelPackageLevel.nonempty_pointTwist_comp0_iso_unit_of_pic0Mk_eq_zero629 below · depth 16 - Rigidified section twist restricted to the zeroth special-fibre component
ModularCurve.DRModelPackageLevel.nonempty_pullbackCurve_comp0_sectionTwist_iso854 below · depth 16 - Point twists of trivial divisor class are rigidly trivial
ModularCurve.DRModelPackageLevel.nonempty_rigidify_pointTwist_comp1_iso_unit_of_pic0Mk_eq_zero629 below · depth 16 - Restriction of the rigidified section twist to the second component
ModularCurve.DRModelPackageLevel.nonempty_rigidify_pullbackCurve_comp1_sectionTwist_iso854 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 - Hecke operator T_q on J₀(p)(ℚ̄) realised by φ_η
ModularCurve.heckeOperatorBar_points_eq_comp_of_transform_rat359 below · depth 16 - Valuation ring of the inertia field inside A
ModularCurve.inertiaField_comap_incl_and_surjective_and_isAlgClosed_residueField10 below · depth 16 - Igusa and Deligne–Rapoport point dictionaries agree through θ_ℚ
ModularCurve.pts_lift_comp_theta_fst_eq_pts_of_dRModelPackage_of_igusaModel209 below · depth 16 - Base change of the theta bundle along ψ: T'→ T
AlgebraicGeometry.RelPicard.nonempty_pullback_thetaBundle_iso72 below · depth 17 - Theta bundles commute with base change along κ
AlgebraicGeometry.RelPicard.nonempty_thetaBundle_baseChange_iso_thetaBundle_toR16 below · depth 17 - Residue-field point above a crossing point of the mod-p fibre
ModularCurve.DRModelPackage.exists_residueField_point_baseChangeMap_eq_of_isAlgClosed_residueField270 below · depth 17 - Geometric-fibre transport of the Poincaré bundle with section twists
ModularCurve.DRModelPackage.nonempty_poincare_pullbackAlong_comp_iso_of_pullback_toDR_iso_of_sectionTwist17 below · depth 17 - Recognising pts of a divisor class from its Poincaré fibre
ModularCurve.DRModelPackage.pts_pic0Mk_eq_comp_of_poincare_pullbackAlong_iso21 below · depth 17 - Transporting a degree-zero divisor along a level equivalence
ModularCurve.DRModelPackage.sum_coef_eq_zero_and_exists_degZero_mapDomain_of_equiv_support145 below · depth 17 - Depth-to-component dictionary for the resolved Deligne–Rapoport model
ModularCurve.DRModelPackageLevel.exists_nodeCoordinates_and_forall_mem_support_iff_chainPos_of_charts_of_sp_eq_spPlace2,052 below · depth 17 - Strict places specialise into one labelled component
ModularCurve.DRModelPackageLevel.exists_swap_forall_isStrict_section_mem_range_comp_of_sp_eq_spPlace1,861 below · depth 17 - Node widths of the resolved model equal place widths
ModularCurve.DRModelPackageLevel.forall_width_eq_of_charts_of_sp_eq_spPlace2,299 below · depth 17 - Bidegree-zero section twist: algebraic triviality on the special fibre
ModularCurve.DRModelPackageLevel.isAlgEquivZero_baseChange_rigidify_sectionTwist_residueField1,126 below · depth 17 - Poincaré pullback of an O-point as a twist of sections
ModularCurve.DRModelPackageLevel.nonempty_pullback_toDR_poincare_pullbackAlong_iso_foldr_sectionTwist180 below · depth 17 - Conorm divisors map to aj₀ followed by β^∗
ModularCurve.DRModelPackageLevel.pts_mk_pullbackAlong_heckeBetaBar_single_sub_eq_abelJacobi_comp_degeneracyPullbackHom1,236 below · depth 17 - Non-strict inertia-fixed places specialise to crossings
ModularCurve.DRModelPackageLevel.section_base_closedPoint_eq_crossing_of_reduceFst_mem_of_sp_eq_spPlace1,891 below · depth 17 - Base change along τ of a section and its geometric generic point
ModularCurve.DRResolvedModelPackage.eEta_comp_pullbackMap_eq_comp_toDR_of_comp_fst_eq0 below · depth 17 - Node bijection and orientation bit for the component dictionary
ModularCurve.DRResolvedModelPackage.exists_nodeEquiv_swap_forall_comp_eq_dict_of_sections_of_charts1,640 below · depth 17 - An O-point of D whose Poincaré class is M
ModularCurve.DRResolvedModelPackage.exists_schemeHomOver_poincare_pullbackAlong_iso_of_generic_sectionTwist_of_forall_isAlgEquivZero36 below · depth 17 - Inertia-fixed places give sections of the resolved model
ModularCurve.DRResolvedModelPackage.exists_section_toDR_generic_eq_pointEquivPlace_symm_of_forall_inertia_smul_eq0 below · depth 17 - Vertical twist to multidegree zero fixing the generic fibre
ModularCurve.DRResolvedModelPackage.exists_verticalTwist_multidegree_eq_zero_and_generic_iso_sectionTwist46 below · depth 17 - Multidegree zero forces algebraic equivalence to zero on fibres
ModularCurve.DRResolvedModelPackage.isAlgEquivZero_fibre_of_pullback_toDR_iso_divisorial_of_multidegree_eq_zero1,241 below · depth 17 - Vanishing component class puts the multidegree in α's image
ModularCurve.DRResolvedModelPackage.multidegree_mem_range_intersectionAlpha_of_comp_eq_zero482 below · depth 17 - Sections of the resolved model avoid the edge points
ModularCurve.DRResolvedModelPackage.ne_edgePt_and_mem_smoothOffEdges_and_existsUnique_mem_comp_support_of_section1 below · depth 17 - Generic fibre of a bundle descended through the resolution
ModularCurve.DRResolvedModelPackage.nonempty_pullback_comp_toDR_iso_sectionTwist_of_iso_divisorial0 below · depth 17 - Base change compatibility of the section twist 𝒪(rε)
AlgebraicGeometry.RelPicard.nonempty_transport_sectionTwist_baseChange_iso14 below · depth 18 - Node coordinates at a supersingular crossing from a chart presentation
ModularCurve.DRModelPackage.exists_nodeCoordinates_and_forall_mem_support_iff_chainPos_of_chartPresentation_of_branch_of_jPin1,158 below · depth 18 - Supersingular places enumerate the crossings, with width and j-pin
ModularCurve.DRModelPackage.exists_nodeEquiv_width_eq_and_jPin414 below · depth 18 - An orientation bit matching strict places to branch components
ModularCurve.DRModelPackage.exists_swap_forall_isStrict_section_mem_range_comp_of_reading445 below · depth 18 - Supersingular O-lift of j at each crossing
ModularCurve.DRModelPackage.forall_exists_lift_jFun_sub_mem_maximalIdeal_and_mem_ssJSet404 below · depth 18 - Sections through non-strict inertia-fixed places meet the matched crossing
ModularCurve.DRModelPackage.section_base_closedPoint_eq_crossing_of_reduceFst_mem337 below · depth 18 - Node coordinates and chain position at one supersingular crossing
ModularCurve.DRModelPackageLevel.exists_nodeCoordinates_and_forall_mem_support_iff_chainPos_of_chartPresentation2,007 below · depth 18 - Function field of the O-model inside ℚ̄(X₀(N₀q))
ModularCurve.DRModelPackageLevel.exists_ringHom_functionField_pullback_forall_eq_algebraMap_and_coe_eq_coeffEmb0 below · depth 18
… and 283 more statements (search for the module name to find them).