Definitions/Def_AlgebraicCurve_GluedPic0.lean
Picard group of two curves glued along paired places
Throughout, F is a field extension of a field K, and places, orders \mathrm{ord}_v, divisors, the degree-zero subgroup and \mathrm{Pic}^0 are those of the project's divisor-theoretic set-up, in which a place of F/K is a valuation subring containing the image of K, proper and with principal ideals (hence a discrete valuation ring).
First, a value relation: for a place v, an element g \in F and a \in K, Place.HasValue v g a asserts that g lies in the valuation subring of v and that its residue in the residue field equals the image of a under K \to \kappa(v). Accompanying lemmas record that 1 has value 1, that \mathrm{algebraMap} of c \in K has value c, multiplicativity, uniqueness of the value (injectivity of K \to \kappa(v)), that a nonzero value forces g to be a unit of the valuation subring, hence g \neq 0, g^{-1} has value a^{-1} and \mathrm{ord}_v(g) = 0; further, an element of order 0 is a unit of the subring, and if K \to \kappa(v) is surjective every element of the subring has some value, nonzero when the element is a unit.
Next, for a finite set S of ordered pairs of places, a gluing datum is a triple (D_1, D_2, w) with D_1, D_2 divisors and w : S \to \mathrm{Additive}\,K^\times. The subgroup admissible consists of those with D_1, D_2 of degree zero and D_1 vanishing at the first, D_2 at the second place of every pair in S. The predicate IsGluedPrincipal asks for nonzero g_1, g_2 \in F and a, b : S \to K^\times with D_i the order divisor of g_i, with g_1 having value a(s) at the first place of s and g_2 value b(s) at the second, and w(s) = a(s)/b(s); these triples form the subgroup gluedPrincipal. Then \mathrm{GluedPic}^0_S is the quotient of admissible by the intersection with gluedPrincipal, with its quotient map, criteria for a class to vanish or two classes to agree, the forgetful homomorphism to \mathrm{Pic}^0 \times \mathrm{Pic}^0 sending a class to the pair of divisor classes, and the homomorphism w \mapsto [(0,0,w)]. The composite of the latter two is zero, and a constant w gives the zero class. Exactness is not asserted.
Relation to Mathlib
Mathlib has no notion of the Picard group of a curve glued along paired places; this is the project's own construction, built on its Place/Divisor/Pic0 definitions, with values of functions expressed through Mathlib's residue map of a local ring.
Where it is used
This is the vocabulary for the degree-zero Picard group of a nodal curve obtained by identifying pairs of points on two copies of a curve, and in particular for the toric part of such a Picard group, as it arises for the Jacobian of X_0(Nq) in characteristic q in the level-lowering arguments (Mazur's principle).
References
- 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
- J.-P. Serre, Groupes algébriques et corps de classes, Hermann, 1959
- K. A. Ribet, On modular representations of \mathrm{Gal}(\overline{\mathbb{Q}}/\mathbb{Q}) arising from modular forms, Inventiones Mathematicae 100 (1990), 431–476
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 277 lines
- 37 declarations
- used in the statements of 251 theorems and imported by 334 proofs
- imports 1 definition modules
Source file: Definitions/Def_AlgebraicCurve_GluedPic0.lean
Imported by
Def_AlgebraicCurve_GluedPic0FunctorialityDef_AlgebraicCurve_GluedPic0PushforwardDef_AlgebraicCurve_LogDeRhamH1Def_AlgebraicCurve_NodalPic0Def_AlgebraicCurve_PlaceDepthDef_AlgebraicCurve_PolarDifferentialsDef_ModularCurve_AnnulusSpecializationLevelDef_ModularCurve_JHNeronObjectAtPDef_ModularCurve_JZeroSemistableSpecializationDef_ModularCurve_LevelOneAnnulusSpecializationDef_ModularCurve_LevelOneAnnulusSpecializationOrbitDef_ModularCurve_QExpSemistableSpecializationPinnedDef_ModularCurve_QExpSemistableSpecializationPinnedV3
Declarations
- theorem
AlgebraicCurve.Place.ord_algebraMap_of_constant - theorem
AlgebraicCurve.Place.residue_algebraMap - def
AlgebraicCurve.Place.HasValue - theorem
AlgebraicCurve.Place.hasValue_iff - theorem
AlgebraicCurve.Place.HasValue.mem - theorem
AlgebraicCurve.Place.HasValue.residue_eq - theorem
AlgebraicCurve.Place.hasValue_one - theorem
AlgebraicCurve.Place.hasValue_algebraMap - theorem
AlgebraicCurve.Place.HasValue.mul - theorem
AlgebraicCurve.Place.HasValue.isUnit - theorem
AlgebraicCurve.Place.HasValue.ne_zero - theorem
AlgebraicCurve.Place.HasValue.inv - theorem
AlgebraicCurve.Place.HasValue.unique - theorem
AlgebraicCurve.Place.HasValue.ord_eq_zero - theorem
AlgebraicCurve.Place.exists_isUnit_of_ord_eq_zero - theorem
AlgebraicCurve.Place.exists_hasValue_of_surjective - abbrev
AlgebraicCurve.GluingData - def
AlgebraicCurve.GluingData.admissible - theorem
AlgebraicCurve.GluingData.mem_admissible - theorem
AlgebraicCurve.GluingData.zero_zero_mem_admissible - def
AlgebraicCurve.GluingData.IsGluedPrincipal - def
AlgebraicCurve.GluingData.gluedPrincipal - theorem
AlgebraicCurve.GluingData.mem_gluedPrincipal - abbrev
AlgebraicCurve.GluedPic0 - def
AlgebraicCurve.GluedPic0.mk - theorem
AlgebraicCurve.GluedPic0.mk_surjective - theorem
AlgebraicCurve.GluedPic0.mk_eq_zero_iff - theorem
AlgebraicCurve.GluedPic0.mk_eq_mk_iff - def
AlgebraicCurve.GluedPic0.toPic0PairAux - def
AlgebraicCurve.GluedPic0.toPic0Pair - theorem
AlgebraicCurve.GluedPic0.toPic0Pair_mk - def
AlgebraicCurve.GluedPic0.nodeUnitAux - def
AlgebraicCurve.GluedPic0.nodeUnit - theorem
AlgebraicCurve.GluedPic0.nodeUnit_apply - theorem
AlgebraicCurve.GluedPic0.toPic0Pair_nodeUnit - theorem
AlgebraicCurve.GluedPic0.toPic0Pair_comp_nodeUnit - theorem
AlgebraicCurve.GluedPic0.nodeUnit_const
Source
import Definitions.Def_AlgebraicCurve_DivisorClassGroup set_option autoImplicit false noncomputable section open IsLocalRing namespace AlgebraicCurve namespace Place variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F) @[simp] private theorem ord_algebraMap_of_constant (c : K) : v.ord (algebraMap K F c) = 0 := by rcases eq_or_ne c 0 with rfl | hc · simp · have hu : IsUnit (algebraMap K v.toValuationSubring c) := hc.isUnit.map _ have h := v.ord_coe_unit hu.unit rwa [IsUnit.unit_spec, coe_algebraMap] at h theorem residue_algebraMap (c : K) : residue v.toValuationSubring (algebraMap K v.toValuationSubring c) = algebraMap K v.ResidueField c := by rw [IsScalarTower.algebraMap_apply K v.toValuationSubring v.ResidueField c, ResidueField.algebraMap_eq] def HasValue (g : F) (a : K) : Prop := ∃ h : g ∈ v.toValuationSubring, residue v.toValuationSubring ⟨g, h⟩ = algebraMap K v.ResidueField a theorem hasValue_iff (g : F) (a : K) : v.HasValue g a ↔ ∃ h : g ∈ v.toValuationSubring, residue v.toValuationSubring ⟨g, h⟩ = algebraMap K v.ResidueField a := Iff.rfl variable {v} theorem HasValue.mem {g : F} {a : K} (h : v.HasValue g a) : g ∈ v.toValuationSubring := h.1 theorem HasValue.residue_eq {g : F} {a : K} (h : v.HasValue g a) : residue v.toValuationSubring ⟨g, h.mem⟩ = algebraMap K v.ResidueField a := h.2 variable (v) in theorem hasValue_one : v.HasValue (1 : F) 1 := ⟨one_mem _, by rw [map_one]; exact map_one (residue v.toValuationSubring)⟩ variable (v) in theorem hasValue_algebraMap (c : K) : v.HasValue (algebraMap K F c) c := ⟨v.algebraMap_mem' c, v.residue_algebraMap c⟩ theorem HasValue.mul {g g' : F} {a a' : K} (h : v.HasValue g a) (h' : v.HasValue g' a') : v.HasValue (g * g') (a * a') := by obtain ⟨hg, hr⟩ := h obtain ⟨hg', hr'⟩ := h' refine ⟨mul_mem hg hg', ?_⟩ have hx : (⟨g * g', mul_mem hg hg'⟩ : v.toValuationSubring) = ⟨g, hg⟩ * ⟨g', hg'⟩ := rfl rw [hx, map_mul, hr, hr', map_mul] theorem HasValue.isUnit {g : F} {a : K} (h : v.HasValue g a) (ha : a ≠ 0) : IsUnit (⟨g, h.mem⟩ : v.toValuationSubring) := by rw [← residue_ne_zero_iff_isUnit, h.residue_eq] exact (map_ne_zero _).mpr ha theorem HasValue.ne_zero {g : F} {a : K} (h : v.HasValue g a) (ha : a ≠ 0) : g ≠ 0 := by intro hg apply (h.isUnit ha).ne_zero exact Subtype.ext hg theorem HasValue.inv {g : F} {a : K} (h : v.HasValue g a) (ha : a ≠ 0) : v.HasValue g⁻¹ a⁻¹ := by obtain ⟨u, hu⟩ := h.isUnit ha have hcoe : ((u : v.toValuationSubring) : F) = g := by rw [hu] have hinv : (((u⁻¹ : v.toValuationSubringˣ) : v.toValuationSubring) : F) = g⁻¹ := by have h1 : g * (((u⁻¹ : v.toValuationSubringˣ) : v.toValuationSubring) : F) = 1 := by rw [← hcoe, ← MulMemClass.coe_mul, ← Units.val_mul, mul_inv_cancel, Units.val_one, OneMemClass.coe_one] exact (inv_eq_of_mul_eq_one_right h1).symm have hmem : g⁻¹ ∈ v.toValuationSubring := hinv ▸ SetLike.coe_mem _ refine ⟨hmem, ?_⟩ have hx : (⟨g⁻¹, hmem⟩ : v.toValuationSubring) = ((u⁻¹ : v.toValuationSubringˣ) : v.toValuationSubring) := Subtype.ext hinv.symm rw [hx, map_units_inv, hu, h.residue_eq, map_inv₀] theorem HasValue.unique {g : F} {a a' : K} (h : v.HasValue g a) (h' : v.HasValue g a') : a = a' := (algebraMap K v.ResidueField).injective (h.residue_eq.symm.trans h'.residue_eq) theorem HasValue.ord_eq_zero {g : F} {a : K} (h : v.HasValue g a) (ha : a ≠ 0) : v.ord g = 0 := by have h0 := v.ord_coe_unit (h.isUnit ha).unit rwa [IsUnit.unit_spec] at h0 variable (v) in theorem exists_isUnit_of_ord_eq_zero {f : F} (hf : f ≠ 0) (h : v.ord f = 0) : ∃ hm : f ∈ v.toValuationSubring, IsUnit (⟨f, hm⟩ : v.toValuationSubring) := by obtain ⟨π, hπ⟩ := IsDiscreteValuationRing.exists_irreducible v.toValuationSubring obtain ⟨u, hu⟩ := v.exists_unit_mul_zpow hf hπ rw [h, zpow_zero, mul_one] at hu subst hu exact ⟨(u : v.toValuationSubring).2, u.isUnit⟩ variable (v) in theorem exists_hasValue_of_surjective (hv : Function.Surjective (algebraMap K v.ResidueField)) {g : F} (hg : g ∈ v.toValuationSubring) : ∃ a : K, v.HasValue g a ∧ (IsUnit (⟨g, hg⟩ : v.toValuationSubring) → a ≠ 0) := by obtain ⟨a, ha⟩ := hv (residue v.toValuationSubring ⟨g, hg⟩) refine ⟨a, ⟨hg, ha.symm⟩, fun hu h0 => ?_⟩ rw [← residue_ne_zero_iff_isUnit, ← ha, h0, map_zero] at hu exact hu rfl end Place section Glued variable (K F : Type*) [Field K] [Field F] [Algebra K F] abbrev GluingData (S : Finset (Place K F × Place K F)) : Type _ := Divisor K F × Divisor K F × (↥S → Additive Kˣ) namespace GluingData variable {K F} variable (S : Finset (Place K F × Place K F)) def admissible : AddSubgroup (GluingData K F S) where carrier := {x | x.1 ∈ Divisor.degZero (K := K) (F := F) ∧ x.2.1 ∈ Divisor.degZero (K := K) (F := F) ∧ ∀ s ∈ S, x.1 s.1 = 0 ∧ x.2.1 s.2 = 0} zero_mem' := ⟨zero_mem _, zero_mem _, fun _ _ => ⟨rfl, rfl⟩⟩ add_mem' := by rintro x y ⟨hx₁, hx₂, hx⟩ ⟨hy₁, hy₂, hy⟩ refine ⟨add_mem hx₁ hy₁, add_mem hx₂ hy₂, fun s hs => ⟨?_, ?_⟩⟩ · rw [Prod.fst_add, Finsupp.add_apply, (hx s hs).1, (hy s hs).1, add_zero] · rw [Prod.snd_add, Prod.fst_add, Finsupp.add_apply, (hx s hs).2, (hy s hs).2, add_zero] neg_mem' := by rintro x ⟨hx₁, hx₂, hx⟩ refine ⟨neg_mem hx₁, neg_mem hx₂, fun s hs => ⟨?_, ?_⟩⟩ · rw [Prod.fst_neg, Finsupp.neg_apply, (hx s hs).1, neg_zero] · rw [Prod.snd_neg, Prod.fst_neg, Finsupp.neg_apply, (hx s hs).2, neg_zero] theorem mem_admissible {x : GluingData K F S} : x ∈ admissible S ↔ x.1 ∈ Divisor.degZero (K := K) (F := F) ∧ x.2.1 ∈ Divisor.degZero (K := K) (F := F) ∧ ∀ s ∈ S, x.1 s.1 = 0 ∧ x.2.1 s.2 = 0 := Iff.rfl theorem zero_zero_mem_admissible (w : ↥S → Additive Kˣ) : ((0, 0, w) : GluingData K F S) ∈ admissible S := ⟨zero_mem _, zero_mem _, fun _ _ => ⟨rfl, rfl⟩⟩ def IsGluedPrincipal (x : GluingData K F S) : Prop := ∃ (g₁ g₂ : F) (a b : ↥S → Kˣ), g₁ ≠ 0 ∧ g₂ ≠ 0 ∧ (∀ v : Place K F, x.1 v = v.ord g₁) ∧ (∀ v : Place K F, x.2.1 v = v.ord g₂) ∧ (∀ s : ↥S, (s : Place K F × Place K F).1.HasValue g₁ (a s) ∧ (s : Place K F × Place K F).2.HasValue g₂ (b s)) ∧ x.2.2 = fun s => Additive.ofMul (a s / b s) def gluedPrincipal : AddSubgroup (GluingData K F S) where carrier := {x | IsGluedPrincipal S x} zero_mem' := by refine ⟨1, 1, 1, 1, one_ne_zero, one_ne_zero, fun v => by simp, fun v => by simp, fun s => ⟨?_, ?_⟩, ?_⟩ · simpa using (s : Place K F × Place K F).1.hasValue_one · simpa using (s : Place K F × Place K F).2.hasValue_one · funext s simp add_mem' := by rintro x y ⟨g₁, g₂, a, b, hg₁, hg₂, hx₁, hx₂, hv, hw⟩ ⟨g₁', g₂', a', b', hg₁', hg₂', hy₁, hy₂, hv', hw'⟩ refine ⟨g₁ * g₁', g₂ * g₂', a * a', b * b', mul_ne_zero hg₁ hg₁', mul_ne_zero hg₂ hg₂', fun v => ?_, fun v => ?_, fun s => ⟨?_, ?_⟩, ?_⟩ · rw [Prod.fst_add, Finsupp.add_apply, hx₁ v, hy₁ v, v.ord_mul hg₁ hg₁'] · rw [Prod.snd_add, Prod.fst_add, Finsupp.add_apply, hx₂ v, hy₂ v, v.ord_mul hg₂ hg₂'] · simpa only [Pi.mul_apply, Units.val_mul] using (hv s).1.mul (hv' s).1 · simpa only [Pi.mul_apply, Units.val_mul] using (hv s).2.mul (hv' s).2 · rw [Prod.snd_add, Prod.snd_add, hw, hw'] funext s rw [Pi.add_apply, Pi.mul_apply, Pi.mul_apply, ← ofMul_mul, div_mul_div_comm] neg_mem' := by rintro x ⟨g₁, g₂, a, b, hg₁, hg₂, hx₁, hx₂, hv, hw⟩ refine ⟨g₁⁻¹, g₂⁻¹, a⁻¹, b⁻¹, inv_ne_zero hg₁, inv_ne_zero hg₂, fun v => ?_, fun v => ?_, fun s => ⟨?_, ?_⟩, ?_⟩ · rw [Prod.fst_neg, Finsupp.neg_apply, hx₁ v, v.ord_inv] · rw [Prod.snd_neg, Prod.fst_neg, Finsupp.neg_apply, hx₂ v, v.ord_inv] · simpa only [Pi.inv_apply, Units.val_inv_eq_inv_val] using (hv s).1.inv (a s).ne_zero · simpa only [Pi.inv_apply, Units.val_inv_eq_inv_val] using (hv s).2.inv (b s).ne_zero · rw [Prod.snd_neg, Prod.snd_neg, hw] funext s rw [Pi.neg_apply, Pi.inv_apply, Pi.inv_apply, inv_div_inv, ← ofMul_inv, inv_div] theorem mem_gluedPrincipal {x : GluingData K F S} : x ∈ gluedPrincipal S ↔ IsGluedPrincipal S x := Iff.rfl end GluingData abbrev GluedPic0 (S : Finset (Place K F × Place K F)) : Type _ := ↥(GluingData.admissible S) ⧸ (GluingData.gluedPrincipal S).addSubgroupOf (GluingData.admissible S) namespace GluedPic0 variable {K F} variable (S : Finset (Place K F × Place K F)) def mk : ↥(GluingData.admissible S) →+ GluedPic0 K F S := QuotientAddGroup.mk' _ theorem mk_surjective : Function.Surjective (mk S) := QuotientAddGroup.mk'_surjective _ theorem mk_eq_zero_iff (x : ↥(GluingData.admissible S)) : mk S x = 0 ↔ GluingData.IsGluedPrincipal S (x : GluingData K F S) := QuotientAddGroup.eq_zero_iff _ theorem mk_eq_mk_iff (x y : ↥(GluingData.admissible S)) : mk S x = mk S y ↔ GluingData.IsGluedPrincipal S (-(x : GluingData K F S) + y) := QuotientAddGroup.eq def toPic0PairAux : ↥(GluingData.admissible S) →+ Pic0 K F × Pic0 K F where toFun x := (Pic0.mk ⟨(x : GluingData K F S).1, x.2.1⟩, Pic0.mk ⟨(x : GluingData K F S).2.1, x.2.2.1⟩) map_zero' := rfl map_add' _ _ := rfl def toPic0Pair : GluedPic0 K F S →+ Pic0 K F × Pic0 K F := QuotientAddGroup.lift _ (toPic0PairAux S) <| by rintro x ⟨g₁, g₂, _, _, hg₁, hg₂, h₁, h₂, -, -⟩ rw [AddMonoidHom.mem_ker] exact Prod.ext ((QuotientAddGroup.eq_zero_iff _).mpr ⟨g₁, hg₁, h₁⟩) ((QuotientAddGroup.eq_zero_iff _).mpr ⟨g₂, hg₂, h₂⟩) @[simp] theorem toPic0Pair_mk (x : ↥(GluingData.admissible S)) : toPic0Pair S (mk S x) = (Pic0.mk ⟨(x : GluingData K F S).1, x.2.1⟩, Pic0.mk ⟨(x : GluingData K F S).2.1, x.2.2.1⟩) := rfl def nodeUnitAux : (↥S → Additive Kˣ) →+ ↥(GluingData.admissible S) where toFun w := ⟨(0, 0, w), GluingData.zero_zero_mem_admissible S w⟩ map_zero' := rfl map_add' _ _ := Subtype.ext <| Prod.ext (add_zero _).symm (Prod.ext (add_zero _).symm rfl) def nodeUnit : (↥S → Additive Kˣ) →+ GluedPic0 K F S := (mk S).comp (nodeUnitAux S) theorem nodeUnit_apply (w : ↥S → Additive Kˣ) : nodeUnit S w = mk S ⟨(0, 0, w), GluingData.zero_zero_mem_admissible S w⟩ := rfl @[simp] theorem toPic0Pair_nodeUnit (w : ↥S → Additive Kˣ) : toPic0Pair S (nodeUnit S w) = 0 := rfl theorem toPic0Pair_comp_nodeUnit : (toPic0Pair S).comp (nodeUnit S) = 0 := AddMonoidHom.ext (toPic0Pair_nodeUnit S) theorem nodeUnit_const (c : Kˣ) : nodeUnit S (fun _ => Additive.ofMul c) = 0 := by rw [nodeUnit_apply, mk_eq_zero_iff] refine ⟨algebraMap K F c, 1, fun _ => c, 1, (map_ne_zero _).mpr c.ne_zero, one_ne_zero, fun v => by simp, fun v => by simp, fun s => ⟨?_, ?_⟩, ?_⟩ · exact (s : Place K F × Place K F).1.hasValue_algebraMap (c : K) · simpa using (s : Place K F × Place K F).2.hasValue_one · funext s simp end GluedPic0 end Glued end AlgebraicCurve end
Statements phrased using this module (251)
- Place differences generate the glued degree-zero class group
AlgebraicCurve.GluedPic0.closure_setOf_mk_single_sub_single_eq_top1 below · depth 12 - n-divisibility passes to the glued degree-zero class group
AlgebraicCurve.GluedPic0.exists_nsmul_eq_of_forall_pic07 below · depth 12 - Middle exactness of glued Pic⁰ at rational glued places
AlgebraicCurve.GluedPic0.ker_toPic0Pair_eq_range_nodeUnit0 below · depth 12 - Node units vanish in GluedPic⁰ only for constants
AlgebraicCurve.GluedPic0.nodeUnit_eq_zero_iff_of_constantsAreBase0 below · depth 12 - Surjectivity of the glued Picard group onto the pair
AlgebraicCurve.GluedPic0.toPic0Pair_surjective5 below · depth 12 - Prescribed unit values at finitely many places
AlgebraicCurve.Place.exists_forall_mem_hasValue11 below · depth 12 - Interpolation with prescribed non-zero values and one pole
AlgebraicCurve.RROpens.exists_forall_hasValue_forall_ord_nonneg8 below · depth 13 - Raynaud's dictionary for Pic⁰ of a two-component curve
AlgebraicGeometry.RelPicard.exists_gluedPic0_equiv_of_twoGluedSmoothCurves346 below · depth 13 - Split torus in Pic⁰ of a two-component curve
AlgebraicGeometry.RelPicard.exists_torus_characterLattice_equiv_of_twoGluedSmoothCurves32 below · depth 13 - Order of the m-torsion of ker(toPic0Pair)
AlgebraicCurve.GluedPic0.natCard_ker_toPic0Pair_inf_torsionBy2 below · depth 14 - Every point of Pic⁰(X) comes from admissible gluing data
AlgebraicGeometry.RelPicard.exists_hom_admissible_eq_of_twoGluedSmoothCurves19 below · depth 14 - Admissible gluing data give points of Pic⁰
AlgebraicGeometry.RelPicard.exists_hom_admissible_of_twoGluedSmoothCurves334 below · depth 14 - Injectivity of the glued Pic⁰ dictionary for two components
AlgebraicGeometry.RelPicard.gluedPic0_mk_eq_zero_of_hom_admissible_eq_one_of_twoGluedSmoothCurves12 below · depth 14 - Finite chart ring localises to 𝒪ᵥ where jmath̃ is regular
ModularCurve.CharPModel.FibreModel.piFin_range_localizes_of_jqModC_mem93 below · depth 14 - Pole chart of a fibre model localizes at non-affine places
ModularCurve.CharPModel.FibreModel.piInf_range_localizes_of_not_affine93 below · depth 14 - Node-compatible sections in general position are constant
ModularCurve.exists_eq_algebraMap_of_hasValue_smul_of_generalPosition0 below · depth 14 - Chart functions evaluate to their residue at a place
AlgebraicCurve.CurveModel.hasValue_placeOfPoint_of_sub_algebraMap_mem0 below · depth 15 - Value at a place detects the prime of a closed point
AlgebraicCurve.CurveModel.sub_algebraMap_mem_of_hasValue_placeOfPoint0 below · depth 15 - Values at places are transported by automorphisms
AlgebraicCurve.Place.hasValue_smul_iff0 below · depth 15 - Bundles of admissible gluing data on two glued smooth curves
AlgebraicGeometry.RelPicard.exists_gluedTwist_admissible_of_twoGluedSmoothCurves119 below · depth 15 - Reading the Poincaré bundle at every degree-zero class
AlgebraicGeometry.RelPicard.nonempty_poincare_pullbackAlong_iso_foldr_ofPoint_of_additive_of_pinned32 below · depth 15 - Common unit with simple zero and residue order tables
ModularCurve.PlaceSpecialization.ProlongationTuple.exists_commonUnit_ord_eq_one_orderTables_of_realisation0 below · depth 15 - Joint injectivity of polar coefficients on section pairs in general position
ModularCurve.eq_zero_of_forall_sum_mul_taylorCoeff_mul_pow_eq_zero_of_generalPosition12 below · depth 15 - Regular branch reductions at an mathbb F_{q²}-point with no pole
ModularCurve.exists_hasValue_and_hasValue_frobNodePair_of_forall_pole_not_centred270 below · depth 15 - Agreeing branch values at a supersingular node
ModularCurve.exists_hasValue_frobNodePair_of_forall_pole_not_centred535 below · depth 15 - Interpolation on the full level-N modular curve with simple poles
ModularCurve.exists_mem_riemannRochSpace_ord_sub_eq_one_hasValue_modularFunctionFieldFullC164 below · depth 15 - Interpolation of twisted values in a Riemann–Roch space
AlgebraicCurve.exists_mem_riemannRochSpace_forall_hasValue_mul_of_exists_not_mem0 below · depth 16 - Codimension of twisted node conditions on L(E₁)× L(E₂)
AlgebraicCurve.finrank_add_card_le_of_forall_exists_mem_riemannRochSpace_hasValue_mul0 below · depth 16 - Principal glued data give node-unit modules on two glued curves
AlgebraicGeometry.RelPicard.isNodeUnitModule_foldr_ofPoint_tensor_foldr_ofPoint_of_forall_eq_ord_of_twoGluedSmoothCurves117 below · depth 16 - Polar-coefficient form of general position for section pairs
ModularCurve.exists_eq_algebraMap_of_forall_taylorCoeff_mul_pow_eq_zero_of_generalPosition3 below · depth 16 - Equal branch values above a supersingular node of X₀(q)
ModularCurve.exists_hasValue_frobNodePair_of_isIntegral_modularLocalizedAtPoint_of_pow_eq443 below · depth 16 - Both branch reductions share a value at the node (a,a^q)
ModularCurve.exists_hasValue_frobNodePair_of_mem_modularLocalizedAtPoint53 below · depth 16 - Integrality over the plane local ring at (a,a^q)
ModularCurve.isIntegral_modularLocalizedAtPoint_of_forall_ord_nonneg263 below · depth 16 - Principal divisor on one component gives a node-unit module
AlgebraicGeometry.RelPicard.isNodeUnitModule_foldr_ofPoint_of_forall_eq_ord_of_hasValue116 below · depth 17 - Good admissible representative of σ V-V at a wide node
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_goodRep_admissible_smul_single_sub_self_of_eq_zero_or_eq1,025 below · depth 17 - Good admissible representative of σ V-V at a supersingular node
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_goodRep_admissible_smul_single_sub_self_of_ne_zero_of_ne913 below · depth 17 - Inertia-equivariant one-point mover on X₀(Nq)
ModularCurve.PlaceSpecialization.ProlongationTuple.exists_commonUnit_ord_eq_one_orderTables_of_realisation_forall_inertia_smul_eq_of_isModel0 below · depth 17 - The K-rational node ring is integrally closed
ModularCurve.PlaceSpecialization.ProlongationTuple.isIntegrallyClosed_nodeIntegersOver0 below · depth 17 - The crossing model W[[u,v]]/(uv-varpi^e) is a normal local domain
ModularCurve.UVCrossingModel.isIntegrallyClosed_of_uniformizer_pow24 below · depth 17 - Equal branch values at degenerate supersingular nodes
ModularCurve.exists_hasValue_frobNodePair_of_isIntegral_modularLocalizedAtPoint_of_degenerate401 below · depth 17 - Common branch value at a generic supersingular node
ModularCurve.exists_hasValue_frobNodePair_of_isIntegral_modularLocalizedAtPoint_of_ne_zero_of_ne_1728324 below · depth 17 - Crossing lemma at a supersingular node of X₀(q) mod q
ModularCurve.exists_hasValue_frobNodePair_of_mem_ssJSet_of_pow_eq535 below · depth 17 - Node units vanish only for constant data on F_N
ModularCurve.nodeUnit_eq_zero_iff_modularFunctionFieldC_of_perfectField124 below · depth 17 - Riemann–Roch in genus 0: dim_k L(E)=max(deg E+1,0)
AlgebraicCurve.finiteDimensional_and_finrank_riemannRochSpace_of_ringEquiv_ratFunc45 below · depth 18 - Gauss coordinate at a supersingular node with j=1728
ModularCurve.NodeLocalized.exists_gaussCoordinate_of_crossingPresentation_ofNat1728176 below · depth 18 - Gauss coordinate at a supersingular centre j=0
ModularCurve.NodeLocalized.exists_gaussCoordinate_of_crossingPresentation_zero176 below · depth 18 - Residues of j-c along a level-one prolongation pair
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_mem_integers_residue_jFun_sub_algebraMap82 below · depth 18 - Tube equation for the inertial displacement σ V-V
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_tubeEquation_smul_sub_self452 below · depth 18 - Exact branch orders make E+divG effective and good
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.isGoodDivisor_add_of_ord_residue_eq_neg182 below · depth 18 - Explicit split datum at one supersingular node, level one
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.splitDatum_of_forall_centred_ord_eq632 below · depth 18 - Unique prime above a generic supersingular node over a number field
ModularCurve.eq_of_isPrime_of_liesOver_descendedNodeRing_of_ne_zero_of_ne_1728321 below · depth 18 - One point over supersingular nodes with j=0 or 1728
ModularCurve.exists_hasValue_frobNodePair_of_isIntegral_modularLocalizedAtPoint_of_eq_zero_or_eq_1728380 below · depth 18 - Equal branch values at a supersingular node, q<5
ModularCurve.exists_hasValue_frobNodePair_of_isIntegral_modularLocalizedAtPoint_of_lt_five218 below · depth 18 - Annulus of modulus q² at the crossing j=1728
ModularCurve.exists_ssAnnulus_centred_ofNat1728_of_crossingPresentation_of_branchPrimes660 below · depth 18 - Annulus of places centred at a width-one supersingular crossing
ModularCurve.exists_ssAnnulus_centred_of_widthOne805 below · depth 18 - Width-three annulus at the supersingular crossing j=0
ModularCurve.exists_ssAnnulus_centred_zero_of_crossingPresentation_of_branchPrimes660 below · depth 18 - Twisted Lagrange interpolation in L(E) on a rational function field
AlgebraicCurve.exists_mem_riemannRochSpace_forall_hasValue_zpow_mul_of_ringEquiv_ratFunc45 below · depth 19 - Genus-zero Riemann–Roch: L(E-w) is properly contained in L(E)
AlgebraicCurve.exists_mem_riemannRochSpace_not_mem_sub_single_of_ringEquiv_ratFunc45 below · depth 19 - Interpolation on a rational function field with prescribed simple poles
AlgebraicCurve.exists_mem_riemannRochSpace_ord_sub_eq_one_hasValue_of_ringEquiv_ratFunc45 below · depth 19 - Dimension bound for twisted node-compatible pairs of sections
AlgebraicCurve.finrank_twistedNodeCompatible_add_min_card_le_of_ringEquiv_ratFunc45 below · depth 19 - Unique centred place with given value of j_q-j^q
ModularCurve.NodeLocalized.existsUnique_place_centred_hasValue_nodeCoord316 below · depth 19 - Crossing parameter attains each admissible value once at j=1728
ModularCurve.NodeLocalized.existsUnique_place_centred_ofNat1728_hasValue_of_crossingPresentation257 below · depth 19 - Unique place at the j=0 node with prescribed crossing value
ModularCurve.NodeLocalized.existsUnique_place_centred_zero_hasValue_of_crossingPresentation257 below · depth 19 - Node coordinate j_q-j^q has a value in the annulus
ModularCurve.NodeLocalized.exists_hasValue_nodeCoord_of_centred200 below · depth 19 - Unit principle at the width-two supersingular node j = 1728
ModularCurve.NodeLocalized.exists_int_mul_pow_param_isUnit_of_forall_centred_ofNat1728_ord_eq_zero_of_crossingPresentation639 below · depth 19 - Unit normalisation at the width-three supersingular node j=0
ModularCurve.NodeLocalized.exists_int_mul_pow_param_isUnit_of_forall_centred_zero_ord_eq_zero_of_crossingPresentation639 below · depth 19 - Two-branch normalisation at a supersingular node of X₀(q)
ModularCurve.NodeLocalized.exists_twoBranchNormalisation_qpow_of_forall_centred_ord_eq_zero684 below · depth 19 - Unit values at places centred on a supersingular node
ModularCurve.NodeLocalized.isUnit_evalAt_of_forall_centred_ord_eq_zero_of_gaussUnit562 below · depth 19 - Regularity at a supersingular node gives membership in the local ring
ModularCurve.NodeLocalized.mem_modularLocalizedAtPoint_coeffSubring_of_isIntegral_of_mem_fieldOver_of_redRestrict_eq_of_forall_centred_ord_nonneg566 below · depth 19 - Node coordinate minus its value is a uniformiser at W
ModularCurve.NodeLocalized.ord_nodeCoord_sub_eq_one_of_centred356 below · depth 19 - Crossing parameter uniformises at centred places of the j=1728 tube
ModularCurve.NodeLocalized.ord_sub_eq_one_of_centred_ofNat1728_of_crossingPresentation276 below · depth 19 - Crossing parameter uniformises at centred places, j=0
ModularCurve.NodeLocalized.ord_sub_eq_one_of_centred_zero_of_crossingPresentation276 below · depth 19 - Lifting node-compatible level-one pairs into L(D)
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_mem_riemannRochSpace_residue_eq_of_regular_of_nonneg547 below · depth 19 - Branch orders and glued twisted values at a supersingular node
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.le_ord_residue_and_exists_hasValue_of_mul553 below · depth 19 - Inertia-stable node telescoping identity at a supersingular crossing
ModularCurve.PlaceSpecialization.ProlongationTuple.exists_hasValue_residueFst_div_pow_and_residueSnd_div_pow_and_div_eq_angFactor_of_inertiaStable584 below · depth 19 - Primes over a supersingular node with j=0 or 1728
ModularCurve.eq_of_isPrime_of_liesOver_descendedNodeRing_of_eq_zero_or_eq_1728377 below · depth 19 - Normality of the node ring of X₀(q) at j∈{0,1728}
ModularCurve.isIntegrallyClosed_modularLocalizedAtPoint_coeffSubring_of_eq_zero_or_eq_1728431 below · depth 19 - Normality of the q-node ring at a supersingular point, q<5
ModularCurve.isIntegrallyClosed_modularLocalizedAtPoint_coeffSubring_of_lt_five215 below · depth 19 - Integral closedness at a generic supersingular node of X₀(q)
ModularCurve.isIntegrallyClosed_modularLocalizedAtPoint_coeffSubring_of_ne_zero_of_ne_1728321 below · depth 19 - Supersingularity of j with j^{q^2}=j under base change
ModularCurve.mem_ssJSet_algebraMap_of_pow_eq_of_ne_zero_of_ne_172815 below · depth 19 - Kronecker remainder equals q⁻¹(j_q-j^q)(j-j_q^{ q})
ModularCurve.modularEval_kroneckerRemainder0 below · depth 19 - Point evaluation of a transported integral polynomial
ModularCurve.pointEval_kroneckerRemainder0 below · depth 19 - HasValue criterion via integrality and order of g-c
AlgebraicCurve.Place.hasValue_iff_mem_and_eq_or_ord_sub_pos0 below · depth 20 - Value of a norm at a place below a separable covering
AlgebraicCurve.Place.hasValue_norm_along_of_separableAlong5 below · depth 20 - Glued sections on two rational curves: a dimension bound
AlgebraicCurve.finrank_nodeCompatible_add_min_card_le_of_ringEquiv_ratFunc45 below · depth 20 - Section prime at the width-two supersingular node j = 1728
ModularCurve.NodeLocalized.exists_heightOnePrime_sectionOfCrossingParam_centred_ofNat1728199 below · depth 20 - Height-one section prime for an admissible crossing value at j=0
ModularCurve.NodeLocalized.exists_heightOnePrime_sectionOfCrossingParam_centred_zero199 below · depth 20 - Residue at a centred place over a supersingular node
ModularCurve.NodeLocalized.exists_mem_and_red_eq_of_hasValue_frobNodePair_of_centred_of_ssJSet_of_ne_zero_of_ne_1728426 below · depth 20 - Surjection from W[[X₀,X₁]] onto the completed node ring
ModularCurve.NodeLocalized.exists_surjective_mvPowerSeries_adicCompletion_modularLocalizedAtPoint170 below · depth 20 - Two-branch normalisation at the node j=1728: width divides the Fricke exponent
ModularCurve.NodeLocalized.exists_twoBranchNormalisation_qpow_ofNat1728_width_dvd594 below · depth 20 - Two-branch normalisation at the node j=0: width divides the Fricke exponent
ModularCurve.NodeLocalized.exists_twoBranchNormalisation_qpow_zero_width_dvd594 below · depth 20 - Crossing presentations force q-adically equal values at node places
ModularCurve.NodeLocalized.forall_natCast_pow_dvd_sub_of_hasValue_eq_of_crossingPresentation146 below · depth 20 - Centred values at the node j=1728 agree q-adically
ModularCurve.NodeLocalized.forall_natCast_pow_dvd_sub_of_hasValue_eq_of_crossingPresentation_ofNat1728146 below · depth 20 - Unit values of a Gauss pair at nodes centred at 1728
ModularCurve.NodeLocalized.isUnit_evalAt_ofNat1728_of_gaussPair_of_isAlgClosed621 below · depth 20 - Unit values of a Gauss pair at the node j=0
ModularCurve.NodeLocalized.isUnit_evalAt_zero_of_gaussPair_of_isAlgClosed621 below · depth 20 - Non-vanishing of the near-branch node value at supersingular nodes
ModularCurve.NodeLocalized.ne_zero_of_hasValue_frobNodePair_of_forall_centred_ord_eq_zero449 below · depth 20 - Places of ℚ̄(X₀(q)) determined by values over a number field
ModularCurve.NodeLocalized.place_eq_of_forall_hasValue_iff_of_mem_fieldOver149 below · depth 20 - Inertia-equivariant lift of a node-compatible residue pair
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_mem_riemannRochSpace_residue_eq_forall_inertia_smul_eq_of_regular_of_nonneg557 below · depth 20 - Reductions of a bi-integral section of L(D), D good and effective
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.residuePair_mem_riemannRochSpace_of_isGoodDivisor153 below · depth 20 - Admissibility of the twisted gluing datum at level one
ModularCurve.PlaceSpecialization.ProlongationTuple.AnnulusDatumQ.spData_mem_admissible385 below · depth 20 - Glued n-torsion count under g+1 = 2h+#S
AlgebraicCurve.Pic0.finite_torsion_and_natCard_torsion_eq_natCard_gluedPic0_torsion_mul_of_genusFF_add_one_eq861 below · depth 21 - Scalar normalisation making a modular function a unit of the localised reduction
ModularCurve.CharPReduction.exists_smul_mem_modularLocalized_and_modularRedLocHom_ne_zero_of_charP125 below · depth 21 - Zero or pole at a place centred at a supersingular node
ModularCurve.NodeLocalized.exists_centred_ord_ne_zero_of_not_isUnit_frobNodePair448 below · depth 21 - Elements of order zero at a node are monomials
ModularCurve.NodeLocalized.exists_isUnit_and_eq_pow_mul_pow_mul_pow_mul_of_forall_centred_ord_eq_zero_of_crossingPresentation272 below · depth 21 - Residue compatibility at a supersingular node of X₀(q)
ModularCurve.NodeLocalized.exists_mem_and_red_eq_of_hasValue_frobNodePair_of_centred_of_ssJSet569 below · depth 21 - Membership in the node local ring at (a,a^q), a ≠ 0,1728
ModularCurve.NodeLocalized.mem_modularLocalizedAtPoint_coeffSubring_of_isIntegral_of_mem_fieldOver_of_ne_zero_of_ne_1728424 below · depth 21 - Nonvanishing of the near-branch node value at a supersingular centre
ModularCurve.NodeLocalized.ne_zero_of_hasValue_frobNodePair_of_forall_centred_ord_eq_zero_of_mem_ssJSet592 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 - 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 - 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 - 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 - Height-one prime containing p, avoiding q and the node
ModularCurve.NodeLocalized.exists_heightOne_mem_of_mul_eq_of_not_isUnit_frobNodePair405 below · depth 22 - A prime of the j-integral closure through p=fs avoiding the node
ModularCurve.NodeLocalized.exists_isPrime_mem_of_mul_eq_of_not_isUnit_frobNodePair361 below · depth 22 - Membership in the node-local ring over a number field
ModularCurve.NodeLocalized.mem_modularLocalizedAtPoint_coeffSubring_of_isIntegral_of_mem_fieldOver566 below · depth 22 - Regularity at a supersingular node gives localised membership
ModularCurve.NodeLocalized.mem_modularLocalizedAtPoint_of_mem_modularLocalized_of_forall_centred_ord_eq_zero_of_ssJSet568 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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
… and 101 more statements (search for the module name to find them).