Definitions/Def_ModularCurve_IgusaScheme.lean
Igusa integral model of over
Fix N \ge 1 and a prime \ell. Write \mathbb{Z}_{(\ell)} for GaloisRep.ratLocalizedAt ℓ, the subring of \mathbb{Q} of rationals whose denominator is coprime to \ell, and F for modularFunctionFieldFull N, the subfield of \mathbb{Q}((q)) generated over \mathbb{Q} by the series j(q^d) for the divisors d of N; F is made a \mathbb{Z}_{(\ell)}-algebra through \mathbb{Z}_{(\ell)} \to \mathbb{Q} \to F. The element jFull N is the q-expansion j(q) viewed in F, and it is nonzero (its coefficient in degree -1 is 1).
For a subset S \subseteq F, chartAlg N ℓ S is the \mathbb{Z}_{(\ell)}-subalgebra of F consisting of the elements integral over \mathbb{Z}_{(\ell)}[S]; it contains \mathbb{Z}_{(\ell)}[S] and is monotone in S, with chartIncl the induced injective inclusions. Taking S = \{j\}, \{j^{-1}\}, \{j, j^{-1}\} gives chartAlgFin, chartAlgInf, chartAlgMid. A denominator-clearing argument (a monic equation is rescaled by a power of j via Polynomial.scaleRoots) shows that chartAlgMid is the localization of chartAlgFin away from j, and also the localization of chartAlgInf away from j^{-1}; consequently the two morphisms fFin, fInf from XMid = \operatorname{Spec} chartAlgMid to XFin, XInf are open immersions.
ModularCurve.IgusaScheme N ℓ is defined as the pushout of fFin and fInf in schemes. Its two structure maps ιFin, ιInf are open immersions satisfying the gluing identity glue_condition, the morphism igusaTo to \operatorname{Spec}\mathbb{Z}_{(\ell)} is obtained from the two structure maps of the charts, and chartFinOpen, chartInfOpen are the corresponding affine open subschemes, which cover the whole space (igusaCover).
Relation to Mathlib
Mathlib has no integral model of a modular curve; the construction here is the project's own, built from Mathlib's Spec, pushouts of schemes, IsLocalization.Away and IsOpenImmersion. The base ring \mathbb{Z}_{(\ell)} is the project's subring GaloisRep.ratLocalizedAt of \mathbb{Q} rather than a Mathlib localization.
Where it is used
This provides the scheme over \mathbb{Z}_{(\ell)} on which the arithmetic of X_0(N) at the prime \ell is formulated: the normalisation of \mathbb{P}^1_{\mathbb{Z}_{(\ell)}} in the function field F along the j-line, presented by two affine charts over j and j^{-1}. It underlies the geometric statements about reduction of modular curves and their Jacobians used in the level-lowering part of the argument.
References
- J. Igusa, Kroneckerian model of fields of elliptic modular functions, American Journal of Mathematics 81 (1959), 561–577
- P. Deligne and M. Rapoport, Les schémas de modules de courbes elliptiques, in: Modular Functions of One Variable II, Lecture Notes in Mathematics 349, Springer, 1973, 143–316
- N. M. Katz and B. Mazur, Arithmetic Moduli of Elliptic Curves, Annals of Mathematics Studies 108, Princeton University Press, 1985
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 325 lines
- 54 declarations
- used in the statements of 158 theorems and imported by 183 proofs
- imports 2 definition modules
Source file: Definitions/Def_ModularCurve_IgusaScheme.lean
Declarations
- instance
ModularCurve.IgusaScheme.igusaAlgebra - instance
ModularCurve.IgusaScheme.igusaScalarTower - def
ModularCurve.IgusaScheme.jFull - theorem
ModularCurve.IgusaScheme.coe_jFull - theorem
ModularCurve.IgusaScheme.jFull_ne_zero - instance
ModularCurve.IgusaScheme.fact_jFull_ne_zero - def
ModularCurve.IgusaScheme.chartAlg - theorem
ModularCurve.IgusaScheme.mem_chartAlg_iff - theorem
ModularCurve.IgusaScheme.adjoin_le_chartAlg - theorem
ModularCurve.IgusaScheme.subset_chartAlg - theorem
ModularCurve.IgusaScheme.chartAlg_mono - abbrev
ModularCurve.IgusaScheme.chartIncl - theorem
ModularCurve.IgusaScheme.coe_chartIncl - theorem
ModularCurve.IgusaScheme.chartIncl_injective - theorem
ModularCurve.IgusaScheme.exists_pow_mul_mem_adjoin - theorem
ModularCurve.IgusaScheme.exists_pow_mul_mem_chartAlg - theorem
ModularCurve.IgusaScheme.sFin_subset - theorem
ModularCurve.IgusaScheme.sInf_subset - abbrev
ModularCurve.IgusaScheme.chartAlgFin - abbrev
ModularCurve.IgusaScheme.chartAlgInf - abbrev
ModularCurve.IgusaScheme.chartAlgMid - def
ModularCurve.IgusaScheme.jChartFin - def
ModularCurve.IgusaScheme.jInvChartInf - theorem
ModularCurve.IgusaScheme.coe_jChartFin - theorem
ModularCurve.IgusaScheme.coe_jInvChartInf - abbrev
ModularCurve.IgusaScheme.inclFin - abbrev
ModularCurve.IgusaScheme.inclInf - theorem
ModularCurve.IgusaScheme.isUnit_inclFin_jChartFin - theorem
ModularCurve.IgusaScheme.isUnit_inclInf_jInvChartInf - theorem
ModularCurve.IgusaScheme.isLocalization_away_inclFin - theorem
ModularCurve.IgusaScheme.isLocalization_away_inclInf - abbrev
ModularCurve.IgusaScheme.XFin - abbrev
ModularCurve.IgusaScheme.XInf - abbrev
ModularCurve.IgusaScheme.XMid - abbrev
ModularCurve.IgusaScheme.fFin - abbrev
ModularCurve.IgusaScheme.fInf - instance
ModularCurve.IgusaScheme.isOpenImmersion_fFin - instance
ModularCurve.IgusaScheme.isOpenImmersion_fInf - def
ModularCurve.IgusaScheme - def
ModularCurve.IgusaScheme.ιFin - def
ModularCurve.IgusaScheme.ιInf - theorem
ModularCurve.IgusaScheme.glue_condition - instance
ModularCurve.IgusaScheme.isOpenImmersion_ιFin - instance
ModularCurve.IgusaScheme.isOpenImmersion_ιInf - theorem
ModularCurve.IgusaScheme.fFin_toBase_eq_fInf_toBase - def
ModularCurve.IgusaScheme.igusaTo - theorem
ModularCurve.IgusaScheme.ιFin_igusaTo - theorem
ModularCurve.IgusaScheme.ιInf_igusaTo - theorem
ModularCurve.IgusaScheme.mem_range_ιFin_or_mem_range_ιInf - def
ModularCurve.IgusaScheme.chartFinOpen - def
ModularCurve.IgusaScheme.chartInfOpen - theorem
ModularCurve.IgusaScheme.isAffineOpen_chartFinOpen - theorem
ModularCurve.IgusaScheme.isAffineOpen_chartInfOpen - theorem
ModularCurve.IgusaScheme.igusaCover
Source
import Mathlib.AlgebraicGeometry.Morphisms.Smooth ↗ import Mathlib.AlgebraicGeometry.Morphisms.Proper ↗ import Mathlib.AlgebraicGeometry.Limits ↗ import Mathlib.RingTheory.DedekindDomain.IntegralClosure ↗ import Mathlib.RingTheory.Localization.Integral ↗ import Mathlib.RingTheory.Polynomial.ScaleRoots ↗ import Mathlib.Algebra.Polynomial.Lifts ↗ import Definitions.Def_ModularCurve_X0 import Definitions.Def_GaloisRep_Flat set_option autoImplicit false noncomputable section open CategoryTheory CategoryTheory.Limits AlgebraicGeometry Polynomial namespace ModularCurve namespace IgusaScheme variable (N : ℕ) [NeZero N] (ℓ : ℕ) [Fact ℓ.Prime] scoped instance igusaAlgebra : Algebra ↥(GaloisRep.ratLocalizedAt ℓ) ↥(modularFunctionFieldFull N) := ((algebraMap ℚ ↥(modularFunctionFieldFull N)).comp (algebraMap ↥(GaloisRep.ratLocalizedAt ℓ) ℚ)).toAlgebra scoped instance igusaScalarTower : IsScalarTower ↥(GaloisRep.ratLocalizedAt ℓ) ℚ ↥(modularFunctionFieldFull N) := IsScalarTower.of_algebraMap_eq' rfl set_option quotPrecheck false in local notation "ℤℓ" => ↥(GaloisRep.ratLocalizedAt ℓ) set_option quotPrecheck false in local notation "F" => ↥(modularFunctionFieldFull N) def jFull : F := ⟨jq, modularFunctionField_le_full N (jq_mem N)⟩ @[simp] theorem coe_jFull : (jFull N : LaurentSeries ℚ) = jq := rfl theorem jFull_ne_zero : jFull N ≠ 0 := fun h => jq_ne_zero (by simpa using congrArg Subtype.val h) instance fact_jFull_ne_zero : Fact (jFull N ≠ 0) := ⟨jFull_ne_zero N⟩ def chartAlg (S : Set F) : Subalgebra ℤℓ F where carrier := {x | IsIntegral (Algebra.adjoin ℤℓ 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 ℤℓ S) (algebraMap (Algebra.adjoin ℤℓ S) F (algebraMap ℤℓ (Algebra.adjoin ℤℓ S) a)) := isIntegral_algebraMap simpa [← IsScalarTower.algebraMap_apply] using this theorem mem_chartAlg_iff {S : Set F} {x : F} : x ∈ chartAlg N ℓ S ↔ IsIntegral (Algebra.adjoin ℤℓ S) x := Iff.rfl theorem adjoin_le_chartAlg (S : Set F) : Algebra.adjoin ℤℓ S ≤ chartAlg N ℓ S := fun x hx => by rw [mem_chartAlg_iff] exact isIntegral_algebraMap (x := (⟨x, hx⟩ : Algebra.adjoin ℤℓ S)) theorem subset_chartAlg (S : Set F) : S ⊆ (chartAlg N ℓ S : Set F) := fun _ hx => adjoin_le_chartAlg N ℓ S (Algebra.subset_adjoin hx) theorem chartAlg_mono {S S' : Set F} (h : S ⊆ S') : chartAlg N ℓ S ≤ chartAlg N ℓ 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 F) (by ext; rfl) abbrev chartIncl {S S' : Set F} (h : S ⊆ S') : chartAlg N ℓ S →ₐ[ℤℓ] chartAlg N ℓ S' := Subalgebra.inclusion (chartAlg_mono N ℓ h) theorem coe_chartIncl {S S' : Set F} (h : S ⊆ S') (x : chartAlg N ℓ S) : (chartIncl N ℓ h x : F) = x := Subalgebra.coe_inclusion _ x theorem chartIncl_injective {S S' : Set F} (h : S ⊆ S') : Function.Injective (chartIncl N ℓ h) := Subalgebra.inclusion_injective _ variable {N ℓ} theorem exists_pow_mul_mem_adjoin {S : Set F} {s : F} (hs : s ∈ S) (hs0 : s ≠ 0) {x : F} (hx : x ∈ Algebra.adjoin ℤℓ (insert s⁻¹ S)) : ∃ n : ℕ, s ^ n * x ∈ Algebra.adjoin ℤℓ S := by have hsA : s ∈ Algebra.adjoin ℤℓ 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 F} {s : F} (hs : s ∈ S) (hs0 : s ≠ 0) {x : F} (hx : x ∈ chartAlg N ℓ (insert s⁻¹ S)) : ∃ n : ℕ, s ^ n * x ∈ chartAlg N ℓ S := by classical obtain ⟨p, hmonic, hroot⟩ := (mem_chartAlg_iff N ℓ).mp hx have hcoeff : ∀ i, ∃ n : ℕ, s ^ n * (p.coeff i : F) ∈ Algebra.adjoin ℤℓ 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 : F[X] := (p.map (algebraMap (Algebra.adjoin ℤℓ (insert s⁻¹ S)) F)).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 ℤℓ 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 : F) * (s ^ k * s ^ n i) = s ^ k * (s ^ n i * (p.coeff i : F)) 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 ℤℓ S) F) := (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 N ℓ).mpr ⟨q', hq'monic, ?_⟩⟩ rw [Polynomial.eval₂_eq_eval_map, hq'q, hqroot] variable (N ℓ) theorem sFin_subset : ({jFull N} : Set F) ⊆ {jFull N, (jFull N)⁻¹} := Set.singleton_subset_iff.mpr (Set.mem_insert _ _) theorem sInf_subset : ({(jFull N)⁻¹} : Set F) ⊆ {jFull N, (jFull N)⁻¹} := Set.singleton_subset_iff.mpr (Set.mem_insert_of_mem _ rfl) abbrev chartAlgFin : Subalgebra ℤℓ F := chartAlg N ℓ {jFull N} abbrev chartAlgInf : Subalgebra ℤℓ F := chartAlg N ℓ {(jFull N)⁻¹} abbrev chartAlgMid : Subalgebra ℤℓ F := chartAlg N ℓ {jFull N, (jFull N)⁻¹} def jChartFin : chartAlgFin N ℓ := ⟨jFull N, subset_chartAlg N ℓ _ rfl⟩ def jInvChartInf : chartAlgInf N ℓ := ⟨(jFull N)⁻¹, subset_chartAlg N ℓ _ rfl⟩ @[simp] theorem coe_jChartFin : (jChartFin N ℓ : F) = jFull N := rfl @[simp] theorem coe_jInvChartInf : (jInvChartInf N ℓ : F) = (jFull N)⁻¹ := rfl abbrev inclFin : chartAlgFin N ℓ →ₐ[ℤℓ] chartAlgMid N ℓ := chartIncl N ℓ (sFin_subset N) abbrev inclInf : chartAlgInf N ℓ →ₐ[ℤℓ] chartAlgMid N ℓ := chartIncl N ℓ (sInf_subset N) theorem isUnit_inclFin_jChartFin : IsUnit (inclFin N ℓ (jChartFin N ℓ)) := by refine .of_mul_eq_one ⟨(jFull N)⁻¹, subset_chartAlg N ℓ _ (by simp)⟩ (Subtype.ext ?_) rw [Subalgebra.coe_mul, Subalgebra.coe_one, coe_chartIncl, coe_jChartFin] exact mul_inv_cancel₀ (jFull_ne_zero N) theorem isUnit_inclInf_jInvChartInf : IsUnit (inclInf N ℓ (jInvChartInf N ℓ)) := by refine .of_mul_eq_one ⟨jFull N, subset_chartAlg N ℓ _ (by simp)⟩ (Subtype.ext ?_) rw [Subalgebra.coe_mul, Subalgebra.coe_one, coe_chartIncl, coe_jInvChartInf] exact inv_mul_cancel₀ (jFull_ne_zero N) theorem isLocalization_away_inclFin : letI := (inclFin N ℓ).toRingHom.toAlgebra IsLocalization.Away (jChartFin N ℓ) (chartAlgMid N ℓ) := by letI := (inclFin N ℓ).toRingHom.toAlgebra refine (isLocalization_iff _ _).mpr ⟨?_, ?_, ?_⟩ · rintro ⟨_, n, rfl⟩ rw [RingHom.algebraMap_toAlgebra, map_pow] exact (isUnit_inclFin_jChartFin N ℓ).pow n · intro z have hz : (z : F) ∈ chartAlg N ℓ (insert (jFull N)⁻¹ {jFull N}) := by rw [show insert (jFull N)⁻¹ ({jFull N} : Set F) = {jFull N, (jFull N)⁻¹} from Set.pair_comm _ _] exact z.2 obtain ⟨n, hn⟩ := exists_pow_mul_mem_chartAlg (Set.mem_singleton _) (jFull_ne_zero N) hz refine ⟨(⟨(jFull N) ^ n * z, hn⟩, ⟨jChartFin N ℓ ^ 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 N ℓ _ h] theorem isLocalization_away_inclInf : letI := (inclInf N ℓ).toRingHom.toAlgebra IsLocalization.Away (jInvChartInf N ℓ) (chartAlgMid N ℓ) := by letI := (inclInf N ℓ).toRingHom.toAlgebra refine (isLocalization_iff _ _).mpr ⟨?_, ?_, ?_⟩ · rintro ⟨_, n, rfl⟩ rw [RingHom.algebraMap_toAlgebra, map_pow] exact (isUnit_inclInf_jInvChartInf N ℓ).pow n · intro z have hz : (z : F) ∈ chartAlg N ℓ (insert (jFull N)⁻¹⁻¹ {(jFull N)⁻¹}) := by rw [inv_inv]; exact z.2 obtain ⟨n, hn⟩ := exists_pow_mul_mem_chartAlg (Set.mem_singleton _) (inv_ne_zero (jFull_ne_zero N)) hz refine ⟨(⟨(jFull N)⁻¹ ^ n * z, hn⟩, ⟨jInvChartInf N ℓ ^ 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 N ℓ _ h] abbrev XFin : Scheme.{0} := Spec (CommRingCat.of (chartAlgFin N ℓ)) abbrev XInf : Scheme.{0} := Spec (CommRingCat.of (chartAlgInf N ℓ)) abbrev XMid : Scheme.{0} := Spec (CommRingCat.of (chartAlgMid N ℓ)) abbrev fFin : XMid N ℓ ⟶ XFin N ℓ := Spec.map (CommRingCat.ofHom (inclFin N ℓ).toRingHom) abbrev fInf : XMid N ℓ ⟶ XInf N ℓ := Spec.map (CommRingCat.ofHom (inclInf N ℓ).toRingHom) instance isOpenImmersion_fFin : IsOpenImmersion (fFin N ℓ) := by letI := (inclFin N ℓ).toRingHom.toAlgebra haveI := isLocalization_away_inclFin N ℓ exact IsOpenImmersion.of_isLocalization (jChartFin N ℓ) instance isOpenImmersion_fInf : IsOpenImmersion (fInf N ℓ) := by letI := (inclInf N ℓ).toRingHom.toAlgebra haveI := isLocalization_away_inclInf N ℓ exact IsOpenImmersion.of_isLocalization (jInvChartInf N ℓ) def _root_.ModularCurve.IgusaScheme : Scheme.{0} := pushout (fFin N ℓ) (fInf N ℓ) def ιFin : XFin N ℓ ⟶ ModularCurve.IgusaScheme N ℓ := pushout.inl (fFin N ℓ) (fInf N ℓ) def ιInf : XInf N ℓ ⟶ ModularCurve.IgusaScheme N ℓ := pushout.inr (fFin N ℓ) (fInf N ℓ) theorem glue_condition : fFin N ℓ ≫ ιFin N ℓ = fInf N ℓ ≫ ιInf N ℓ := pushout.condition instance isOpenImmersion_ιFin : IsOpenImmersion (ιFin N ℓ) := (Scheme.IsLocallyDirected.openCover (span (fFin N ℓ) (fInf N ℓ))).map_prop WalkingSpan.left instance isOpenImmersion_ιInf : IsOpenImmersion (ιInf N ℓ) := (Scheme.IsLocallyDirected.openCover (span (fFin N ℓ) (fInf N ℓ))).map_prop WalkingSpan.right theorem fFin_toBase_eq_fInf_toBase : fFin N ℓ ≫ Spec.map (CommRingCat.ofHom (algebraMap ℤℓ (chartAlgFin N ℓ))) = fInf N ℓ ≫ Spec.map (CommRingCat.ofHom (algebraMap ℤℓ (chartAlgInf N ℓ))) := by have h : (inclFin N ℓ).toRingHom.comp (algebraMap ℤℓ (chartAlgFin N ℓ)) = (inclInf N ℓ).toRingHom.comp (algebraMap ℤℓ (chartAlgInf N ℓ)) := RingHom.ext fun a => ((inclFin N ℓ).commutes a).trans ((inclInf N ℓ).commutes a).symm simp only [← Spec.map_comp, ← CommRingCat.ofHom_comp, h] def igusaTo : ModularCurve.IgusaScheme N ℓ ⟶ Spec (CommRingCat.of ℤℓ) := pushout.desc (Spec.map (CommRingCat.ofHom (algebraMap ℤℓ (chartAlgFin N ℓ)))) (Spec.map (CommRingCat.ofHom (algebraMap ℤℓ (chartAlgInf N ℓ)))) (fFin_toBase_eq_fInf_toBase N ℓ) @[reassoc (attr := simp)] theorem ιFin_igusaTo : ιFin N ℓ ≫ igusaTo N ℓ = Spec.map (CommRingCat.ofHom (algebraMap ℤℓ (chartAlgFin N ℓ))) := pushout.inl_desc _ _ _ @[reassoc (attr := simp)] theorem ιInf_igusaTo : ιInf N ℓ ≫ igusaTo N ℓ = Spec.map (CommRingCat.ofHom (algebraMap ℤℓ (chartAlgInf N ℓ))) := pushout.inr_desc _ _ _ theorem mem_range_ιFin_or_mem_range_ιInf (x : ModularCurve.IgusaScheme N ℓ) : x ∈ Set.range (ιFin N ℓ).base ∨ x ∈ Set.range (ιInf N ℓ).base := by obtain ⟨i, y, hy⟩ := (Scheme.IsLocallyDirected.openCover (span (fFin N ℓ) (fInf N ℓ))).exists_eq x rcases i with (_ | _ | _) · have hw : (Scheme.IsLocallyDirected.openCover (span (fFin N ℓ) (fInf N ℓ))).f none = fFin N ℓ ≫ ιFin N ℓ := (colimit.w (span (fFin N ℓ) (fInf N ℓ)) WalkingSpan.Hom.fst).symm refine Or.inl ⟨(fFin N ℓ).base y, ?_⟩ rw [← hy, hw]; rfl · exact Or.inl ⟨y, hy⟩ · exact Or.inr ⟨y, hy⟩ def chartFinOpen : (ModularCurve.IgusaScheme N ℓ).Opens := (ιFin N ℓ).opensRange def chartInfOpen : (ModularCurve.IgusaScheme N ℓ).Opens := (ιInf N ℓ).opensRange theorem isAffineOpen_chartFinOpen : IsAffineOpen (chartFinOpen N ℓ) := isAffineOpen_opensRange (ιFin N ℓ) theorem isAffineOpen_chartInfOpen : IsAffineOpen (chartInfOpen N ℓ) := isAffineOpen_opensRange (ιInf N ℓ) theorem igusaCover : chartFinOpen N ℓ ⊔ chartInfOpen N ℓ = ⊤ := by rw [chartFinOpen, chartInfOpen, ← TopologicalSpace.Opens.coe_inj] ext x simpa using mem_range_ιFin_or_mem_range_ιInf N ℓ x end IgusaScheme end ModularCurve end
Statements phrased using this module (158)
- Igusa's model of X₀(M) as the H=top two-chart model
ModularCurve.exists_iso_igusaScheme_xHDRLevel_X_gammaH_top188 below · depth 12 - Reduced fibres of a two-chart integral model over ℤ₍ₚ₎
AlgebraicCurve.TwoChartIntegralModel.isReduced_pullback_toBase_of_isReduced_chartAlg_quotient_span_natCast5 below · depth 13 - Base change of Igusa chart rings to a place over ℓ ∤ N
ModularCurve.IgusaScheme.exists_algHom_tensor_chartAlg_injective_isIntegrallyClosed180 below · depth 13 - Chart-pinned curve model of the Igusa scheme's geometric generic fibre
ModularCurve.IgusaScheme.exists_curveModel_iso_genericFibre_galoisCompat_chartPin144 below · depth 13 - Igusa chart algebras inside a fibre model with cusp chart
ModularCurve.IgusaScheme.exists_fibreModel_cuspChart_of_chartAlg743 below · depth 13 - Igusa's model of X₀(N₀) over ℤ₍ₚ₎, pinned
ModularCurve.IgusaScheme.exists_finiteMapData_ratCurveModel_igusaTo1,159 below · depth 13 - Finite type of the two Igusa chart algebras over ℤ_{(ℓ)}
ModularCurve.IgusaScheme.finiteType_chartAlgFin_and_chartAlgInf120 below · depth 13 - Flatness of the two-chart Igusa scheme over ℤ_{(ℓ)}
ModularCurve.IgusaScheme.flat_igusaTo1 below · depth 13 - Integrality of the two-chart Igusa scheme
ModularCurve.IgusaScheme.isIntegral0 below · depth 13 - Normality of the Igusa two-chart model on affine opens
ModularCurve.IgusaScheme.isIntegrallyClosed_sections_of_isAffineOpen5 below · depth 13 - Properness of the two-chart Igusa scheme over ℤ_{(ℓ)}
ModularCurve.IgusaScheme.isProper_igusaTo1 below · depth 13 - Geometric reducedness of the fibres of the Igusa scheme at level Np
ModularCurve.IgusaScheme.isReduced_pullback_igusaTo_specMap_of_not_dvd134 below · depth 13 - Igusa's two-chart model is locally of finite presentation
ModularCurve.IgusaScheme.locallyOfFinitePresentation_igusaTo122 below · depth 13 - Generic fibre of the Igusa scheme is smooth and geometrically integral
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_and_geometricallyIntegral_pullback_snd_igusaTo_rat859 below · depth 13 - Package fibre dictionary and centre-pinned model read equal places
ModularCurve.DRModelPackageLevel.pointEquivPlace_efib_inv_eq_congrRingEquiv_pointEquivPlace_of_finChart_centrePin126 below · depth 14 - Centre pins for the chart-pinned generic fibre of the Igusa scheme
ModularCurve.IgusaScheme.coeffEmb_sub_mem_nonunits_pointEquivPlace_ofGenerator_of_chartPin0 below · depth 14 - ℚ-fibre of the ℤ_{(ℓ)}-chart algebra of the Igusa model
ModularCurve.IgusaScheme.exists_algEquiv_rat_tensor_chartAlg_chartRing0 below · depth 14 - Base change to ℚ̄ of the two Igusa chart algebras
ModularCurve.IgusaScheme.exists_algEquiv_tensor_chartAlg_chartRing1 below · depth 14 - Cuspidal sections and cusp coordinate j(qᵖ)/jᵖ for X₀(Np)
ModularCurve.IgusaScheme.exists_algHom_chartAlgInf_coeff_zero_and_mem_nonunits_of_not_dvd83 below · depth 14 - The cusp ∞ as a ℤ_{(ℓ)}-point of the pole chart
ModularCurve.IgusaScheme.exists_algHom_chartAlgInf_eq_coeff_zero2 below · depth 14 - Galois-compatible generic fibre isomorphism for the Igusa scheme
ModularCurve.IgusaScheme.exists_genericFibreIso_chartPin_and_galoisCompat0 below · depth 14 - Generic fibre of the Igusa scheme is the curve model
ModularCurve.IgusaScheme.exists_genericFibreIso_chartPin_and_galoisCompat_of_algEquiv_chartAlg_chartRing0 below · depth 14 - Generic fibres of the Igusa model: chart pins, Galois and place compatibility
ModularCurve.IgusaScheme.exists_genericFibreIso_chartPin_galoisCompat_and_ratPlaceCompat5 below · depth 14 - Igusa scheme as base change of the two-chart ℤ-model
ModularCurve.IgusaScheme.exists_isPullback_twoChartIntegralModel_int_and_iso_pullback_and_iotaFin_comp_eq7 below · depth 14 - Atkin–Lehner involution wₚ on Igusa's model of X₀(Np)
ModularCurve.IgusaScheme.exists_iso_involutive_iotaFin_comp_eq_atkinLehner_of_not_dvd143 below · depth 14 - Chart-pinned degeneracy pair between Igusa models of X₀(Mℓ) and X₀(M)
ModularCurve.IgusaScheme.exists_pinned_degeneracyPair_inf153 below · depth 14 - Finite-map data of arbitrarily large degree on the Igusa scheme
ModularCurve.IgusaScheme.exists_schemeHomOver_finiteMapData_levelSetsGenericallyEtale1,105 below · depth 14 - Maximal smooth locus of the Igusa model contains the cusps
ModularCurve.IgusaScheme.exists_smoothLocus_maximal_and_section_mem885 below · depth 14 - Centre pins on special fibres of the Igusa scheme
ModularCurve.IgusaScheme.exists_spBase_and_cuspChart_centrePin_of_genericFibre_iso_ofGenerator815 below · depth 14 - The Igusa scheme has a two-affine open cover by its charts
ModularCurve.IgusaScheme.exists_twoAffineOpenCover_U0_eq_chartFinOpen1 below · depth 14 - Two geometric components of the j-finite chart mod p
ModularCurve.IgusaScheme.finite_minimalPrimes_tensor_chartAlgFin_mul_and_ncard_eq_two_of_not_dvd136 below · depth 14 - Geometric integrality of the Igusa scheme over ℤ_{(ℓ)}
ModularCurve.IgusaScheme.geometricallyIntegral_igusaTo848 below · depth 14 - Integrality of the geometric fibre charts of the Igusa scheme
ModularCurve.IgusaScheme.isDomain_tensor_chartAlgFin_and_chartAlgInf_of_isAlgClosed805 below · depth 14 - Integral closedness of K ⊗_ℤ_{(ℓ)} chartAlgFin in characteristic zero
ModularCurve.IgusaScheme.isIntegrallyClosed_tensor_chartAlgFin_of_charZero81 below · depth 14 - Integral closedness of R'⊗_ℤ_{(ℓ)}chartAlgFin for a DVR base
ModularCurve.IgusaScheme.isIntegrallyClosed_tensor_chartAlgFin_of_isDiscreteValuationRing168 below · depth 14 - Constant-field extension of the pole chart stays a normal domain
ModularCurve.IgusaScheme.isIntegrallyClosed_tensor_chartAlgInf_of_charZero81 below · depth 14 - Integral closedness of the pole chart over a DVR
ModularCurve.IgusaScheme.isIntegrallyClosed_tensor_chartAlgInf_of_isDiscreteValuationRing168 below · depth 14 - Igusa: the two-chart model of X₀(N) over ℤ_{(ℓ)}
ModularCurve.IgusaScheme.isProper_and_smooth_and_geometricallyIntegral858 below · depth 14 - Each chart of X₀(Np) has reduced fibre with two components
ModularCurve.IgusaScheme.isReduced_quotient_and_ncard_minimalPrimes_span_natCast_of_not_dvd129 below · depth 14 - j(q^N) and j are mutually integral
ModularCurve.IgusaScheme.jqN_mem_chartAlgFin_and_jFull_mem_chartAlg_jqN80 below · depth 14 - Supersingular points of Y₀(N)_κ lie on the second copy
ModularCurve.IgusaScheme.ker_comp_atkinLehner_le_comap_retraction_of_mem_ssJSet_of_not_dvd940 below · depth 14 - Reduction of Igusa-scheme points matches the fibre model's specialisation of places
ModularCurve.IgusaScheme.pointReduction_eq_congr_spPlace_of_cuspChart_centrePin191 below · depth 14 - Frobenius on the second retraction of X₀(Np) mod p
ModularCurve.IgusaScheme.retraction_one_tmul_iota_eq_pow_of_not_dvd825 below · depth 14 - Ogg's unit on the two components of X₀(Np) mod p
ModularCurve.IgusaScheme.retraction_one_tmul_modularUnit_eq_prod_ssJSet_of_not_dvd936 below · depth 14 - Smoothness of the Igusa model's fibre at ℓ ∤ N
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_residue825 below · depth 14 - Smoothness of characteristic-zero fibres of the integral model
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_snd_toBase_int_of_charZero128 below · depth 14 - Existence of a Deligne–Rapoport model package with q-expansion pin
ModularCurve.exists_dRModelPackage_ffPin1,050 below · depth 14 - Finiteness of F_N^{full} over ℚ(j)
ModularCurve.finiteDimensional_adjoin_jFull_modularFunctionFieldFull117 below · depth 14 - Geometric integrality of the rational fibre of the two-chart model
ModularCurve.geometricallyIntegral_baseChangeToBase_twoChartIntegralModel_rat853 below · depth 14 - Good-reduction Néron identity component of J₀(p) from the Deligne–Rapoport model
ModularCurve.nonempty_jZeroNeronIdentityComponentGood_of_dRModelPackage_of_ffPin3,335 below · depth 14 - Residue field of a place of ℚ̄ above ℓ has characteristic ℓ
ValuationSubring.charP_residueField_of_liesOverPrime0 below · depth 14 - ℤ_{(ℓ)} maps into every valuation subring over ℓ
ValuationSubring.exists_ratLocalizedAt_ringHom_of_liesOverPrime1 below · depth 14 - Centre-pinned specialisation of places on the finite j-chart
ModularCurve.CharPModel.FibreModel.placeFullC_eq_congr_spPlace_of_finChart_centrePin186 below · depth 15 - Centre-pinned specialisation of places on the pole chart at a cusp
ModularCurve.CharPModel.FibreModel.placeFullC_eq_congr_spPlace_of_infChart_centrePin_of_mem_maximalIdeal184 below · depth 15 - Igusa chart algebras as localisations with unchanged reduction mod ℓ
ModularCurve.IgusaScheme.chartAlg_eq_and_mem_iff_and_exists_ringEquiv_quotient_span_natCast2 below · depth 15 - Geometric chart rings spanned by the integral chart algebras
ModularCurve.IgusaScheme.chartRing_le_span_coeffEmb_chartAlg0 below · depth 15 - Fibres of the Igusa two-chart model are connected
ModularCurve.IgusaScheme.connectedSpace_pullback_igusaTo_specMap130 below · depth 15 - Two q-expansions jointly inject κ⊗𝒪 into κ((q))
ModularCurve.IgusaScheme.eq_zero_of_forall_laurentLift_apply_eq_zero_of_not_dvd130 below · depth 15 - Atkin–Lehner involution preserves the ℤ₍ₚ₎[j]-chart of X₀(Np)
ModularCurve.IgusaScheme.exists_algEquiv_chartAlgFin_mul_eq_atkinLehnerInvolutionFull79 below · depth 15 - Special fibres of the two Igusa chart algebras
ModularCurve.IgusaScheme.exists_algEquiv_residueField_tensor_chartAlg_chartRing799 below · depth 15 - Special fibres of the Igusa charts as characteristic-ℓ chart rings
ModularCurve.IgusaScheme.exists_algEquiv_residueField_tensor_chartAlg_chartRing_apply_tmul799 below · depth 15 - Special-fibre chart identifications of the Igusa scheme, compatible on overlaps
ModularCurve.IgusaScheme.exists_algEquiv_residueField_tensor_chartAlg_chartRing_compat802 below · depth 15 - Constant term gives a ℤ-point of the pole chart
ModularCurve.IgusaScheme.exists_algHom_int_chartAlgInf_eq_coeff_zero1 below · depth 15 - Two-chart datum for the Igusa scheme: overlap is a basic open
ModularCurve.IgusaScheme.exists_chartFinOpen_inf_chartInfOpen_eq_basicOpen_and_mul_eq_one0 below · depth 15 - Geometric generic fibre of the Igusa scheme as a curve model
ModularCurve.IgusaScheme.exists_curveModel_genericFibre_iso_and_galoisCompat152 below · depth 15 - Local-ring points of the Igusa scheme: finite chart or pole of j
ModularCurve.IgusaScheme.exists_eq_spec_map_comp_iotaFin_or_iotaInf_of_mem_maximalIdeal0 below · depth 15 - Igusa chart rings inside a cusp-chart fibre model
ModularCurve.IgusaScheme.exists_fibreModel_cuspChart_of_chartAlg_of_lift743 below · depth 15 - Chart-pinned generic fibre of the Igusa model over ℚ
ModularCurve.IgusaScheme.exists_genericFibreIso_rat_chartPin0 below · depth 15 - The K-fibre of the Igusa scheme as a glued two-chart curve
ModularCurve.IgusaScheme.exists_iso_glued_pullback_igusaTo_of_algEquiv_chartAlg_chartRing0 below · depth 15 - Smoothness of Igusa's model at the cusp ∞ modulo p
ModularCurve.IgusaScheme.exists_mem_and_smooth_of_section_cuspInf_of_asIdeal_ne_bot147 below · depth 15 - Denominators over ℤ_{(ℓ)}[j] in the modular function field
ModularCurve.IgusaScheme.exists_mul_mem_adjoin_jFull_jqN73 below · depth 15 - Two minimal primes in the mod p chart of X₀(Np)
ModularCurve.IgusaScheme.exists_retraction_pair_residueField_tensor_chartAlgFin_mul_of_not_dvd815 below · depth 15 - Minimal primes over p as kernels of q-expansion reductions
ModularCurve.IgusaScheme.exists_ringHom_laurentSeries_ker_eq_of_mem_minimalPrimes_of_not_dvd129 below · depth 15 - Two components of the j-chart of X₀(Np) modulo p
ModularCurve.IgusaScheme.exists_ringHom_laurentSeries_pair_chartAlgFin_mul_frobenius_of_not_dvd824 below · depth 15 - Finite type of the two integral chart algebras over ℤ
ModularCurve.IgusaScheme.finiteType_int_chartAlgFin_and_chartAlgInf119 below · depth 15 - The two Igusa charts meet exactly where j, resp. 1/j, is invertible
ModularCurve.IgusaScheme.iotaInf_preimage_chartFinOpen_and_iotaFin_preimage_chartInfOpen0 below · depth 15 - Integrality of the characteristic-ℓ fibres of the Igusa scheme
ModularCurve.IgusaScheme.isIntegral_pullback_igusaTo_of_charP838 below · depth 15 - Characteristic-zero fibres of the Igusa scheme are integral
ModularCurve.IgusaScheme.isIntegral_pullback_igusaTo_of_charZero144 below · depth 15 - Integrality of the k-fibre of the two-chart model
ModularCurve.IgusaScheme.isIntegral_pullback_toBase_int_of_isUnit_natCast854 below · depth 15 - The j-finite Igusa chart ring is integrally closed
ModularCurve.IgusaScheme.isIntegrallyClosed_chartAlgFin1 below · depth 15 - Integral closedness of the chart ring at the j-pole
ModularCurve.IgusaScheme.isIntegrallyClosed_chartAlgInf1 below · depth 15 - Properness over ℤ of the two-chart integral model
ModularCurve.IgusaScheme.isProper_toBase_int121 below · depth 15 - Reducedness of k ⊗_ℤ_{(ℓ)} chartAlgFin in characteristic ℓ
ModularCurve.IgusaScheme.isReduced_chartAlgFin_tensor164 below · depth 15 - Reducedness of k ⊗_ℤ_{(ℓ)} chartAlgInf at ℓ ∤ N
ModularCurve.IgusaScheme.isReduced_chartAlgInf_tensor164 below · depth 15 - Regularity at the cusp ∞ of the pole chart over ℤ₍ₚ₎
ModularCurve.IgusaScheme.isRegularLocalRing_of_isLocalization_atPrime_chartAlgInf_cuspInfty139 below · depth 15 - Retraction kernel detects the ∞-component: wₚj-jᵖ∈𝔭
ModularCurve.IgusaScheme.map_le_ker_retraction_iff_mem_of_mem_minimalPrimes_of_not_dvd825 below · depth 15 - Igusa scheme as two-chart integral model over ℤ_{(ℓ)}
ModularCurve.IgusaScheme.nonempty_iso_twoChartIntegralModel0 below · depth 15 - A ℤ_{(ℓ)}-point of the Igusa scheme
ModularCurve.IgusaScheme.nonempty_schemeHomOver_id_igusaTo3 below · depth 15 - Mutual integrality of j and j(qᵈ) at level M
ModularCurve.IgusaScheme.qExpand_jq_mem_chartAlgFin_and_jFull_mem_chartAlg81 below · depth 15 - Place compatibility of the ℚ̄- and ℚ-level Igusa chart models
ModularCurve.IgusaScheme.ratPlaceCompat_of_chartPins2 below · depth 15 - Krull dimension one for the special fibre of the j-finite Igusa chart
ModularCurve.IgusaScheme.ringKrullDim_localization_chartAlgFin_tensor137 below · depth 15 - Krull dimension one for the pole chart of the Igusa model
ModularCurve.IgusaScheme.ringKrullDim_localization_chartAlgInf_tensor137 below · depth 15 - Relative dimension one for the Igusa scheme over ℤ_{(ℓ)}
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_igusaTo_of_smooth_fiber1 below · depth 15 - Smoothness of the j-finite Igusa chart over k
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_chartFin_residue820 below · depth 15 - Smoothness of the Igusa pole chart over k
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_chartInf_residue820 below · depth 15 - Smoothness of the Igusa scheme over characteristic-ℓ fields
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_of_charP827 below · depth 15 - Characteristic-zero fibres of the Igusa scheme are smooth curves
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_of_charZero120 below · depth 15 - Smoothness of the Igusa fibre from its two charts
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_of_chartFin_of_chartInf0 below · depth 15 - Smooth fibres in characteristic ℓ ∤ N of the integral model
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_snd_toBase_int_of_charP834 below · depth 15 - Transport of fibrewise smoothness from the Igusa scheme to the ℤ-model
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_snd_toBase_int_of_pullback_snd_igusaTo6 below · depth 15 - Smoothness of the integral model of X₀(p) over ℤ[1/p]
ModularCurve.IgusaScheme.smooth_pullback_snd_toBase_int_localizationAway839 below · depth 15 - Smoothness of the integral model after inverting N
ModularCurve.IgusaScheme.smooth_pullback_snd_toBase_int_of_isUnit_natCast838 below · depth 15 - Distinct minimal primes over p together with 1/j generate the unit ideal
ModularCurve.IgusaScheme.sup_sup_span_jInvChartInf_eq_top_of_mem_minimalPrimes_of_not_dvd244 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 - Base change of the two-chart model to ℚ̄
ModularCurve.exists_ofGenerator_baseChangeIso_chartPin_and_placeCompat2 below · depth 15 - Mutual pole-chart visibility for j and jₚ
ModularCurve.forall_mem_chartAlgInf_jFull_exists_mul_mem_and_symm_of_coe_eq_qExpand85 below · depth 15 - Integrality of Ogg's unit and p¹²u⁻¹ over ℤ[j]
ModularCurve.modularUnitSeries_mem_chartAlgFin_int94 below · depth 15 - Both branches of X₀(p) mod p are affine lines
ModularCurve.DRModel.exists_ringEquiv_quotient_chartAlgFin_polynomial_of_valuationSubring_pair62 below · depth 16 - Ogg's unit on the ∞-component is the supersingular polynomial
ModularCurve.DRModel.map_ringEquiv_quotient_chartAlgFin_modularUnit_eq_prod_ssJSet260 below · depth 16 - Minimal primes over p are the two branch centres
ModularCurve.DRModel.mem_minimalPrimes_chartAlgFin_iff_of_valuationSubring_pair123 below · depth 16 - Minimal primes of p in the pole chart ring are branch centres
ModularCurve.DRModel.mem_minimalPrimes_chartAlgInf_iff_of_valuationSubring_pair123 below · depth 16 - Distinct minimal primes over q and 1/j generate the unit ideal
ModularCurve.DRModel.sup_sup_span_jInvChartInf_eq_top_of_mem_minimalPrimes231 below · depth 16 - Minimal primes over ℓ avoid P(y)
ModularCurve.IgusaScheme.aeval_notMem_of_mem_minimalPrimes_span_natCast3 below · depth 16 - Constant term of q-expansions as an R-point of the pole chart
ModularCurve.IgusaScheme.exists_algHom_chartAlgInf_algebraMap_eq_coeff_zero0 below · depth 16 - Functions integral on both Igusa charts are constants in ℤ_{(ℓ)}
ModularCurve.IgusaScheme.exists_eq_algebraMap_of_mem_chartAlgFin_of_mem_chartAlgInf3 below · depth 16 - Galois-compatible generic fibre of the Igusa scheme at ̄ j
ModularCurve.IgusaScheme.exists_genericFibre_iso_ofGenerator_jBar_and_galoisCompat3 below · depth 16 - Igusa scheme as base change of the integral two-chart model
ModularCurve.IgusaScheme.exists_isPullback_twoChartIntegralModel_int_and_iso_pullback7 below · depth 16 - Generic fibre of the Igusa scheme as rational two-chart model
ModularCurve.IgusaScheme.exists_iso_pullback_igusaTo_rat_twoChartIntegralModel_and_iotaFin10 below · depth 16 - Maximal ideal at the cusp ∞ generated by p and 1/j
ModularCurve.IgusaScheme.exists_mul_eq_natCast_mul_add_jInvChartInf_mul_of_coeff_zero_mem90 below · depth 16 - Pinned degeneracy pair between Igusa schemes mathfrak X_{Mℓ}rightrightarrowsmathfrak X_M
ModularCurve.IgusaScheme.exists_pinned_degeneracyPair153 below · depth 16 - Pole-chart inclusion X₀(Nq)→ X₀(q) separates components mod q
ModularCurve.IgusaScheme.exists_ringHom_chartAlgInf_comap_minimalPrimes_ne_of_not_dvd205 below · depth 16 - Rank of a pinned flat degeneracy map of Igusa schemes
ModularCurve.IgusaScheme.finrank_eq_of_pinned_of_flat_morphismRestrict892 below · depth 16 - Finite surjections between Igusa schemes of good reduction are flat
ModularCurve.IgusaScheme.flat_and_locallyOfFinitePresentation_of_isFinite_of_not_dvd891 below · depth 16 - Fibres of the Igusa scheme are geometrically connected
ModularCurve.IgusaScheme.geometricallyConnected_pullback_snd_igusaTo131 below · depth 16 - Geometric connectedness of the Igusa scheme fibres for ℓ ∤ N
ModularCurve.IgusaScheme.geometricallyConnected_pullback_snd_igusaTo_of_not_dvd806 below · depth 16 - Geometric connectedness over ℤ of the two-chart model of X₀(N)
ModularCurve.IgusaScheme.geometricallyConnected_toBase_int137 below · depth 16 - Igusa regularity: j-chart of the special fibre is regular of dimension 1
ModularCurve.IgusaScheme.isRegularLocalRing_localization_chartAlgFin_tensor819 below · depth 16 - Regularity of the pole chart of the Igusa special fibre
ModularCurve.IgusaScheme.isRegularLocalRing_localization_chartAlgInf_tensor819 below · depth 16 - Finiteness of the two-chart Čech H¹ over ℤ_{(ℓ)}
ModularCurve.IgusaScheme.moduleFinite_chartAlgMid_quotient_range_inclFin_sup_range_inclInf121 below · depth 16 - A ℤ_{(ℓ)}-point of the Igusa pole chart
ModularCurve.IgusaScheme.nonempty_algHom_chartAlgInf2 below · depth 16 - Reductions of the Igusa chart algebra span the characteristic-ℓ chart ring
ModularCurve.IgusaScheme.piFin_image_spans_chartAlg182 below · depth 16 - Pole chart ring spanned by reductions of the integral chart algebra
ModularCurve.IgusaScheme.piInf_image_spans_chartAlg182 below · depth 16 - Geometric integrality of the two-chart model over ℤ[1/N]
ModularCurve.geometricallyIntegral_baseChangeToBase_twoChartIntegralModel_away853 below · depth 16 - Special fibre of X₀(p) on the finite chart
ModularCurve.DRModel.exists_minimalPrimes_pair_and_ringEquiv_quotient_polynomial143 below · depth 17 - Kronecker congruence pins j ≡ jₚ^{ p} on the second branch
ModularCurve.DRModel.jFull_sub_pow_mem_nonunits_of_valuationSubring_pair58 below · depth 17 - Galois-compatible generic fibre from the chart-ring identifications
ModularCurve.IgusaScheme.exists_genericFibreIso_galoisCompat_of_algEquiv_chartAlg_chartRing0 below · depth 17 - Freeness at regular points for finite surjections of Igusa schemes
ModularCurve.IgusaScheme.free_localizedModule_sections_of_isRegularLocalRing_stalk_of_isFinite877 below · depth 17 - Geometric connectedness passes from the Igusa scheme to the ℤ-model
ModularCurve.IgusaScheme.geometricallyConnected_pullback_snd_toBase_int_of_pullback_snd_igusaTo6 below · depth 17 - Finiteness of the j-chart degeneracy map for Igusa schemes
ModularCurve.IgusaScheme.isFinite_specMap_chartAlgFin_of_coe_eq131 below · depth 17 - Geometric fibres of the Igusa scheme have no isolated points
ModularCurve.IgusaScheme.not_isOpen_singleton_pullback_igusaTo_of_not_dvd862 below · depth 17 - Integral norm relation for g of Ogg's modular unit
ModularCurve.exists_int_poly_natDegree_aeval_jFull_eq_mul_aeval_modularUnitSeries270 below · depth 17 - Stalks of the Igusa scheme have Krull dimension at most two
ModularCurve.IgusaScheme.ringKrullDim_stalk_le_two1 below · depth 18 - Leading coefficient of the norm of g at Ogg's unit
ModularCurve.exists_leadingCoeff_eq_mul_pow_of_aeval_jFull_eq_norm_aeval_modularUnitSeries269 below · depth 18 - Kronecker's congruence for j(q) and j(qᵖ)
ModularCurve.exists_sub_mul_sub_eq_natCast_mul_of_coe_eq_qExpand56 below · depth 18 - Degree of the ℚ(j)-norm of g at Ogg's unit
ModularCurve.natDegree_eq_mul_of_aeval_jFull_eq_norm_aeval_modularUnitSeries222 below · depth 18 - Geometric fibre at ℓ≠ p of the j-chart of X₀(p)
ModularCurve.HpoolLevelRing.exists_algEquiv_residueField_tensor_quotient_span_natCast_chartRing803 below · depth 19 - Norms to ℚ(j) are integer polynomials in j
ModularCurve.exists_aeval_jFull_eq_norm_of_mem_chartAlgFin119 below · depth 19 - Centre of a valuation ring passes between the Igusa charts
ModularCurve.IgusaScheme.forall_mem_asIdeal_iff_mem_nonunits_of_iotaFin_eq_of_iotaInf_eq0 below · depth 21 - Finite chart and base generate the function field
ModularCurve.IgusaScheme.subfieldClosure_range_germToFunctionField_union_range_eq_top0 below · depth 21 - Base change of the j-finite chart ring to a ramified DVR
ModularCurve.IgusaScheme.exists_algEquiv_tensor_chartAlgFin_mul_chartAlgFin_laurentBaseChange_of_not_dvd233 below · depth 27
… and 8 more statements (search for the module name to find them).