Definitions/Def_ModularCurve_TwoChartModel.lean
Two-chart model: gluing normalised charts of the -line
Fix a commutative ring A, a field K that is an A-algebra, and an element j \in K assumed nonzero. For a subset S \subseteq K, chartAlg A K S is the A-subalgebra of K whose elements are those x \in K integral over the subalgebra Algebra.adjoin A S generated by S; mem_chartAlg_iff records membership as exactly this integrality condition, and adjoin_le_chartAlg, subset_chartAlg, chartAlg_mono together with the inclusion maps chartIncl (injective, compatible with the coercion to K) give its elementary functoriality in S. The computational core consists of exists_pow_mul_mem_adjoin and exists_pow_mul_mem_chartAlg: for s \in S nonzero, every element of \mathrm{adjoin}\,A\,(\{s^{-1}\} \cup S), respectively of chartAlg A K (insert s⁻¹ S), becomes after multiplication by a suitable power s^n an element of \mathrm{adjoin}\,A\,S, respectively of chartAlg A K S (the second by scaling the roots of a monic witness). Specialising S to \{j\}, \{j^{-1}\} and \{j, j^{-1}\} gives the three chart rings chartAlgFin, chartAlgInf, chartAlgMid, the distinguished elements jChartFin and jInvChartInf, and the inclusions inclFin, inclInf into the middle ring; these elements become units there, and isLocalization_away_inclFin, isLocalization_away_inclInf assert that chartAlgMid is the localisation of chartAlgFin away from j and of chartAlgInf away from j^{-1}. Hence fFin and fInf, the induced maps of affine schemes \operatorname{Spec} chartAlgMid \to \operatorname{Spec} chartAlgFin, chartAlgInf, are open immersions. ModularCurve.TwoChartModel A K j is defined as the pushout of these two morphisms in schemes; ιFin, ιInf are its two structural legs (open immersions) satisfying the gluing identity glue_condition, modelTo is the morphism to \operatorname{Spec} A induced by the two structure maps, and chartFinOpen, chartInfOpen are the corresponding affine opens, shown to cover the whole model (mem_range_ιFin_or_mem_range_ιInf, twoChartCover).
Relation to Mathlib
chartAlg A K S has the same elements as Mathlib's integral closure of Algebra.adjoin A S in K, but is packaged as an A-subalgebra of K; the gluing uses Mathlib's pushouts of schemes, its IsLocalization.Away interface and the criterion that a localisation away from an element induces an open immersion on spectra.
Where it is used
This is the generic shape of an integral model of a modular curve: taking A a suitable localisation of \mathbb{Z} or of a ring of cyclotomic integers, K a field of modular functions and j the modular invariant, the model is obtained by normalising the two standard charts of the j-line and gluing them over the overlap. The construction is used throughout the treatment of modular curves in the argument.
References
- N. M. Katz and B. Mazur, Arithmetic Moduli of Elliptic Curves, Annals of Mathematics Studies 108, Princeton University Press, 1985
- G. Shimura, Introduction to the Arithmetic Theory of Automorphic Functions, Princeton University Press, 1971, Chapter 6
- M. F. Atiyah and I. G. Macdonald, Introduction to Commutative Algebra, Addison-Wesley, 1969, Chapter 5
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 300 lines
- 48 declarations
- used in the statements of 297 theorems and imported by 302 proofs
- imports 0 definition modules
Source file: Definitions/Def_ModularCurve_TwoChartModel.lean
Declarations
- def
ModularCurve.TwoChart.chartAlg - theorem
ModularCurve.TwoChart.mem_chartAlg_iff - theorem
ModularCurve.TwoChart.adjoin_le_chartAlg - theorem
ModularCurve.TwoChart.subset_chartAlg - theorem
ModularCurve.TwoChart.chartAlg_mono - abbrev
ModularCurve.TwoChart.chartIncl - theorem
ModularCurve.TwoChart.coe_chartIncl - theorem
ModularCurve.TwoChart.chartIncl_injective - theorem
ModularCurve.TwoChart.exists_pow_mul_mem_adjoin - theorem
ModularCurve.TwoChart.exists_pow_mul_mem_chartAlg - theorem
ModularCurve.TwoChart.sFin_subset - theorem
ModularCurve.TwoChart.sInf_subset - abbrev
ModularCurve.TwoChart.chartAlgFin - abbrev
ModularCurve.TwoChart.chartAlgInf - abbrev
ModularCurve.TwoChart.chartAlgMid - def
ModularCurve.TwoChart.jChartFin - def
ModularCurve.TwoChart.jInvChartInf - theorem
ModularCurve.TwoChart.coe_jChartFin - theorem
ModularCurve.TwoChart.coe_jInvChartInf - abbrev
ModularCurve.TwoChart.inclFin - abbrev
ModularCurve.TwoChart.inclInf - theorem
ModularCurve.TwoChart.isUnit_inclFin_jChartFin - theorem
ModularCurve.TwoChart.isUnit_inclInf_jInvChartInf - theorem
ModularCurve.TwoChart.isLocalization_away_inclFin - theorem
ModularCurve.TwoChart.isLocalization_away_inclInf - abbrev
ModularCurve.TwoChart.XFin - abbrev
ModularCurve.TwoChart.XInf - abbrev
ModularCurve.TwoChart.XMid - abbrev
ModularCurve.TwoChart.fFin - abbrev
ModularCurve.TwoChart.fInf - instance
ModularCurve.TwoChart.isOpenImmersion_fFin - instance
ModularCurve.TwoChart.isOpenImmersion_fInf - def
ModularCurve.TwoChartModel - def
ModularCurve.TwoChart.ιFin - def
ModularCurve.TwoChart.ιInf - theorem
ModularCurve.TwoChart.glue_condition - instance
ModularCurve.TwoChart.isOpenImmersion_ιFin - instance
ModularCurve.TwoChart.isOpenImmersion_ιInf - theorem
ModularCurve.TwoChart.fFin_toBase_eq_fInf_toBase - def
ModularCurve.TwoChart.modelTo - theorem
ModularCurve.TwoChart.ιFin_modelTo - theorem
ModularCurve.TwoChart.ιInf_modelTo - theorem
ModularCurve.TwoChart.mem_range_ιFin_or_mem_range_ιInf - def
ModularCurve.TwoChart.chartFinOpen - def
ModularCurve.TwoChart.chartInfOpen - theorem
ModularCurve.TwoChart.isAffineOpen_chartFinOpen - theorem
ModularCurve.TwoChart.isAffineOpen_chartInfOpen - theorem
ModularCurve.TwoChart.twoChartCover
Source
import Mathlib set_option autoImplicit false noncomputable section open CategoryTheory CategoryTheory.Limits AlgebraicGeometry Polynomial universe u namespace ModularCurve namespace TwoChart variable (A : Type u) [CommRing A] (K : Type u) [Field K] [Algebra A K] def chartAlg (S : Set K) : Subalgebra A K where carrier := {x | IsIntegral (Algebra.adjoin A S) x} mul_mem' ha hb := ha.mul hb one_mem' := isIntegral_one add_mem' ha hb := ha.add hb zero_mem' := isIntegral_zero algebraMap_mem' a := by have : IsIntegral (Algebra.adjoin A S) (algebraMap (Algebra.adjoin A S) K (algebraMap A (Algebra.adjoin A S) a)) := isIntegral_algebraMap simpa [← IsScalarTower.algebraMap_apply] using this theorem mem_chartAlg_iff {S : Set K} {x : K} : x ∈ chartAlg A K S ↔ IsIntegral (Algebra.adjoin A S) x := Iff.rfl theorem adjoin_le_chartAlg (S : Set K) : Algebra.adjoin A S ≤ chartAlg A K S := fun x hx => by rw [mem_chartAlg_iff] exact isIntegral_algebraMap (x := (⟨x, hx⟩ : Algebra.adjoin A S)) theorem subset_chartAlg (S : Set K) : S ⊆ (chartAlg A K S : Set K) := fun _ hx => adjoin_le_chartAlg A K S (Algebra.subset_adjoin hx) theorem chartAlg_mono {S S' : Set K} (h : S ⊆ S') : chartAlg A K S ≤ chartAlg A K S' := by intro x hx rw [mem_chartAlg_iff] at hx ⊢ exact hx.map_of_comp_eq (Subalgebra.inclusion (Algebra.adjoin_mono h)).toRingHom (RingHom.id K) (by ext; rfl) abbrev chartIncl {S S' : Set K} (h : S ⊆ S') : chartAlg A K S →ₐ[A] chartAlg A K S' := Subalgebra.inclusion (chartAlg_mono A K h) theorem coe_chartIncl {S S' : Set K} (h : S ⊆ S') (x : chartAlg A K S) : (chartIncl A K h x : K) = x := Subalgebra.coe_inclusion _ x theorem chartIncl_injective {S S' : Set K} (h : S ⊆ S') : Function.Injective (chartIncl A K h) := Subalgebra.inclusion_injective _ variable {A K} theorem exists_pow_mul_mem_adjoin {S : Set K} {s : K} (hs : s ∈ S) (hs0 : s ≠ 0) {x : K} (hx : x ∈ Algebra.adjoin A (insert s⁻¹ S)) : ∃ n : ℕ, s ^ n * x ∈ Algebra.adjoin A S := by have hsA : s ∈ Algebra.adjoin A S := Algebra.subset_adjoin hs induction hx using Algebra.adjoin_induction with | mem y hy => rcases hy with rfl | hy · exact ⟨1, by rw [pow_one, mul_inv_cancel₀ hs0]; exact one_mem _⟩ · exact ⟨0, by rw [pow_zero, one_mul]; exact Algebra.subset_adjoin hy⟩ | algebraMap a => exact ⟨0, by rw [pow_zero, one_mul]; exact Subalgebra.algebraMap_mem _ a⟩ | add y z _ _ hy hz => obtain ⟨m, hm⟩ := hy obtain ⟨n, hn⟩ := hz refine ⟨m + n, ?_⟩ have : s ^ (m + n) * (y + z) = s ^ n * (s ^ m * y) + s ^ m * (s ^ n * z) := by ring rw [this] exact add_mem (mul_mem (pow_mem hsA n) hm) (mul_mem (pow_mem hsA m) hn) | mul y z _ _ hy hz => obtain ⟨m, hm⟩ := hy obtain ⟨n, hn⟩ := hz refine ⟨m + n, ?_⟩ have : s ^ (m + n) * (y * z) = (s ^ m * y) * (s ^ n * z) := by ring rw [this] exact mul_mem hm hn theorem exists_pow_mul_mem_chartAlg {S : Set K} {s : K} (hs : s ∈ S) (hs0 : s ≠ 0) {x : K} (hx : x ∈ chartAlg A K (insert s⁻¹ S)) : ∃ n : ℕ, s ^ n * x ∈ chartAlg A K S := by classical obtain ⟨p, hmonic, hroot⟩ := (mem_chartAlg_iff A K).mp hx have hcoeff : ∀ i, ∃ n : ℕ, s ^ n * (p.coeff i : K) ∈ Algebra.adjoin A S := fun i => exists_pow_mul_mem_adjoin hs hs0 (p.coeff i).2 choose n hn using hcoeff set M : ℕ := ∑ i ∈ Finset.range (p.natDegree + 1), n i with hM have hnM : ∀ i ≤ p.natDegree, n i ≤ M := fun i hi => Finset.single_le_sum (f := n) (fun _ _ => Nat.zero_le _) (Finset.mem_range.mpr (Nat.lt_succ_of_le hi)) set q : K[X] := (p.map (algebraMap (Algebra.adjoin A (insert s⁻¹ S)) K)).scaleRoots (s ^ M) with hq have hqmonic : q.Monic := (Polynomial.monic_scaleRoots_iff _).mpr (hmonic.map _) have hqroot : q.eval (s ^ M * x) = 0 := by rw [hq, Polynomial.scaleRoots_eval_mul, Polynomial.eval_map, hroot, mul_zero] have hqcoeff : ∀ i, q.coeff i ∈ Algebra.adjoin A S := by intro i rw [hq, Polynomial.coeff_scaleRoots, Polynomial.coeff_map, hmonic.natDegree_map] by_cases hi : i < p.natDegree · have hle : n i ≤ M * (p.natDegree - i) := by calc n i ≤ M := hnM i hi.le _ = M * 1 := (mul_one M).symm _ ≤ M * (p.natDegree - i) := Nat.mul_le_mul_left M (Nat.one_le_iff_ne_zero.mpr (by omega)) obtain ⟨k, hk⟩ := Nat.exists_eq_add_of_le hle have : (s ^ M) ^ (p.natDegree - i) = s ^ k * s ^ n i := by rw [← pow_mul, hk, pow_add, mul_comm] rw [this, Subalgebra.algebraMap_def, Algebra.algebraMap_self_apply, show (p.coeff i : K) * (s ^ k * s ^ n i) = s ^ k * (s ^ n i * (p.coeff i : K)) by ring] exact mul_mem (pow_mem (Algebra.subset_adjoin hs) k) (hn i) · rcases (not_lt.mp hi).lt_or_eq with hlt | heq · rw [Polynomial.coeff_eq_zero_of_natDegree_lt hlt, map_zero, zero_mul] exact zero_mem _ · rw [← heq, hmonic.coeff_natDegree, map_one, one_mul, Nat.sub_self, pow_zero] exact one_mem _ have hlifts : q ∈ Polynomial.lifts (algebraMap (Algebra.adjoin A S) K) := (Polynomial.lifts_iff_coeff_lifts q).mpr fun i => ⟨⟨q.coeff i, hqcoeff i⟩, rfl⟩ obtain ⟨q', hq'q, -, hq'monic⟩ := Polynomial.lifts_and_natDegree_eq_and_monic hlifts hqmonic refine ⟨M, (mem_chartAlg_iff A K).mpr ⟨q', hq'monic, ?_⟩⟩ rw [Polynomial.eval₂_eq_eval_map, hq'q, hqroot] variable (A K) variable (j : K) [Fact (j ≠ 0)] omit [Fact (j ≠ 0)] in theorem sFin_subset : ({j} : Set K) ⊆ {j, (j)⁻¹} := Set.singleton_subset_iff.mpr (Set.mem_insert _ _) omit [Fact (j ≠ 0)] in theorem sInf_subset : ({(j)⁻¹} : Set K) ⊆ {j, (j)⁻¹} := Set.singleton_subset_iff.mpr (Set.mem_insert_of_mem _ rfl) abbrev chartAlgFin : Subalgebra A K := chartAlg A K {j} abbrev chartAlgInf : Subalgebra A K := chartAlg A K {(j)⁻¹} abbrev chartAlgMid : Subalgebra A K := chartAlg A K {j, (j)⁻¹} def jChartFin : chartAlgFin A K j := ⟨j, subset_chartAlg A K _ rfl⟩ def jInvChartInf : chartAlgInf A K j := ⟨(j)⁻¹, subset_chartAlg A K _ rfl⟩ omit [Fact (j ≠ 0)] in @[simp] theorem coe_jChartFin : (jChartFin A K j : K) = j := rfl omit [Fact (j ≠ 0)] in @[simp] theorem coe_jInvChartInf : (jInvChartInf A K j : K) = (j)⁻¹ := rfl abbrev inclFin : chartAlgFin A K j →ₐ[A] chartAlgMid A K j := chartIncl A K (sFin_subset K j) abbrev inclInf : chartAlgInf A K j →ₐ[A] chartAlgMid A K j := chartIncl A K (sInf_subset K j) theorem isUnit_inclFin_jChartFin : IsUnit (inclFin A K j (jChartFin A K j)) := by refine .of_mul_eq_one ⟨(j)⁻¹, subset_chartAlg A K _ (by simp)⟩ (Subtype.ext ?_) rw [Subalgebra.coe_mul, Subalgebra.coe_one, coe_chartIncl, coe_jChartFin] exact mul_inv_cancel₀ ((Fact.out : j ≠ 0)) theorem isUnit_inclInf_jInvChartInf : IsUnit (inclInf A K j (jInvChartInf A K j)) := by refine .of_mul_eq_one ⟨j, subset_chartAlg A K _ (by simp)⟩ (Subtype.ext ?_) rw [Subalgebra.coe_mul, Subalgebra.coe_one, coe_chartIncl, coe_jInvChartInf] exact inv_mul_cancel₀ ((Fact.out : j ≠ 0)) theorem isLocalization_away_inclFin : letI := (inclFin A K j).toRingHom.toAlgebra IsLocalization.Away (jChartFin A K j) (chartAlgMid A K j) := by letI := (inclFin A K j).toRingHom.toAlgebra refine (isLocalization_iff _ _).mpr ⟨?_, ?_, ?_⟩ · rintro ⟨_, n, rfl⟩ rw [RingHom.algebraMap_toAlgebra, map_pow] exact (isUnit_inclFin_jChartFin A K j).pow n · intro z have hz : (z : K) ∈ chartAlg A K (insert (j)⁻¹ {j}) := by rw [show insert (j)⁻¹ ({j} : Set K) = {j, (j)⁻¹} from Set.pair_comm _ _] exact z.2 obtain ⟨n, hn⟩ := exists_pow_mul_mem_chartAlg (Set.mem_singleton _) ((Fact.out : j ≠ 0)) hz refine ⟨(⟨(j) ^ n * z, hn⟩, ⟨jChartFin A K j ^ n, n, rfl⟩), Subtype.ext ?_⟩ simp only [RingHom.algebraMap_toAlgebra, map_pow, Subalgebra.coe_mul, Subalgebra.coe_pow, AlgHom.toRingHom_eq_coe, AlgHom.coe_toRingHom, coe_chartIncl, coe_jChartFin] exact mul_comm _ _ · intro x y h refine ⟨1, ?_⟩ rw [RingHom.algebraMap_toAlgebra] at h rw [chartIncl_injective A K _ h] theorem isLocalization_away_inclInf : letI := (inclInf A K j).toRingHom.toAlgebra IsLocalization.Away (jInvChartInf A K j) (chartAlgMid A K j) := by letI := (inclInf A K j).toRingHom.toAlgebra refine (isLocalization_iff _ _).mpr ⟨?_, ?_, ?_⟩ · rintro ⟨_, n, rfl⟩ rw [RingHom.algebraMap_toAlgebra, map_pow] exact (isUnit_inclInf_jInvChartInf A K j).pow n · intro z have hz : (z : K) ∈ chartAlg A K (insert (j)⁻¹⁻¹ {(j)⁻¹}) := by rw [inv_inv]; exact z.2 obtain ⟨n, hn⟩ := exists_pow_mul_mem_chartAlg (Set.mem_singleton _) (inv_ne_zero ((Fact.out : j ≠ 0))) hz refine ⟨(⟨(j)⁻¹ ^ n * z, hn⟩, ⟨jInvChartInf A K j ^ n, n, rfl⟩), Subtype.ext ?_⟩ simp only [RingHom.algebraMap_toAlgebra, map_pow, Subalgebra.coe_mul, Subalgebra.coe_pow, AlgHom.toRingHom_eq_coe, AlgHom.coe_toRingHom, coe_chartIncl, coe_jInvChartInf] exact mul_comm _ _ · intro x y h refine ⟨1, ?_⟩ rw [RingHom.algebraMap_toAlgebra] at h rw [chartIncl_injective A K _ h] abbrev XFin : Scheme.{u} := Spec (CommRingCat.of (chartAlgFin A K j)) abbrev XInf : Scheme.{u} := Spec (CommRingCat.of (chartAlgInf A K j)) abbrev XMid : Scheme.{u} := Spec (CommRingCat.of (chartAlgMid A K j)) abbrev fFin : XMid A K j ⟶ XFin A K j := Spec.map (CommRingCat.ofHom (inclFin A K j).toRingHom) abbrev fInf : XMid A K j ⟶ XInf A K j := Spec.map (CommRingCat.ofHom (inclInf A K j).toRingHom) instance isOpenImmersion_fFin : IsOpenImmersion (fFin A K j) := by letI := (inclFin A K j).toRingHom.toAlgebra haveI := isLocalization_away_inclFin A K j exact IsOpenImmersion.of_isLocalization (jChartFin A K j) instance isOpenImmersion_fInf : IsOpenImmersion (fInf A K j) := by letI := (inclInf A K j).toRingHom.toAlgebra haveI := isLocalization_away_inclInf A K j exact IsOpenImmersion.of_isLocalization (jInvChartInf A K j) def _root_.ModularCurve.TwoChartModel : Scheme.{u} := pushout (fFin A K j) (fInf A K j) def ιFin : XFin A K j ⟶ TwoChartModel A K j := pushout.inl (fFin A K j) (fInf A K j) def ιInf : XInf A K j ⟶ TwoChartModel A K j := pushout.inr (fFin A K j) (fInf A K j) theorem glue_condition : fFin A K j ≫ ιFin A K j = fInf A K j ≫ ιInf A K j := pushout.condition instance isOpenImmersion_ιFin : IsOpenImmersion (ιFin A K j) := (Scheme.IsLocallyDirected.openCover (span (fFin A K j) (fInf A K j))).map_prop WalkingSpan.left instance isOpenImmersion_ιInf : IsOpenImmersion (ιInf A K j) := (Scheme.IsLocallyDirected.openCover (span (fFin A K j) (fInf A K j))).map_prop WalkingSpan.right omit [Fact (j ≠ 0)] in theorem fFin_toBase_eq_fInf_toBase : fFin A K j ≫ Spec.map (CommRingCat.ofHom (algebraMap A (chartAlgFin A K j))) = fInf A K j ≫ Spec.map (CommRingCat.ofHom (algebraMap A (chartAlgInf A K j))) := by have h : (inclFin A K j).toRingHom.comp (algebraMap A (chartAlgFin A K j)) = (inclInf A K j).toRingHom.comp (algebraMap A (chartAlgInf A K j)) := RingHom.ext fun a => ((inclFin A K j).commutes a).trans ((inclInf A K j).commutes a).symm simp only [← Spec.map_comp, ← CommRingCat.ofHom_comp, h] def modelTo : TwoChartModel A K j ⟶ Spec (CommRingCat.of A) := pushout.desc (Spec.map (CommRingCat.ofHom (algebraMap A (chartAlgFin A K j)))) (Spec.map (CommRingCat.ofHom (algebraMap A (chartAlgInf A K j)))) (fFin_toBase_eq_fInf_toBase A K j) @[reassoc (attr := simp)] theorem ιFin_modelTo : ιFin A K j ≫ modelTo A K j = Spec.map (CommRingCat.ofHom (algebraMap A (chartAlgFin A K j))) := pushout.inl_desc _ _ _ @[reassoc (attr := simp)] theorem ιInf_modelTo : ιInf A K j ≫ modelTo A K j = Spec.map (CommRingCat.ofHom (algebraMap A (chartAlgInf A K j))) := pushout.inr_desc _ _ _ theorem mem_range_ιFin_or_mem_range_ιInf (x : TwoChartModel A K j) : x ∈ Set.range (ιFin A K j).base ∨ x ∈ Set.range (ιInf A K j).base := by obtain ⟨i, y, hy⟩ := (Scheme.IsLocallyDirected.openCover (span (fFin A K j) (fInf A K j))).exists_eq x rcases i with (_ | _ | _) · have hw : (Scheme.IsLocallyDirected.openCover (span (fFin A K j) (fInf A K j))).f none = fFin A K j ≫ ιFin A K j := (colimit.w (span (fFin A K j) (fInf A K j)) WalkingSpan.Hom.fst).symm refine Or.inl ⟨(fFin A K j).base y, ?_⟩ rw [← hy, hw]; rfl · exact Or.inl ⟨y, hy⟩ · exact Or.inr ⟨y, hy⟩ def chartFinOpen : (TwoChartModel A K j).Opens := (ιFin A K j).opensRange def chartInfOpen : (TwoChartModel A K j).Opens := (ιInf A K j).opensRange theorem isAffineOpen_chartFinOpen : IsAffineOpen (chartFinOpen A K j) := isAffineOpen_opensRange (ιFin A K j) theorem isAffineOpen_chartInfOpen : IsAffineOpen (chartInfOpen A K j) := isAffineOpen_opensRange (ιInf A K j) theorem twoChartCover : chartFinOpen A K j ⊔ chartInfOpen A K j = ⊤ := by rw [chartFinOpen, chartInfOpen, ← TopologicalSpace.Opens.coe_inj] ext x simpa using mem_range_ιFin_or_mem_range_ιInf A K j x end TwoChart end ModularCurve end
Statements phrased using this module (297)
- The two-chart model admits a two-affine open cover
ModularCurve.TwoChart.nonempty_twoAffineOpenCover0 below · depth 21 - Frobenius twist on the Igusa component is coefficientwise
ModularCurve.XOneP.addEquiv_proj_fst_eq_frob_smul_of_pts_eq_frobenius_comp_of_gaussReading_twoChartModel_x1_mul2,278 below · depth 21 - Uₚ acts as p Frob⁻¹ on the Igusa component
ModularCurve.XOneP.addEquiv_proj_fst_eq_natCast_smul_frob_inv_smul_of_pts_reduction_heckeGenOne_of_normFreePart_of_surjective_residue_of_gaussReading_twoChartModel_x1_mul3,358 below · depth 21 - q-expansion pin for the Igusa component of J₁(Mp) at p
ModularCurve.XOneP.addEquiv_proj_fst_eq_pic0Mk_conorm_laurentPlaceReduction_of_points_of_gaussReading_twoChartModel_x1_mul1,336 below · depth 21 - Sum of p-diamond operators kills the norm-free subscheme's special fibre
ModularCurve.XOneP.comp_heckeHom_sum_diamondGen_eq_one_of_factors_normFreePart_specialFibre_twoChartModel_x1_mul6 below · depth 21 - q-divisible norm-free systems reducing into the torus vanish
ModularCurve.XOneP.eq_zero_of_proj_eq_zero_of_qDivisible_normFreePart_points_twoChartModel_x1_mul1,250 below · depth 21 - Two smooth components of the bad fibre, ordered by a section
ModularCurve.XOneP.exists_components_specialFibre_card_pos_and_section_comp_eq_twoChartModel_x1_mul2,880 below · depth 21 - Cusp ∞ lies on the Gauss component, read by q-expansions
ModularCurve.XOneP.exists_curveModel_igusaFunctionFieldX1C_iso_specialFibre_components_gaussReading_fst_of_section_eq_comp_iotaInf_twoChartModel_x1_mul1,780 below · depth 21 - Geometric generic fibre model of X₁(Mp) with chart pin
ModularCurve.XOneP.exists_curveModel_x1FunctionFieldBar_iso_pullback_chartPin_galoisCompat_twoChartModel_x1_mul126 below · depth 21 - Special fibre of J₁(Mp) as glued Pic⁰ of Igusa curves
ModularCurve.XOneP.exists_gluedPic0_addEquiv_neronSpecialFibreGeom_toPic0Pair_eq_proj_of_curveModel_igusa_twoChartModel_x1_mul1,721 below · depth 21 - Abel–Jacobi-normalised Hecke and Galois action on Pic⁰ of X₁(Mp)
ModularCurve.XOneP.exists_heckeHom_galoisHom_pts_smul_eq_comp_abelJacobi_of_representsRelSubPic_twoChartModel_x1_mul3,203 below · depth 21 - Abelian subscheme of relative Pic⁰ cutting out the norm-free part
ModularCurve.XOneP.exists_isClosedImmersion_isProper_smooth_normFreePart_of_representsRelSubPic_twoChartModel_x1_mul3,371 below · depth 21 - Special-fibre geometry of Pic⁰ for the X₁(Mp) model
ModularCurve.XOneP.exists_neronSpecialFibreGeom_of_representsRelSubPic_baseChange_twoChartModel_x1_mul1,246 below · depth 21 - Hecke, diamond and inertia operators on the Néron special fibre of J₁(Mp)
ModularCurve.XOneP.exists_neronSpecialFibreOpsV3_of_heckeHom_galoisHom_of_representsRelSubPic_of_isAlgebraic_twoChartModel_x1_mul_of_baseChangeIso_of_abelJacobi_of_gaussReading3,339 below · depth 21 - A p-divisible group over A for the norm-free part of J₁(Mp)
ModularCurve.XOneP.exists_pDivisibleGroup_normFreePart_points_tateModule_valuation_lt_one_of_reduction_eq_zeroSection_twoChartModel_x1_mul742 below · depth 21 - Inertia-fixed norm-free classes extend over the invariant subring
ModularCurve.XOneP.exists_points_fixedValuationSubring_of_smul_eq_self_of_mem_normFreePart_twoChartModel_x1_mul1 below · depth 21 - Galois transport of O-points of the Pic⁰ model
ModularCurve.XOneP.exists_points_smul_eq_and_reduction_eq_comp_galoisHom_of_points_twoChartModel_x1_mul0 below · depth 21 - Reduction bijective on prime-to-p torsion of O_I-points
ModularCurve.XOneP.exists_reduction_torsion_bijective_points_fixedValuationSubring_of_representsRelSubPic_twoChartModel_x1_mul16 below · depth 21 - Representability of Pic⁰ for the two-chart model of X₁(Mp)
ModularCurve.XOneP.exists_representsRelSubPic_algEquivZeroCut_twoChartModel_x1_mul3,368 below · depth 21 - Proper flat regular two-chart model of X₁(Mp) with semistable fibres
ModularCurve.XOneP.isProper_and_flat_and_isRegularLocalRing_and_twoGluedSmoothCurveDegeneration_twoChartModel_x1_mul2,883 below · depth 21 - Reducedness of all geometric fibres of the X₁(Mp) two-chart model
ModularCurve.XOneP.isReduced_pullback_modelTo_of_isAlgClosed_twoChartModel_x1_mul1,189 below · depth 21 - Crossings in the special fibre count supersingular places
ModularCurve.XOneP.natCard_pullback_specialFibre_eq_natCard_evalAt_mem_ssJSet_twoChartModel_x1_mul1,454 below · depth 21 - Level monotonicity and component-wise compatibility of the specialisation family
ModularCurve.XOneP.normFreePartFamily_dom_mono_and_toPic0Pair_sp_eq_of_le_twoChartModel_x1_mul_opsV30 below · depth 21 - Uₚ acts through an automorphism on the étale Igusa component
ModularCurve.XOneP.normFreePartFamily_exists_addEquiv_toPic0Pair_sp_heckeOperatorOneBar_snd_eq_twoChartModel_x1_mul4,670 below · depth 21 - Diamond action on first components of specialised norm-free classes
ModularCurve.XOneP.normFreePartFamily_exists_addMonoidHom_toPic0Pair_sp_diamondOneBar_fst_eq_twoChartModel_x1_mul2,964 below · depth 21 - Decomposition group acts on second Igusa projection of norm-free points
ModularCurve.XOneP.normFreePartFamily_exists_addMonoidHom_toPic0Pair_sp_smul_snd_eq_of_mem_decompositionSubgroup_twoChartModel_x1_mul3,011 below · depth 21 - Specialisation datum for the norm-free part of J₁(Mp)
ModularCurve.XOneP.normFreePartFamily_exists_dom_sp_interface_twoChartModel_x1_mul_opsV32 below · depth 21 - Inertia-invariant functionals annihilate Tate vectors with vanishing Igusa specialisation
ModularCurve.XOneP.normFreePartFamily_forall_apply_eq_zero_of_tateModule_toPic0Pair_sp_eq_zero_twoChartModel_x1_mul2,215 below · depth 21 - Level independence of the specialisation family on J₁(Mp)
ModularCurve.XOneP.normFreePartFamily_level_pushout_and_sp_eq_twoChartModel_x1_mul_opsV30 below · depth 21 - Inertia-fixed norm-free classes lie in the specialisation domain
ModularCurve.XOneP.normFreePartFamily_mem_dom_of_forall_smul_eq_self_twoChartModel_x1_mul_opsV32 below · depth 21 - Trivial Weil pairing for vanishing glued specialisations
ModularCurve.XOneP.normFreePartFamily_pairing_eq_one_of_toPic0Pair_sp_eq_zero_twoChartModel_x1_mul4,591 below · depth 21 - Inertia twisted by a diamond fixes the second Igusa component
ModularCurve.XOneP.normFreePartFamily_toPic0Pair_sp_diamondOneBar_smul_snd_eq_of_mem_inertiaSubgroupIn_twoChartModel_x1_mul_opsV31,268 below · depth 21 - q-expansion pin of the specialisation on the Gauss component
ModularCurve.XOneP.normFreePartFamily_toPic0Pair_sp_fst_eq_pic0Mk_conorm_laurentPlaceReduction_twoChartModel_x1_mul1,337 below · depth 21 - Frobenius acts coefficientwise on the first Igusa component
ModularCurve.XOneP.normFreePartFamily_toPic0Pair_sp_fst_smul_of_isFrobeniusAt_twoChartModel_x1_mul2,332 below · depth 21 - Uₚ acts as p Fr⁻¹ on norm-free specialisations
ModularCurve.XOneP.normFreePartFamily_toPic0Pair_sp_heckeOperatorOneBar_fst_eq_natCast_smul_frob_inv_smul_twoChartModel_x1_mul3,359 below · depth 21 - Triangularity of Uₚ on specialisations of the norm-free part
ModularCurve.XOneP.normFreePartFamily_toPic0Pair_sp_heckeOperatorOneBar_snd_eq_zero_twoChartModel_x1_mul3,359 below · depth 21 - Frobenius acts coefficientwise on the first Igusa-component specialisation
ModularCurve.XOneP.normFreePartFamily_toPic0Pair_sp_smul_fst_eq_frob_smul_of_isFrobeniusAt_twoChartModel_x1_mul0 below · depth 21 - Inertia fixes the cuspidal component of reductions of norm-free points
ModularCurve.XOneP.normFreePartFamily_toPic0Pair_sp_smul_fst_eq_of_mem_inertiaSubgroupIn_twoChartModel_x1_mul1,268 below · depth 21 - Inertia fixing μₚ preserves the second Igusa component of specialisations
ModularCurve.XOneP.normFreePartFamily_toPic0Pair_sp_smul_snd_eq_of_mem_inertiaSubgroupIn_of_forall_pow_eq_one_twoChartModel_x1_mul_opsV31 below · depth 21 - Inertia and diamond act trivially on special-fibre components
ModularCurve.XOneP.proj_fst_eq_and_proj_snd_eq_of_opoints_pts_eq_comp_galoisHom_diamondGen_of_mem_inertiaSubgroupIn_gaussPin_cuspPin_abelJacobi_twoChartModel_x1_mul1,266 below · depth 21 - Hecke generator at p preserves vanishing étale component
ModularCurve.XOneP.proj_snd_eq_zero_of_proj_snd_eq_zero_of_pts_reduction_heckeGenOne_of_normFreePart_of_surjective_residue_of_gaussReading_twoChartModel_x1_mul3,358 below · depth 21 - Group-law form of the special-fibre points dictionary
ModularCurve.XOneP.pts_add_eq_relativeGroupLaw_mul_and_pts_zero_eq_one_specialFibre_twoChartModel_x1_mul1 below · depth 21 - Section through one special-fibre component misses the other
ModularCurve.XOneP.sectionBaseChange_not_mem_range_of_comp_eq_sectionBaseChange_twoChartModel_x1_mul2,902 below · depth 21 - Galois invariance of the cusp section of the two-chart model
ModularCurve.XOneP.section_comp_eq_spec_comp_section_of_iotaFin_comp_eq_of_coeff_zero_twoChartModel_x1_mul5 below · depth 21 - Generic fibre of the two-chart model of X₁(Mp): smooth, geometrically integral
ModularCurve.XOneP.smoothOfRelativeDimension_one_and_geometricallyIntegral_baseChange_twoChartModel_x1_mul11 below · depth 21 - Trivial Weil pairing for classes reducing into the torus
ModularCurve.XOneP.weilDatum_pairing_eq_one_of_proj_eq_zero_of_points_valuationSubring_of_curveModel_igusa_twoChartModel_x1_mul3,869 below · depth 21 - Cusp at infinity as an A-section of the two-chart model
ModularCurve.exists_ringHom_section_comp_iotaInf_modelTo_of_coe_eq_coeffEmb_jq2 below · depth 21 - Endomorphism of Pic⁰ induces unique additive endomorphism of J
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.existsUnique_addMonoidHom_pts_comp_fst_eq_comp_of_mul_comp_of_baseChangeIso1 below · depth 22 - Semilinear group endomorphism induces a unique additive endomorphism of J
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.existsUnique_addMonoidHom_pts_comp_fst_eq_comp_of_semilinear_mul_comp_of_baseChangeIso1 below · depth 22 - Group endomorphism of Pic⁰ induces unique additive endomorphism
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.existsUnique_addMonoidHom_pts_eq_comp_of_mul_comp1 below · depth 22 - Morphisms from a local scheme factor through one chart
ModularCurve.TwoChart.exists_eq_specMap_comp_iotaFin_or_exists_eq_specMap_comp_iotaInf0 below · depth 22 - Finite surjective degeneracy map of two-chart models of X₁(Mp)
ModularCurve.TwoChart.exists_hom_modelTo_comp_eq_and_iotaFin_comp_eq_of_le_laurentBaseChange_x1FunctionField_mul9 below · depth 22 - The two two-chart models of the j-line agree over Spec A
ModularCurve.TwoChart.exists_iso_twoChartIntegralModel_hom_comp_toBase_eq_modelTo0 below · depth 22 - Two-chart model over A versus integral model over ℤ₍ₚ₎
ModularCurve.TwoChart.exists_iso_twoChartIntegralModel_ratLocalizedAt_of_isCyclotomicExtension2 below · depth 22 - Reading b'jⁿ=a in the function field of Z
ModularCurve.TwoChart.germToFunctionField_app_iotaInf_mul_germToFunctionField_app_iotaFin_pow_eq0 below · depth 22 - Frobenius pull-back acts as coefficientwise Frobenius on the Igusa component
ModularCurve.XOneP.addEquiv_eq_frob_smul_of_nonempty_poincare_pullbackAlong_iso_pullback_frobeniusTwist_fst_twoChartModel_x1_mul1,412 below · depth 22 - Eichler–Shimura on the cusp component: Uₚ reduces to p frob⁻¹
ModularCurve.XOneP.addEquiv_proj_fst_eq_natCast_smul_frob_inv_smul_of_pts_reduction_heckeGenOne_of_points_pic0Mk_valuationSubring_of_forall_mem_support_gaussReduces_twoChartModel_x1_mul1,520 below · depth 22 - Universal H⁰ equals the base for the X₁(Mp) two-chart model
ModularCurve.XOneP.bijective_algebraMap_sections_baseChange_twoChartModel_x1_mul2,901 below · depth 22 - Diamonds ⟨ d⟩, d≡ 1 (M), fix the gluing torus
ModularCurve.XOneP.comp_heckeHom_diamondGen_eq_of_comp_torus_specialFibre_of_representsRelSubPic_abelJacobi_twoChartModel_x1_mul2,995 below · depth 22 - Geometric fibres of the two-chart model of X₁(Mp) are connected
ModularCurve.XOneP.connectedSpace_pullback_modelTo_of_isAlgClosed_twoChartModel_x1_mul2,886 below · depth 22 - Triviality of the Gal(L/ℚ)-action on the toric part
ModularCurve.XOneP.eq_of_galois_of_postComp_eq_one_points_specialFibre_of_gaussReading_twoChartModel_x1_mul_of_abelJacobi1,268 below · depth 22 - Unique homomorphic factorisation through D₁×_k D₂
ModularCurve.XOneP.existsUnique_schemeHomOver_prodStr_comp_eq_of_comp_splitTorus_eq_one_specialFibre_baseChange_x1_mul2 below · depth 22 - Uₚ on the étale component J_E of the special fibre
ModularCurve.XOneP.exists_addEquiv_proj_snd_eq_of_pts_reduction_heckeGenOne_of_normFreePart_of_eichlerShimura_twoChartModel_x1_mul2 below · depth 22 - Residue-field twists act on J_E through a single additive map
ModularCurve.XOneP.exists_addMonoidHom_proj_snd_eq_of_pts_eq_spec_map_comp_specialFibre_twoChartModel_x1_mul1,207 below · depth 22 - Hecke endomorphisms act additively on the geometric special fibre
ModularCurve.XOneP.exists_addMonoidHom_pts_comp_eq_comp_and_eq_of_pts_reduction_specialFibre_twoChartModel_x1_mul5 below · depth 22 - Geometric base change of the two chart algebras of X₁(Mp)
ModularCurve.XOneP.exists_algEquiv_tensor_chartAlgFin_chartRing_and_chartAlgInf_x1FunctionFieldBar_twoChartModel_x1_mul5 below · depth 22 - First special-fibre component of X₁(Mp) is an Igusa model
ModularCurve.XOneP.exists_curveModel_igusaFunctionFieldX1C_iso_fst_twoChartModel_x1_mul1,217 below · depth 22 - Second special fibre component of X₁(Mp) is Igusa
ModularCurve.XOneP.exists_curveModel_igusaFunctionFieldX1C_iso_snd_twoChartModel_x1_mul1,217 below · depth 22 - Both special-fibre components are Igusa curves over k
ModularCurve.XOneP.exists_curveModel_igusaFunctionFieldX1C_iso_specialFibre_components_twoChartModel_x1_mul1,223 below · depth 22 - Diamond operators descend to both special-fibre components
ModularCurve.XOneP.exists_descent_diamondGen_of_coprime_specialFibre_components_of_abelJacobi_twoChartModel_x1_mul2,961 below · depth 22 - Diagonal descent of T_ℓ (ℓ≠ p) to the special fibre
ModularCurve.XOneP.exists_descent_heckeGenOne_of_ne_specialFibre_components_of_abelJacobi_twoChartModel_x1_mul3,243 below · depth 22 - Toric prime-to-p torsion classes of J₁(Mp) are γ· w-w
ModularCurve.XOneP.exists_forall_exists_eq_smul_sub_of_proj_eq_zero_of_points_valuationSubring_of_curveModel_igusa_twoChartModel_x1_mul3,837 below · depth 22 - Semilinear Galois action on the relative Picard model of X₁(Mp)
ModularCurve.XOneP.exists_galoisHom_pts_smul_eq_specMap_comp_comp_abelJacobi_of_representsRelSubPic_twoChartModel_x1_mul169 below · depth 22 - Galois twists of the two-chart model of X₁(Mp)
ModularCurve.XOneP.exists_galoisModelHom_comp_modelTo_eq_and_iotaFin_comp_eq_twoChartModel_x1_mul2 below · depth 22 - Common affine neighbourhoods in the smooth locus over an affine base
ModularCurve.XOneP.exists_isAffineOpen_of_finset_smoothLocus_twoChartModel_x1_mul5 below · depth 22 - Diamond automorphism of the two-chart model of X₁(Mp)
ModularCurve.XOneP.exists_iso_modelTo_eq_and_iotaFin_comp_eq_of_diamondAut_twoChartModel_x1_mul48 below · depth 22 - Prime-to-p divisibility of finite torsion classes in J₁(Mp)
ModularCurve.XOneP.exists_nsmul_eq_of_points_valuationSubring_of_curveModel_igusa_twoChartModel_x1_mul1,774 below · depth 22 - Good generators of the special fibre from cusp-component points
ModularCurve.XOneP.exists_place_schemeHomOver_valuationSubring_pts_reduction_proj_fst_eq_pic0Mk_proj_snd_eq_zero_of_notMem_range_crossings_of_mem_range_iotaFin_twoChartModel_x1_mul3,008 below · depth 22 - Points dictionary of the p-divisible group into J₁(Mp)
ModularCurve.XOneP.exists_points_injective_iff_normFreePart_galois_read_of_pDivisibleGroup_abelianSubscheme_twoChartModel_x1_mul0 below · depth 22 - Uₚ on the second Picard factor of the special fibre
ModularCurve.XOneP.exists_postComp_heckeGenOne_eq_apply_postComp_and_map_mul_and_bijective_points_snd_specialFibre_of_factors_normFreePart_of_gaussReading_twoChartModel_x1_mul3,528 below · depth 22 - Hensel lifting of k-points of D to Pl-points
ModularCurve.XOneP.exists_pts_reduction_and_exists_schemeHomOver_valuationSubring_of_pts_specialFibre_twoChartModel_x1_mul5 below · depth 22 - Affine split torus kernel in Pic⁰ of the special fibre
ModularCurve.XOneP.exists_relativeGroupLaw_isAffine_isClosedImmersion_iff_postComp_pullbackHom_eq_one_splitTorus_specialFibre_baseChange_x1_mul54 below · depth 22 - Kernel of special-fibre Picard projections: a split torus of rank n-1
ModularCurve.XOneP.exists_relativeGroupLaw_isClosedImmersion_iff_postComp_pullbackHom_eq_one_splitTorus_specialFibre_baseChange_x1_mul54 below · depth 22 - Points dictionary and Abel–Jacobi map for X₁(Mp)'s relative Pic⁰
ModularCurve.XOneP.exists_representsRelSubPic_abelJacobi_pts_of_representsRelSubPic_twoChartModel_x1_mul301 below · depth 22 - Reduction of an A-point meets one of two fibre components
ModularCurve.XOneP.exists_schemeHomOver_comp_eq_sectionBaseChange_or_of_isClosedImmersion_pair_specialFibre_twoChartModel_x1_mul0 below · depth 22 - Maximal smooth locus of the two-chart model of X₁(Mp)
ModularCurve.XOneP.exists_smoothLocus_maximal_twoChartModel_x1_mul0 below · depth 22 - Two-sided pools of étale multisections on the X₁(Mp) two-chart model
ModularCurve.XOneP.exists_twoSidedPool_smoothLocus_twoChartModel_x1_mul2,950 below · depth 22 - Chart functions read in a component of the special fibre
ModularCurve.XOneP.exists_valuationSubring_algEquiv_fractionRing_tensorProduct_apply_germ_eq_of_curveModel_component_twoChartModel_x1_mul23 below · depth 22 - 𝔽ₚ-models of special-fibre components and their relative Pic⁰
ModularCurve.XOneP.exists_zmodp_models_components_and_pic0_specialFibre_twoChartModel_x1_mul_of_poincare_iso2,244 below · depth 22 - Hecke generators as endomorphisms of the relative Pic⁰ model
ModularCurve.XOneP.forall_prime_exists_hom_mul_and_pts_heckeGenOne_smul_eq_comp_abelJacobi_of_representsRelSubPic_twoChartModel_x1_mul3,122 below · depth 22 - Rigidity of Hecke–diamond endomorphisms on the Jacobian model
ModularCurve.XOneP.heckeHom_eq_of_forall_smul_eq_and_diamondGen_congr_of_representsRelSubPic_twoChartModel_x1_mul4 below · depth 22 - Generating Pic⁰ of the Igusa curve by chart point differences
ModularCurve.XOneP.mem_closure_pic0Mk_single_pointEquivPlace_sub_single_of_notMem_range_crossings_of_mem_range_iotaFin_igusaModel_twoChartModel_x1_mul49 below · depth 22 - Galois twists respect the relative group law on D
ModularCurve.XOneP.mul_comp_galoisHom_eq_mul_comp_of_pts_smul_eq_comp_abelJacobi_of_representsRelSubPic_twoChartModel_x1_mul3 below · depth 22 - Triviality of sectioned algebraically trivial bundles on fibres of X₁(Mp)
ModularCurve.XOneP.nonempty_iso_unit_fibre_of_isAlgEquivZero_of_ne_zero_twoChartModel_x1_mul2,948 below · depth 22 - Frobenius twist commutes with restricting the Poincaré bundle
ModularCurve.XOneP.nonempty_poincare_pullbackAlong_postComp_pullbackHom_iso_pullback_obj_of_comp_fst_eq_frobenius_comp_twoChartModel_x1_mul10 below · depth 22 - Section at ∞ of the two-chart model of X₁(Mp)
ModularCurve.XOneP.nonempty_schemeHomOver_id_modelTo_twoChartModel_x1_mul2 below · depth 22 - Non-smooth closed fibre of the two-chart model of X₁(Mp)
ModularCurve.XOneP.not_smooth_pullback_snd_modelTo_of_not_injective_twoChartModel_x1_mul1,498 below · depth 22 - Galois action on points versus places for the twisted X₁(Mp) model
ModularCurve.XOneP.pointEquivPlace_eq_arithmeticGalois_smul_of_chartPin_of_galoisTwist_twoChartModel_x1_mul125 below · depth 22 - Frobenius twist of a point twists its Igusa place by `frobIg`
ModularCurve.XOneP.pointEquivPlace_eq_frob_smul_pointEquivPlace_of_comp_eq_frobenius_comp_of_gaussReading_twoChartModel_x1_mul1,197 below · depth 22 - Galois acts trivially on C₁, through a diamond on C₂
ModularCurve.XOneP.postComp_pullbackHom_galois_eq_and_postComp_diamond_comp_galoisInv_eq_of_gaussReading_specialFibre_twoChartModel_x1_mul_of_abelJacobi1,265 below · depth 22 - Reduction of Uₚ preserves the Néron special fibre torus
ModularCurve.XOneP.proj_eq_zero_of_proj_eq_zero_of_pts_reduction_heckeGenOne_of_surjective_residue_of_gaussReading_twoChartModel_x1_mul1,687 below · depth 22 - Triangularity of Uₚ on the Néron special fibre of J₁(Mp)
ModularCurve.XOneP.proj_snd_eq_zero_of_proj_snd_eq_zero_of_pts_reduction_heckeGenOne_of_surjective_residue_of_gaussReading_twoChartModel_x1_mul3,357 below · depth 22 - Diamond operator realised as Picard transport on the Jacobian model
ModularCurve.XOneP.pts_diamondGen_smul_eq_comp_transport_of_abelJacobi_of_diamondModelAut_twoChartModel_x1_mul170 below · depth 22 - A-sections of the X₁(Mp) model land in the smooth locus
ModularCurve.XOneP.range_section_subset_smoothLocus_twoChartModel_x1_mul2,891 below · depth 22 - Prime-to-p torsion with a Pl-integral point is inertia-fixed
ModularCurve.XOneP.smul_eq_self_of_mem_inertiaSubgroupIn_of_points_valuationSubring_of_curveModel_igusa_twoChartModel_x1_mul148 below · depth 22 - Bad geometric fibres of the two-chart model of X₁(Mp)
ModularCurve.XOneP.twoGluedSmoothCurveDegenerations_twoChartModel_x1_mul2,894 below · depth 22 - Component meeting the cusp ∞ has Gauss valuation ring
ModularCurve.XOneP.valuationSubring_eq_gauss_of_ringEquiv_stalk_germ_eq_of_section_eq_comp_iotaInf_twoChartModel_x1_mul1,745 below · depth 22 - Integrality of q-expansions on both charts after base change
ModularCurve.exists_coeffMap_eq_coe_of_mem_chartAlg_twoChartModel_laurentBaseChange1 below · depth 22 - Constant-term section at ∞ on the j⁻¹-chart
ModularCurve.exists_ringHom_chartAlgInf_algebraMap_eq_coeff_zero_of_coe_eq_coeffEmb_jq0 below · depth 22 - Tate module map induced by an equivariant points dictionary
PDivisibleGroup.exists_linearMap_tateModule_jOne_apply_injective_range_galois_of_injective_of_forall_iff1 below · depth 22 - Transport along W commutes with base-change projection on points
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.postComp_transport_comp_fst_eq_comp_transport_of_baseChangeIso10 below · depth 23 - Sections of a regular proper flat curve over a DVR land in the maximal smooth locus
AlgebraicGeometry.range_subset_of_isRegularLocalRing_of_smoothOfRelativeDimension_maximal5 below · depth 23 - Abel–Jacobi commutes with reduction onto the Igusa component
ModularCurve.XOneP.addEquiv_proj_fst_eq_pic0Mk_mapDomain_of_points_eq_reduction_of_surjective_residue_of_forall_mem_support_exists_section_twoChartModel_x1_mul1,437 below · depth 23 - Igusa-component class of the reduction of 𝒪(ξ₁)⊗𝒪(ξ₂)⁻¹
ModularCurve.XOneP.addEquiv_proj_fst_eq_pic0Mk_single_sub_single_of_points_eq_reduction_of_poincare_iso_ofPoint_valuationSubring_twoChartModel_x1_mul291 below · depth 23 - Abel–Jacobi commutes with reduction onto the étale component
ModularCurve.XOneP.addEquiv_proj_snd_eq_pic0Mk_mapDomain_of_points_eq_reduction_of_surjective_residue_of_forall_mem_support_exists_section_twoChartModel_x1_mul1,437 below · depth 23 - Galois model automorphism acts trivially on the Gauss component
ModularCurve.XOneP.comp_fibreAut_eq_of_galoisModelAut_of_gaussPin_twoChartModel_x1_mul1,184 below · depth 23 - Inertia-twisted diamond is trivial on the Igusa branch
ModularCurve.XOneP.comp_fibreIso_eq_of_diamondModelAut_galoisModelHom_of_gaussPin_twoChartModel_x1_mul1,197 below · depth 23 - Uniqueness of the minimal special-fibre point over a valuation point
ModularCurve.XOneP.eq_of_forall_specializes_imp_eq_of_ringEquiv_stalk_of_fst_eq_twoChartModel_x1_mul1,184 below · depth 23 - Hecke degeneracies preserve special-fibre components for ℓ ≠ p
ModularCurve.XOneP.exists_comp_eq_fst_comp_heckeDegeneracy_baseChange_of_ne_specialFibre_components_twoChartModel_x1_mul3,025 below · depth 23 - Étale entry of Uₚ on good generators of J_E
ModularCurve.XOneP.exists_coprime_algEquiv_finset_addMonoidHom_proj_snd_heckeGenOne_eq_symm_frob_smul_and_proj_snd_diamondGen_eq_smul_of_pic0Mk_single_sub_single_snd_specialFibre_twoChartModel_x1_mul_of_atkinLehner_of_diamondConj3,174 below · depth 23 - Igusa reading of the second special-fibre component via σ
ModularCurve.XOneP.exists_curveModel_iso_snd_gaussReading_algEquiv_of_gaussReading_fst_twoChartModel_x1_mul1,225 below · depth 23 - Base change of a semilinear automorphism to the geometric fibre
ModularCurve.XOneP.exists_fibreIso_comp_fst_eq_of_modelHom_comp_modelTo_eq_of_algebraMap_smul_eq_twoChartModel_x1_mul0 below · depth 23 - Inertia-invariant prime-to-p torsion of J₁(Mp) bounded by its finite part
ModularCurve.XOneP.exists_forall_natCard_torsion_inertiaInvariants_le_mul_natCard_points_valuationSubring_of_curveModel_igusa_twoChartModel_x1_mul3,235 below · depth 23 - Hecke degeneracy pair on the two-chart model of X₁(Mp)
ModularCurve.XOneP.exists_heckeDegeneracyPair_chartPin_flat_twoChartModel_x1_mul253 below · depth 23 - Level-p Hecke divisor of a Gauss-reducing place of X₁(Mp)
ModularCurve.XOneP.exists_heckeDivOneBar_single_eq_sum_and_red_eq_frob_inv_smul_of_gaussReduces_of_surjective_residue_twoChartModel_x1_mul1,242 below · depth 23 - Hecke endomorphism T_ℓ of the relative Pic⁰ of X₁(Mp)
ModularCurve.XOneP.exists_hom_classifies_norm_pullback_poincare_heckeDegeneracyPair_twoChartModel_x1_mul403 below · depth 23 - Gauss centre on the j-finite chart specialises to the cusp
ModularCurve.XOneP.exists_iotaFin_specializes_section_closedPoint_and_iff_mem_nonunits_gauss_twoChartModel_x1_mul4 below · depth 23 - Diamond ⟨ d⟩ preserves components and crossings mod p
ModularCurve.XOneP.exists_iso_comp_eq_and_comp_eq_of_crossing_specialFibre_of_apply_eq_diamondAut_twoChartModel_x1_mul2,924 below · depth 23 - Diamond model automorphism preserves both special-fibre components
ModularCurve.XOneP.exists_iso_comp_eq_specialFibre_components_of_apply_eq_diamondAut_of_coprime_twoChartModel_x1_mul2,912 below · depth 23 - A level-p involution swapping bad-fibre components of X₁(Mp)
ModularCurve.XOneP.exists_iso_modelTo_swap_components_twoChartModel_x1_mul2,910 below · depth 23 - Component Jacobians of the special fibre descend to 𝔽ₚ
ModularCurve.XOneP.exists_iso_pic0_baseChange_and_descent_projections_specialFibre_twoChartModel_x1_mul10 below · depth 23 - Components of the geometric special fibre over chart primes
ModularCurve.XOneP.exists_mem_minimalPrimes_iotaFin_eq_and_eq_of_isDomain_tensorProduct_quotient_specialFibre_twoChartModel_x1_mul127 below · depth 23 - One-sided pools of étale multisections on the ε-component
ModularCurve.XOneP.exists_oneSidedPool_smoothLocus_twoChartModel_x1_mul2,935 below · depth 23 - Inertia displacements on J₁(Mp) reduce into the toric part
ModularCurve.XOneP.exists_points_valuationSubring_and_proj_eq_zero_smul_sub_self_of_mem_inertia_of_curveModel_igusa_twoChartModel_x1_mul3,106 below · depth 23 - Galois transport of Pic⁰ on the special fibre
ModularCurve.XOneP.exists_postComp_eq_of_comp_fst_eq_comp_galoisTransport_of_classifies_fibre_twoChartModel_x1_mul9 below · depth 23 - Pl-point of relative Pic⁰ representing 𝒪(ξ₁)⊗𝒪(ξ₂)⁻¹
ModularCurve.XOneP.exists_schemeHomOver_poincare_iso_ofPoint_tensor_idealModule_of_reduction_fst_valuationSubring_twoChartModel_x1_mul1,411 below · depth 23 - Hensel lifting of off-crossing k-points of the second component
ModularCurve.XOneP.exists_schemeHomOver_valuationSubring_reduction_eq_and_generic_eq_pointEquivPlace_of_notMem_range_crossings_snd_twoChartModel_x1_mul2,894 below · depth 23 - Henselian lift of a k-point off the crossings
ModularCurve.XOneP.exists_schemeHomOver_valuationSubring_reduction_eq_and_generic_eq_pointEquivPlace_of_notMem_range_crossings_twoChartModel_x1_mul2,894 below · depth 23 - Divisibility of toric torsion classes on J₁(Mp)
ModularCurve.XOneP.exists_toric_nsmul_eq_of_toric_of_points_valuationSubring_of_curveModel_igusa_twoChartModel_x1_mul1,736 below · depth 23 - Geometric closed fibres of the two-chart model of X₁(Mp)
ModularCurve.XOneP.exists_twoGluedSmoothCurves_isReduced_pullback_twoChartModel_x1_mul_of_ker_ne_bot2,901 below · depth 23 - Special-fibre stalks of the X₁(Mp) two-chart model are valuation rings
ModularCurve.XOneP.exists_valuationSubring_ringEquiv_stalk_apply_germ_eq_of_ringKrullDim_le_one_twoChartIntegralModel_x1_mul14 below · depth 23 - Components of the special fibre of X₁(Mp) descend to 𝔽ₚ
ModularCurve.XOneP.exists_zmodp_curves_isPullback_components_specialFibre_twoChartModel_x1_mul1,750 below · depth 23 - Finite and toric parts of J₁(Mp) form subgroups
ModularCurve.XOneP.finitePart_toricPart_zero_mem_add_mem_neg_mem_sub_mem_points_valuationSubring_twoChartModel_x1_mul2 below · depth 23 - Finite surjective maps onto a regular two-chart model are flat
ModularCurve.XOneP.flat_and_locallyOfFinitePresentation_of_isRegularLocalRing_of_isFinite_heckeRoof_twoChartModel_x1_mul31 below · depth 23 - Crossings in a geometric fibre lie in the j-finite chart
ModularCurve.XOneP.fst_mem_chartFinOpen_of_mem_irreducibleComponents_pair_specialFibre_twoChartModel_x1_mul1,738 below · depth 23 - Pinned Galois transport on relative Pic⁰ equals τ(s)
ModularCurve.XOneP.galoisHom_eq_of_classifies_rigidify_pullback_of_modelHom_inv_twoChartModel_x1_mul_of_abelJacobi173 below · depth 23 - Germ of a uniformiser and stalk dimension at a component's generic point
ModularCurve.XOneP.germ_mem_maximalIdeal_and_ringKrullDim_stalk_le_one_of_isGenericPoint_component_twoChartModel_x1_mul12 below · depth 23 - Pic⁰ of the Igusa field generated by differences of chart points
ModularCurve.XOneP.mem_closure_pic0Mk_single_pointEquivPlace_sub_single_of_notMem_range_crossings_of_mem_range_iotaFin_of_notMem_finset_igusaModel_snd_twoChartModel_x1_mul49 below · depth 23 - Toric and finite m-torsion counts for J₁(Mp) at p
ModularCurve.XOneP.natCard_toricTorsion_mul_natCard_finiteTorsion_eq_natCard_torsion_jOne_of_curveModel_igusa_twoChartModel_x1_mul_of_not_dvd2,063 below · depth 23 - Monodromy bound for ℓ-power torsion on J₁(Mp)
ModularCurve.XOneP.natCard_torsion_le_natCard_image_smul_sub_mul_natCard_inertiaInvariants_of_forall_smul_sub_toric_of_curveModel_igusa_twoChartModel_x1_mul0 below · depth 23
… and 147 more statements (search for the module name to find them).