Definitions/Def_ModularCurve_WeierstrassLevelComponents.lean
Level components and rigid Weierstrass level data
Over a commutative ring A, a LevelComponent A packages level data on Weierstrass models: a type obj T for every A-algebra T, a predicate IsLevel W x for W a Weierstrass model over T and x \in \mathrm{obj}(T), base change map f along A-algebra maps f : T \to T', and a transport act C along a change of Weierstrass coordinates C \in WeierstrassCurve.VariableChange T; the fields require map to be functorial, act to be a monoid action of the variable-change group, the two to commute via \mathrm{map}_f \circ \mathrm{act}_C = \mathrm{act}_{C.\mathrm{map} f} \circ \mathrm{map}_f, and IsLevel to be preserved by base change (for W.\mathrm{map} f) and by coordinate change (for C \bullet W), so the compatibility theorems are fields of the structure. The trivial component (\mathrm{obj} = \mathrm{PUnit}, IsLevel always true) and componentwise products are given. For a component L, L.Raw T consists of a Weierstrass model W over T, a proof that \Delta_W is a unit, a level datum x, and a proof of IsLevel W x: the curve and datum sit side by side with the condition as a propositional field, and two raw data agreeing in curve and datum are equal. L.toRigid assembles these into a RigidWeierstrassData A, whence the quotient by the variable-change relation and the j-invariant map.
Two concrete components are constructed. kernelVariableChangeDeg C\,d\,h = u^{-2d}\,h(u^2X + r) refines Mathlib-style kernel transport by fixing the degree d rather than reading h.\mathrm{natDegree}; with d fixed it is an action and commutes with base change. The \Gamma_0(N) component takes \mathrm{obj}(T) = T[X], IsLevel W h the predicate W.IsCyclicKernel N h (degree at most (N-1)/2 with leading coefficient 1 there, h \mid W.\mathrm{pre}\Psi N, and h dividing the relevant smulNumerators), map polynomial base change and act the above with d = (N-1)/2. The level-\ell component takes \mathrm{obj}(T) = LevelPData T (four coordinates x_P,y_P,x_Q,y_Q), IsLevel W D = IsLevelPStructure W ℓ D, map coordinatewise and act the usual x \mapsto u^{-2}(x-r), y \mapsto u^{-3}(y - s(x-r) - t); the action and base-change identities for LevelPData.variableChange are proved here. In both cases preservation of the level condition under coordinate change is taken as an explicit hypothesis. Finally weierstrassLevelRigidData is the rigid Weierstrass data of the triple product of the \Gamma_0(N) component, the level-\ell component and an arbitrary further component D_q.
Relation to Mathlib
Weierstrass models, their variable changes, discriminants and division polynomials are Mathlib's; LevelComponent, RigidWeierstrassData, IsCyclicKernel, LevelPData and IsLevelPStructure are the project's own, Mathlib having no moduli problems for elliptic curves with level structure. kernelVariableChangeDeg is a degree-parametrised variant of the project's WeierstrassCurve.kernelVariableChange, agreeing with it when the degree parameter is the polynomial's natural degree.
Where it is used
These constructions supply inhabitants of the level-moduli carrier used for the modular curves with \Gamma_0(N) and level-\ell structure occurring in the modularity argument: supplying a Drinfeld-basis component for D_q and the transformation statements for kernel polynomials and level-p data produces the moduli problem whose points and supersingular behaviour are studied downstream.
References
- N. M. Katz and B. Mazur, Arithmetic Moduli of Elliptic Curves, Annals of Mathematics Studies 108, Princeton University Press, 1985
- J. H. Silverman, The Arithmetic of Elliptic Curves, Graduate Texts in Mathematics 106, Springer, 1986
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 208 lines
- 35 declarations
- used in the statements of 280 theorems and imported by 296 proofs
- imports 2 definition modules
Source file: Definitions/Def_ModularCurve_WeierstrassLevelComponents.lean
Declarations
- structure
ModularCurve.LevelComponent - field
ModularCurve.LevelComponent.obj - field
ModularCurve.LevelComponent.IsLevel - field
ModularCurve.LevelComponent.map - field
ModularCurve.LevelComponent.act - field
ModularCurve.LevelComponent.map_id - field
ModularCurve.LevelComponent.map_comp - field
ModularCurve.LevelComponent.act_one - field
ModularCurve.LevelComponent.act_mul - field
ModularCurve.LevelComponent.act - field
ModularCurve.LevelComponent.map_act - field
ModularCurve.LevelComponent.C - field
ModularCurve.LevelComponent.isLevel_map - field
ModularCurve.LevelComponent.W - field
ModularCurve.LevelComponent.isLevel_act - field
ModularCurve.LevelComponent.W - def
ModularCurve.LevelComponent.trivial - def
ModularCurve.LevelComponent.prod - structure
ModularCurve.LevelComponent.Raw - field
ModularCurve.LevelComponent.Raw.curve - field
ModularCurve.LevelComponent.Raw.level - field
ModularCurve.LevelComponent.Raw.isLevel - theorem
ModularCurve.LevelComponent.Raw.ext' - def
ModularCurve.LevelComponent.toRigid - def
ModularCurve.kernelVariableChangeDeg - theorem
ModularCurve.kernelVariableChangeDeg_eq_kernelVariableChange - theorem
ModularCurve.kernelVariableChangeDeg_one - theorem
ModularCurve.kernelVariableChangeDeg_mul - theorem
ModularCurve.kernelVariableChangeDeg_map - def
ModularCurve.gamma0Component - theorem
ModularCurve.LevelPData.variableChange_one - theorem
ModularCurve.LevelPData.variableChange_mul - theorem
ModularCurve.LevelPData.map_variableChange - def
ModularCurve.levelPComponent - def
ModularCurve.weierstrassLevelRigidData
Source
import Mathlib import Definitions.Def_ModularCurve_WeierstrassLevelModuliDatum import Definitions.Def_ModularCurve_KatzLevelP set_option autoImplicit false universe u noncomputable section open Polynomial namespace ModularCurve structure LevelComponent (A : Type u) [CommRing A] where obj : (T : Type u) → [CommRing T] → [Algebra A T] → Type u IsLevel : {T : Type u} → [CommRing T] → [Algebra A T] → WeierstrassCurve T → obj T → Prop map : {T T' : Type u} → [CommRing T] → [Algebra A T] → [CommRing T'] → [Algebra A T'] → (T →ₐ[A] T') → obj T → obj T' act : {T : Type u} → [CommRing T] → [Algebra A T] → WeierstrassCurve.VariableChange T → obj T → obj T map_id : ∀ {T : Type u} [CommRing T] [Algebra A T] (x : obj T), map (AlgHom.id A T) x = x map_comp : ∀ {T T' T'' : Type u} [CommRing T] [Algebra A T] [CommRing T'] [Algebra A T'] [CommRing T''] [Algebra A T''] (f : T →ₐ[A] T') (g : T' →ₐ[A] T'') (x : obj T), map (g.comp f) x = map g (map f x) act_one : ∀ {T : Type u} [CommRing T] [Algebra A T] (x : obj T), act (1 : WeierstrassCurve.VariableChange T) x = x act_mul : ∀ {T : Type u} [CommRing T] [Algebra A T] (C C' : WeierstrassCurve.VariableChange T) (x : obj T), act (C * C') x = act C (act C' x) map_act : ∀ {T T' : Type u} [CommRing T] [Algebra A T] [CommRing T'] [Algebra A T'] (f : T →ₐ[A] T') (C : WeierstrassCurve.VariableChange T) (x : obj T), map f (act C x) = act (C.map f.toRingHom) (map f x) isLevel_map : ∀ {T T' : Type u} [CommRing T] [Algebra A T] [CommRing T'] [Algebra A T'] (f : T →ₐ[A] T') (W : WeierstrassCurve T) (x : obj T), IsLevel W x → IsLevel (W.map f.toRingHom) (map f x) isLevel_act : ∀ {T : Type u} [CommRing T] [Algebra A T] (C : WeierstrassCurve.VariableChange T) (W : WeierstrassCurve T) (x : obj T), IsLevel W x → IsLevel (C • W) (act C x) namespace LevelComponent variable {A : Type u} [CommRing A] def trivial : LevelComponent A where obj _ _ _ := PUnit IsLevel _ _ := True map _ x := x act _ x := x map_id _ := rfl map_comp _ _ _ := rfl act_one _ := rfl act_mul _ _ _ := rfl map_act _ _ _ := rfl isLevel_map _ _ _ h := h isLevel_act _ _ _ h := h def prod (L₁ L₂ : LevelComponent A) : LevelComponent A where obj T _ _ := L₁.obj T × L₂.obj T IsLevel W x := L₁.IsLevel W x.1 ∧ L₂.IsLevel W x.2 map f x := (L₁.map f x.1, L₂.map f x.2) act C x := (L₁.act C x.1, L₂.act C x.2) map_id x := Prod.ext (L₁.map_id x.1) (L₂.map_id x.2) map_comp f g x := Prod.ext (L₁.map_comp f g x.1) (L₂.map_comp f g x.2) act_one x := Prod.ext (L₁.act_one x.1) (L₂.act_one x.2) act_mul C C' x := Prod.ext (L₁.act_mul C C' x.1) (L₂.act_mul C C' x.2) map_act f C x := Prod.ext (L₁.map_act f C x.1) (L₂.map_act f C x.2) isLevel_map f W x h := ⟨L₁.isLevel_map f W x.1 h.1, L₂.isLevel_map f W x.2 h.2⟩ isLevel_act C W x h := ⟨L₁.isLevel_act C W x.1 h.1, L₂.isLevel_act C W x.2 h.2⟩ structure Raw (L : LevelComponent A) (T : Type u) [CommRing T] [Algebra A T] : Type u where curve : WeierstrassCurve T isUnit_Δ : IsUnit curve.Δ level : L.obj T isLevel : L.IsLevel curve level theorem Raw.ext' {L : LevelComponent A} {T : Type u} [CommRing T] [Algebra A T] {x y : L.Raw T} (h₁ : x.curve = y.curve) (h₂ : x.level = y.level) : x = y := by cases x; cases y; cases h₁; cases h₂; rfl def toRigid (L : LevelComponent A) : RigidWeierstrassData.{u} A where Raw T _ _ := L.Raw T curve x := x.curve isUnit_Δ x := x.isUnit_Δ mapRing f x := ⟨x.curve.map f.toRingHom, x.curve.isUnit_Δ_map f.toRingHom x.isUnit_Δ, L.map f x.level, L.isLevel_map f _ _ x.isLevel⟩ curve_mapRing _ _ := rfl mapRing_id x := Raw.ext' (x.curve.map_id) (L.map_id x.level) mapRing_comp f g x := Raw.ext' (x.curve.map_map f.toRingHom g.toRingHom).symm (L.map_comp f g x.level) act C x := ⟨C • x.curve, x.curve.isUnit_Δ_variableChange C x.isUnit_Δ, L.act C x.level, L.isLevel_act C _ _ x.isLevel⟩ act_one x := Raw.ext' (one_smul _ _) (L.act_one x.level) act_mul C C' x := Raw.ext' (mul_smul C C' _) (L.act_mul C C' x.level) curve_act _ _ := rfl mapRing_act f C x := Raw.ext' (x.curve.map_variableChange C f.toRingHom).symm (L.map_act f C x.level) end LevelComponent section Gamma0 variable {T : Type u} [CommRing T] def kernelVariableChangeDeg (C : WeierstrassCurve.VariableChange T) (d : ℕ) (h : T[X]) : T[X] := Polynomial.C (((C.u⁻¹ : Tˣ) : T) ^ (2 * d)) * h.comp (Polynomial.C ((C.u : Tˣ) : T) ^ 2 * X + Polynomial.C C.r) theorem kernelVariableChangeDeg_eq_kernelVariableChange (C : WeierstrassCurve.VariableChange T) (h : T[X]) : kernelVariableChangeDeg C h.natDegree h = WeierstrassCurve.kernelVariableChange C h := rfl theorem kernelVariableChangeDeg_one (d : ℕ) (h : T[X]) : kernelVariableChangeDeg (1 : WeierstrassCurve.VariableChange T) d h = h := by simp [kernelVariableChangeDeg, WeierstrassCurve.VariableChange.one_def] theorem kernelVariableChangeDeg_mul (C C' : WeierstrassCurve.VariableChange T) (d : ℕ) (h : T[X]) : kernelVariableChangeDeg (C * C') d h = kernelVariableChangeDeg C d (kernelVariableChangeDeg C' d h) := by simp only [kernelVariableChangeDeg, WeierstrassCurve.VariableChange.mul_def, Polynomial.mul_comp, Polynomial.C_comp, Polynomial.comp_assoc, Polynomial.add_comp, Polynomial.pow_comp, Polynomial.X_comp, mul_inv, Units.val_mul, mul_pow, map_mul, map_pow, map_add] have hin : (Polynomial.C ((C'.u : Tˣ) : T) ^ 2 * (Polynomial.C ((C.u : Tˣ) : T) ^ 2 * X + Polynomial.C C.r) + Polynomial.C C'.r : T[X]) = Polynomial.C ((C.u : Tˣ) : T) ^ 2 * Polynomial.C ((C'.u : Tˣ) : T) ^ 2 * X + (Polynomial.C C.r * Polynomial.C ((C'.u : Tˣ) : T) ^ 2 + Polynomial.C C'.r) := by ring rw [hin]; ring theorem kernelVariableChangeDeg_map {T' : Type u} [CommRing T'] (f : T →+* T') (C : WeierstrassCurve.VariableChange T) (d : ℕ) (h : T[X]) : (kernelVariableChangeDeg C d h).map f = kernelVariableChangeDeg (C.map f) d (h.map f) := by simp only [kernelVariableChangeDeg, Polynomial.map_mul, Polynomial.map_C, Polynomial.map_comp, Polynomial.map_add, Polynomial.map_pow, Polynomial.map_X, WeierstrassCurve.VariableChange.map, map_pow, Units.coe_map_inv, Units.coe_map, MonoidHom.coe_coe] end Gamma0 def gamma0Component (A : Type u) [CommRing A] (N : ℕ) (hN : ∀ (T : Type u) [CommRing T] [Algebra A T] (W : WeierstrassCurve T) (C : WeierstrassCurve.VariableChange T) (h : T[X]), W.IsCyclicKernel N h → (C • W).IsCyclicKernel N (kernelVariableChangeDeg C ((N - 1) / 2) h)) : LevelComponent A where obj T _ _ := T[X] IsLevel W h := W.IsCyclicKernel N h map f h := h.map f.toRingHom act C h := kernelVariableChangeDeg C ((N - 1) / 2) h map_id _ := Polynomial.map_id map_comp f g h := (Polynomial.map_map f.toRingHom g.toRingHom h).symm act_one h := kernelVariableChangeDeg_one _ h act_mul C C' h := kernelVariableChangeDeg_mul C C' _ h map_act f C h := kernelVariableChangeDeg_map f.toRingHom C _ h isLevel_map f W _ hh := WeierstrassCurve.IsCyclicKernel.map W f.toRingHom hh isLevel_act C W h hh := hN _ W C h hh section LevelP variable {T : Type u} [CommRing T] theorem LevelPData.variableChange_one (D : LevelPData T) : D.variableChange (1 : WeierstrassCurve.VariableChange T) = D := by ext <;> simp [LevelPData.variableChange, WeierstrassCurve.VariableChange.one_def] theorem LevelPData.variableChange_mul (C C' : WeierstrassCurve.VariableChange T) (D : LevelPData T) : D.variableChange (C * C') = (D.variableChange C').variableChange C := by set v : T := ((C.u⁻¹ : Tˣ) : T) with hv set v' : T := ((C'.u⁻¹ : Tˣ) : T) with hv' set u' : T := ((C'.u : Tˣ) : T) with hu' have h1 : v' * u' = 1 := by rw [hv', hu', Units.inv_mul] have h2 : v' ^ 2 * u' ^ 2 = 1 := by rw [← mul_pow, h1, one_pow] have h3 : v' ^ 3 * u' ^ 3 = 1 := by rw [← mul_pow, h1, one_pow] ext <;> simp only [LevelPData.variableChange, WeierstrassCurve.VariableChange.mul_def, mul_inv, Units.val_mul, mul_pow, ← hv, ← hv', ← hu'] · linear_combination (-(v ^ 2) * C.r) * h2 · linear_combination (-(v ^ 3) * C.s * (D.xP - C'.r) * v' ^ 2) * h1 + (v ^ 3 * (C.s * C.r - C.t)) * h3 · linear_combination (-(v ^ 2) * C.r) * h2 · linear_combination (-(v ^ 3) * C.s * (D.xQ - C'.r) * v' ^ 2) * h1 + (v ^ 3 * (C.s * C.r - C.t)) * h3 theorem LevelPData.map_variableChange {T' : Type u} [CommRing T'] (f : T →+* T') (C : WeierstrassCurve.VariableChange T) (D : LevelPData T) : (D.variableChange C).map f = (D.map f).variableChange (C.map f) := by ext <;> simp [LevelPData.variableChange, LevelPData.map, WeierstrassCurve.VariableChange.map, map_mul, map_sub, map_pow] end LevelP def levelPComponent (A : Type u) [CommRing A] (ℓ : ℕ) (hℓ : ∀ (T : Type u) [CommRing T] [Algebra A T] (W : WeierstrassCurve T) (C : WeierstrassCurve.VariableChange T) (D : LevelPData T), IsLevelPStructure W ℓ D → IsLevelPStructure (C • W) ℓ (D.variableChange C)) : LevelComponent A where obj T _ _ := LevelPData T IsLevel W D := IsLevelPStructure W ℓ D map f D := D.map f.toRingHom act C D := D.variableChange C map_id _ := rfl map_comp _ _ _ := rfl act_one D := LevelPData.variableChange_one D act_mul C C' D := LevelPData.variableChange_mul C C' D map_act f C D := LevelPData.map_variableChange f.toRingHom C D isLevel_map f _ _ hD := hD.map f.toRingHom isLevel_act C W D hD := hℓ _ W C D hD def weierstrassLevelRigidData (A : Type u) [CommRing A] (ℓ N : ℕ) (hℓ : ∀ (T : Type u) [CommRing T] [Algebra A T] (W : WeierstrassCurve T) (C : WeierstrassCurve.VariableChange T) (D : LevelPData T), IsLevelPStructure W ℓ D → IsLevelPStructure (C • W) ℓ (D.variableChange C)) (hN : ∀ (T : Type u) [CommRing T] [Algebra A T] (W : WeierstrassCurve T) (C : WeierstrassCurve.VariableChange T) (h : T[X]), W.IsCyclicKernel N h → (C • W).IsCyclicKernel N (kernelVariableChangeDeg C ((N - 1) / 2) h)) (Dq : LevelComponent A) : RigidWeierstrassData.{u} A := ((gamma0Component A N hN).prod ((levelPComponent A ℓ hℓ).prod Dq)).toRigid end ModularCurve end
Statements phrased using this module (280)
- Invariance of the (p,k)-kernel predicate under variable change
ModularCurve.IsGamma0PowAt.variableChange5 below · depth 28 - Existence of pinned global group laws and level transport
WeierstrassCurve.DrinfeldGlobal.exists_groupLaws_levelTransport_isChordTangent_isOriginIdentity_isSectionTransport111 below · depth 28 - Full-level Weierstrass moduli package, integral over A[j₀]
ModularCurve.FullLevel.exists_levelModuliPackageAbs_isIntegral_adjoin_of_isSectionTransport_of_isNoetherianRing_of_isUnit_two_three_gamma0Pow139 below · depth 29 - Tate point of the Γ₀(M')-rigidified problem and level automorphisms
ModularCurve.FullLevel.exists_pt_forall_isLevelAutAt_map_eq_act_of_exists_ringHom_gamma0Pow_of_tate330 below · depth 29 - Classifying map's image is the integral closure of A[j]
ModularCurve.FullLevel.range_classify_eq_chartAlgFin_of_jOf_eq_jqNModC_of_exists_ringHom_gamma0Pow2,210 below · depth 29 - Relabelling action of Γ₀(M') on the rigidified moduli problem
ModularCurve.LevelRelabelling.exists_isModuliRelabelling_gamma0Pow129 below · depth 29 - Generator-kernel polynomials of level p^k under variable change
WeierstrassCurve.IsCyclicGenKernel.variableChange3 below · depth 29 - Two-torsion kernel polynomials under Weierstrass changes of variables
WeierstrassCurve.IsTwoKernel.variableChange0 below · depth 29 - Density of the full-level classifying image at the Tate point
ModularCurve.FullLevel.dense_range_classify_of_jOf_eq_jqNModC_of_exists_ringHom_gamma0Pow_of_finiteType486 below · depth 30 - Finite-type representability of raw full-level rigid Weierstrass data
ModularCurve.FullLevel.exists_represents_raw_rigidData_gamma0Pow76 below · depth 30 - Level automorphisms act on the Tate datum by γ-relabelling
ModularCurve.FullLevel.exists_variableChange_act_mapRing_eq_relabel_of_isLevelAutAt_of_level_fst_gamma0Pow246 below · depth 30 - Tate raw datum: weight-one twist, cusp levels, j=j(mathsf q^{qℓ})
ModularCurve.FullLevel.exists_variableChange_raw_rigidData_tate_weightOne_level_fst_gamma0Pow286 below · depth 30 - Integrality of the full-level moduli ring over A[j₀]
ModularCurve.FullLevel.isIntegral_adjoin_j0_levelModuliPackageAbs_of_isUnit_two_three_gamma0Pow103 below · depth 30 - Integral closedness of the q-expansion image of the moduli ring
ModularCurve.FullLevel.mem_range_of_isIntegral_range_levelModuliPackageAbs_qExpansion_of_isIntegral_of_dense_of_exists_ringHom_gamma0Pow2,176 below · depth 30 - Universal Katz level-ℓ Weil pairing as ℓ-th root of unity
ModularCurve.LevelComponent.exists_pow_eq_one_and_forall_weilPairing0_toPoint_mapRing_eq_of_mk_eq_univ39 below · depth 30 - Relabelling problem automorphisms for the Γ₀(M')×Γ(ℓ)×Γ(q) datum
ModularCurve.LevelRelabelling.exists_problemAut_relabel_one_mul_of_isUnit_det_gamma0Pow128 below · depth 30 - Representability of the H₁=Γ₀(M')∩Γ₁(ℓ) Weierstrass problem
ModularCurve.FullLevel.Diamond.exists_levelModuliPackageAbs_isIntegral_adjoin_of_isSectionTransport_of_isNoetherianRing_rigidDataH1Pow129 below · depth 31 - Level automorphisms act on the Tate point by diamond relabelling
ModularCurve.FullLevel.Diamond.exists_pt_forall_isLevelAutAt_map_eq_act_of_exists_ringHom_rigidDataH1Pow_of_tate_pinGamma1350 below · depth 31 - Range of the H₁-classifying map is the finite chart algebra
ModularCurve.FullLevel.Diamond.range_classify_eq_chartAlgFin_of_jOf_eq_jqNModC_of_exists_ringHom_rigidDataH1Pow2,131 below · depth 31 - Transported μ_{p^k} kernel has coefficients in the level field
ModularCurve.FullLevel.coeff_kernelVariableChangeDeg_mem_range_of_variableChange_cuspData_xP_mem_range_gamma0Pow58 below · depth 31 - Galois translate of the Tate point relabels its Drinfeld pair
ModularCurve.FullLevel.exists_level_snd_snd_act_mapRing_eq_relabel_gamma0Pow230 below · depth 31 - Level automorphisms act on the Tate point by relabelling
ModularCurve.FullLevel.exists_pt_forall_isLevelAutAt_map_eq_act_of_exists_ringHom_gamma0Pow330 below · depth 31 - A unit μ with ⟨μ,0,0,0⟩·τ_*x having the curve of x
ModularCurve.FullLevel.exists_units_curve_act_mapRing_eq_of_isLevelAutAt_gamma0Pow147 below · depth 31 - Igusa bound: [±Γ_H: SL₂(ℤ)] index bounds [T:L(j)]
ModularCurve.FullLevel.index_le_finrank_adjoin_jOf_of_transcendental_jOf_rigidDataPow411 below · depth 31 - Components of the full-level moduli ring are normal
ModularCurve.FullLevel.isIntegrallyClosed_quotient_of_mem_minimalPrimes_levelModuliPackageAbs_gamma0Pow2,174 below · depth 31 - Components of the full-level moduli ring have reduced special fibre
ModularCurve.FullLevel.isReduced_residueField_tensorProduct_quotient_of_mem_minimalPrimes_levelModuliPackageAbs_gamma0Pow2,167 below · depth 31 - Minimal primes of the full-level moduli ring are conjugate
ModularCurve.FullLevel.ker_classify_mem_minimalPrimes_and_forall_exists_algEquiv_comap_eq_gamma0Pow2,100 below · depth 31 - Kernel of the q-expansion map is a minimal prime
ModularCurve.FullLevel.ker_mem_minimalPrimes_of_levelModuliPackageAbs_qExpansion_of_dense_of_exists_ringHom_gamma0Pow0 below · depth 31 - Valuative criterion over a DVR for the full-level moduli ring
ModularCurve.FullLevel.levelModuliPackageAbs_apply_mem_valuationSubring_of_isDiscreteValuationRing_of_j0_mem_of_isUnit_two_three_gamma0Pow94 below · depth 31 - Level automorphisms fix the Γ₀-slot at the Tate point
ModularCurve.FullLevel.level_fst_act_mapRing_eq_of_curve_eq_units_of_level_fst_gamma0Pow128 below · depth 31 - Level-ℓ slot of the twisted τ-transport is the γ-relabelling
ModularCurve.FullLevel.level_snd_fst_act_mapRing_eq_relabel_gamma0Pow141 below · depth 31 - Local constancy of the Weil pairing of a level-ℓ basis
ModularCurve.LevelComponent.exists_not_mem_and_exists_pow_eq_one_forall_weilPairing0_toPoint_mapRing_localizationAway_eq33 below · depth 31 - Diamond relabelling by Γ₀(M') on `rigidDataH1Pow`
ModularCurve.LevelRelabelling.exists_isModuliRelabelling_rigidDataH1Pow180 below · depth 31 - Moduli reading of a supersingular point of the integral model
ModularCurve.FullLevel.AuxLevel.exists_levelModuliPackageAbs_gamma0Pow_ringEquiv_adicCompletion_stalk_const_of_mem_ssJSet2,261 below · depth 32 - Dense image of the H₁ classifying map at j(q^q)
ModularCurve.FullLevel.Diamond.dense_range_classify_of_jOf_eq_jqNModC_of_exists_ringHom_rigidDataH1Pow_of_finiteType492 below · depth 32 - Representability of raw H₁-level data over A
ModularCurve.FullLevel.Diamond.exists_represents_raw_rigidDataH1Pow71 below · depth 32 - Level automorphism at γ⁻¹ realises the diamond relabelling
ModularCurve.FullLevel.Diamond.exists_variableChange_act_mapRing_eq_relabel_of_isLevelAutAt_of_level_fst_rigidDataH1Pow252 below · depth 32 - Tate point of the H₁ moduli problem over K
ModularCurve.FullLevel.Diamond.exists_variableChange_raw_rigidData_tate_weightOne_level_fst_rigidDataH1Pow300 below · depth 32 - Integrality of the H₁-moduli ring over A[j₀]
ModularCurve.FullLevel.Diamond.isIntegral_adjoin_j0_levelModuliPackageAbs_rigidDataH1Pow99 below · depth 32 - Reduced special fibre on each component of the H₁ moduli ring
ModularCurve.FullLevel.Diamond.isReduced_residueField_tensorProduct_quotient_of_mem_minimalPrimes_levelModuliPackageAbs_rigidDataH1Pow2,116 below · depth 32 - Every minimal prime is a j-fixing translate of the Tate kernel
ModularCurve.FullLevel.Diamond.ker_classify_mem_minimalPrimes_and_forall_exists_algEquiv_comap_eq_rigidDataH1Pow1,974 below · depth 32 - Integral closedness of the q-expansion image, Γ₁(ℓ_g) edition
ModularCurve.FullLevel.Diamond.mem_range_of_isIntegral_range_levelModuliPackageAbs_qExpansion_of_isIntegral_of_dense_of_exists_ringHom_rigidDataH1Pow2,124 below · depth 32 - Density of the classifying map at the pinned Tate point
ModularCurve.FullLevel.dense_range_classify_of_muTuple_pin_gamma0Pow722 below · depth 32 - Base change of the abstract full-level moduli package
ModularCurve.FullLevel.exists_levelModuliPackageAbs_restrictScalars_gamma0Pow0 below · depth 32 - Reading rigid full-level structures as point-level data, Galois-equivariantly
ModularCurve.FullLevel.exists_levelReading_baseChange_of_isAlgClosed40 below · depth 32 - Descent of full-level K-points to a discrete valuation ring
ModularCurve.FullLevel.exists_map_eq_of_isDiscreteValuationRing_of_jOf_mem_range_gamma0Pow92 below · depth 32 - Level automorphisms act on the Tate point as relabelling
ModularCurve.FullLevel.exists_pt_forall_isLevelAutAt_map_eq_act_of_exists_ringHom_gamma0Pow_of_tate_of_algebra_of_isScalarTower332 below · depth 32 - Flatness of the full-level moduli ring over a discrete valuation ring
ModularCurve.FullLevel.flat_levelModuliPackageAbs_gamma0Pow_of_isDiscreteValuationRing_of_five_le1,383 below · depth 32 - Minimal primes of the full-level moduli ring as relabelling translates
ModularCurve.FullLevel.forall_exists_algEquiv_comap_ker_classify_eq_of_dense_gamma0Pow1,747 below · depth 32 - Normality of generic fibres of the full-level moduli ring
ModularCurve.FullLevel.isDomain_and_isIntegrallyClosed_tensorProduct_quotient_of_mem_minimalPrimes_levelModuliPackageAbs_gamma0Pow1,387 below · depth 32 - Geometric integrality of components of the full-level moduli ring
ModularCurve.FullLevel.isDomain_tensorProduct_quotient_of_mem_minimalPrimes_levelModuliPackageAbs_gamma0Pow_of_isPrimitiveRoot2,104 below · depth 32 - Reduced special fibre at a supersingular point of a full-level component
ModularCurve.FullLevel.isReduced_residueField_tensorProduct_adicCompletion_quotient_of_nthSeries_eq_mul_X_pow_mul_of_pow_sub_one_eq_mul_levelModuliPackageAbs_gamma0Pow1,474 below · depth 32 - Reduced special fibre at an ordinary point
ModularCurve.FullLevel.isReduced_residueField_tensorProduct_adicCompletion_quotient_of_nthSeries_eq_mul_X_pow_of_isPrimitiveRoot_levelModuliPackageAbs_gamma0Pow1,459 below · depth 32 - Kernel of the classifying map at j(q^{qℓ}) is minimal
ModularCurve.FullLevel.ker_classify_mem_minimalPrimes_of_jOf_eq_jqNModC_gamma0Pow104 below · depth 32 - A Γ₀(M') element fixing the Tate point is ± 1 mod qℓ
ModularCurve.FullLevel.map_eq_one_or_eq_neg_one_of_act_eq_self_gamma0Pow106 below · depth 32 - Regular two-dimensional complete local ring at a supersingular point
ModularCurve.LevelModuliPackageAbs.exists_isDrinfeldBasisAdic_isRegularLocalRing_hasseParam_adicCompletion_of_forall_mem_ssJSet_gamma0Pow1,037 below · depth 32 - Uniqueness of origin-pinned group laws and their level transports
WeierstrassCurve.DrinfeldGlobal.groupLaws_eq_and_levelTransport_heq_of_isOriginIdentity_of_isSectionTransport25 below · depth 32 - Transfer of the Drinfeld level pins under restriction of scalars
WeierstrassCurve.DrinfeldGlobal.pins_restrictScalars0 below · depth 32 - Moduli reading of a supersingular point of the cyclotomic two-chart model
ModularCurve.FullLevel.AuxLevel.exists_levelModuliPackageAbs_gamma0Pow_ringEquiv_adicCompletion_stalk_const_classify_levelAut_of_mem_ssJSet2,259 below · depth 33 - Moduli package at a supersingular point of the two-chart model
ModularCurve.FullLevel.AuxLevelOne.exists_levelModuliPackageAbs_rigidDataH1Pow_ringEquiv_adicCompletion_stalk_const_of_mem_ssJSet_of_isPrimitiveRoot_mul_of_dvd2,163 below · depth 33 - Transported μ_{p^k} kernel has coefficients in the level-H₁ field
ModularCurve.FullLevel.Diamond.coeff_kernelVariableChangeDeg_mem_range_of_variableChange_tateToricPoint_fst_mem_range_rigidDataH1Pow58 below · depth 33 - Base change of the abstract H₁ level-moduli package
ModularCurve.FullLevel.Diamond.exists_levelModuliPackageAbs_restrictScalars_rigidDataH1Pow0 below · depth 33 - Transport of the Drinfeld Γ(q)-pair is relabelling by γ
ModularCurve.FullLevel.Diamond.exists_level_snd_snd_act_mapRing_eq_relabel_rigidDataH1Pow236 below · depth 33 - Raw Γ₀(M')–Γ₁(ℓ)–Γ(q) data are representable by a finite-type algebra
ModularCurve.FullLevel.Diamond.exists_represents_raw_rigidDataGamma1Pow70 below · depth 33 - Level automorphism rescales the Tate datum by a weight-one unit
ModularCurve.FullLevel.Diamond.exists_units_curve_act_mapRing_eq_of_isLevelAutAt_rigidDataH1Pow151 below · depth 33 - K-rationality of the weight-one twist of Tate(mathsf q^q)
ModularCurve.FullLevel.Diamond.exists_variableChange_weightOne_tateBase_mem_laurentBaseChange_and_cuspData_mem_of_exists_ringHom_pinGamma1114 below · depth 33 - Flatness over a DVR of the H₁-level fine moduli ring
ModularCurve.FullLevel.Diamond.flat_levelModuliPackageAbs_rigidDataH1Pow_of_isDiscreteValuationRing1,398 below · depth 33 - Minimal primes as j₀-fixing translates of the Tate kernel
ModularCurve.FullLevel.Diamond.forall_exists_algEquiv_comap_ker_classify_eq_of_dense_rigidDataH1Pow1,745 below · depth 33 - Igusa bound: [SL₂(ℤ):±Γ_{H_1}]≤[T:L(j(x))]
ModularCurve.FullLevel.Diamond.index_le_finrank_adjoin_jOf_of_transcendental_jOf_rigidDataH1Pow417 below · depth 33 - Components of the H₁ fine moduli ring stay integral over L
ModularCurve.FullLevel.Diamond.isDomain_tensorProduct_quotient_of_mem_minimalPrimes_levelModuliPackageAbs_rigidDataH1Pow_of_isPrimitiveRoot2,056 below · depth 33 - Minimal-prime quotients of the H₁ moduli ring are normal
ModularCurve.FullLevel.Diamond.isIntegrallyClosed_quotient_of_mem_minimalPrimes_levelModuliPackageAbs_rigidDataH1Pow2,123 below · depth 33 - Reduced special fibre at a supersingular point, H₁ level
ModularCurve.FullLevel.Diamond.isReduced_residueField_tensorProduct_adicCompletion_quotient_of_nthSeries_eq_mul_X_pow_mul_of_pow_sub_one_eq_mul_levelModuliPackageAbs_rigidDataH1Pow1,485 below · depth 33 - Reduced special fibre at an ordinary point, H₁ level
ModularCurve.FullLevel.Diamond.isReduced_residueField_tensorProduct_adicCompletion_quotient_of_nthSeries_eq_mul_X_pow_of_isPrimitiveRoot_levelModuliPackageAbs_rigidDataH1Pow1,471 below · depth 33 - Dense q-expansion kernel is a minimal prime (H₁ level)
ModularCurve.FullLevel.Diamond.ker_mem_minimalPrimes_of_levelModuliPackageAbs_qExpansion_of_dense_of_exists_ringHom_rigidDataH1Pow0 below · depth 33 - Valuative criterion over the j-line for the H₁ moduli ring
ModularCurve.FullLevel.Diamond.levelModuliPackageAbs_apply_mem_valuationSubring_of_isDiscreteValuationRing_of_j0_mem_rigidDataH1Pow93 below · depth 33 - Γ₀(M')-component fixed by the rescaled level automorphism
ModularCurve.FullLevel.Diamond.level_fst_act_mapRing_eq_of_curve_eq_units_of_level_fst_rigidDataH1Pow14 below · depth 33 - Diamond action: Γ₁(ℓ_g)-point of the τ-transport is γ₀₀-fold
ModularCurve.FullLevel.Diamond.toPoint_level_snd_fst_act_mapRing_eq_zsmul_toPoint_of_curve_eq_units_rigidDataH1Pow142 below · depth 33 - Minimal primes of the moduli ring dominate the j-line
ModularCurve.FullLevel.comap_adjoin_jZero_eq_bot_of_mem_minimalPrimes_gamma0Pow1,397 below · depth 33 - Weil pairings separate relabelled full-level components
ModularCurve.FullLevel.det_eq_of_ker_classify_act_eq_of_relabel_gamma0Pow281 below · depth 33 - Minimal primes of the full-level moduli ring are q-expansion kernels
ModularCurve.FullLevel.exists_algHom_laurentSeries_ker_eq_of_mem_minimalPrimes_levelModuliPackageAbs_gamma0Pow_of_isPrimitiveRoot2,101 below · depth 33 - Constants of A=A₀[ζ_q] lie in the classifying map's image
ModularCurve.FullLevel.exists_classify_eq_algebraMap_of_adjoin_eq_top_gamma0Pow_of_finite_residueField1,417 below · depth 33 - Γ₀(M')-layer lies in fractions of classify-values at the Tate point
ModularCurve.FullLevel.exists_classify_eq_of_coe_eq_qExpand_of_mem_laurentBaseChange_gamma0Pow_tatePoint456 below · depth 33 - Tate point of the full-level moduli datum over K
ModularCurve.FullLevel.exists_pt_laurentBaseChange_jOf_eq_jqNModC_gamma0Pow_of_algebra228 below · depth 33 - Generic rank of the moduli component through a dense point
ModularCurve.FullLevel.finrank_fractionRing_tensorProduct_quotient_ker_classify_eq_of_dense_gamma0Pow346 below · depth 33 - Flatness and normal components of the full-level moduli ring
ModularCurve.FullLevel.flat_and_isIntegrallyClosed_quotient_of_mem_minimalPrimes_levelModuliPackageAbs_of_maximalIdeal_eq_span_natCast_gamma0Pow1,368 below · depth 33 - Classifying map has image the j-finite chart algebra
ModularCurve.FullLevel.forall_classify_mem_chartAlgFin_and_forall_exists_classify_eq_of_jOf_eq_jqNModC_gamma0Pow_of_isScalarTower2,213 below · depth 33 - Supersingular completion of full-level moduli ring modulo 1-ζ is reduced
ModularCurve.FullLevel.isReduced_adicCompletion_quotient_span_one_sub_of_isPrimitiveRoot_of_nthSeries_eq_mul_X_pow_mul_levelModuliPackageAbs_gamma0Pow1,035 below · depth 33 - Reducedness of (1-ζ)-quotient at an ordinary point of the full-level package
ModularCurve.FullLevel.isReduced_adicCompletion_quotient_span_one_sub_of_pow_eq_one_of_nthSeries_eq_mul_X_pow_levelModuliPackageAbs_gamma0Pow1,164 below · depth 33 - Generic fibre of the full-level moduli ring: reduced, of rank ψ(M')|GL₂(𝔽_ℓ)||GL₂(𝔽_q)|/2
ModularCurve.FullLevel.isReduced_and_finrank_fractionRing_tensorProduct_levelModuliPackageAbs_eq_gamma0Pow301 below · depth 33 - Kernel of the Tate-point classifying map lies in every prime power
ModularCurve.FullLevel.ker_classify_le_pow_of_isPrime_of_jOf_eq_jqNModC_gamma0Pow_of_adjoin_eq_top2,123 below · depth 33 - Level automorphism fixing the Tate point's classifying image is trivial
ModularCurve.FullLevel.levelAut_eq_one_of_forall_apply_classify_eq_gamma0Pow_tatePoint312 below · depth 33 - Unramified descent of completed local rings at an ordinary point
ModularCurve.FullLevel.nonempty_ringEquiv_adicCompletion_quotient_adicCompletion_unramified_of_nthSeries_eq_mul_X_pow_levelModuliPackageAbs_gamma0Pow1,455 below · depth 33 - Completed local ring at a supersingular point descends to an unramified base
ModularCurve.FullLevel.nonempty_ringEquiv_adicCompletion_quotient_adicCompletion_unramified_of_nthSeries_eq_mul_X_pow_mul_levelModuliPackageAbs_gamma0Pow1,455 below · depth 33 - Smoothness of the generic fibre of the full-level moduli ring
ModularCurve.FullLevel.smooth_tensorProduct_levelModuliPackageAbs_gamma0Pow_of_isFractionRing213 below · depth 33 - Hasse parameter and j-invariant at a supersingular point, Γ₀-tuple level
ModularCurve.LevelModuliPackageAbs.exists_coeff_nthSeries_sub_mul_mem_span_and_map_j0_sub_algebraMap_eq_mul_pow_of_factorsThrough_of_five_le_gamma0Pow73 below · depth 33 - Regular complete local ring at a supersingular Drinfeld-level point
ModularCurve.LevelModuliPackageAbs.exists_isDrinfeldBasisAdic_isRegularLocalRing_hasseParam_adicCompletion_of_forall_mem_ssJSet_rigidDataH1Pow1,053 below · depth 33 - Complete local ring at a supersingular point, with level relabelling
ModularCurve.LevelModuliPackageAbs.exists_isDrinfeldBasisAdic_isRegularLocalRing_hasseParam_problemAut_linearPart_adicCompletion_of_forall_mem_ssJSet_gamma0Pow1,093 below · depth 33 - Universal formal Drinfeld basis at a supersingular point
ModularCurve.LevelModuliPackageAbs.exists_reducesToOrigin_isDrinfeldBasisAdic_universal_of_factorsThrough_of_ne_two_gamma0Pow960 below · depth 33 - Relabelling by a matrix invertible mod qℓ gives problem automorphisms
ModularCurve.LevelRelabelling.exists_problemAut_relabel_of_isUnit_det_gamma0Pow128 below · depth 33 - Tate-curve divisibility of the level kernel into `inLineMulPoly`
ModularCurve.dvd_inLineMulPoly_of_map_eq_variableChange_tateBase_tateToricPoint_of_map_eq_kernelVariableChangeDeg19 below · depth 33 - Completed stalk of two-chart model versus 𝔭-adic moduli completion
ModularCurve.exists_ringEquiv_adicCompletion_stalk_adicCompletion_comap_of_ker_classify_le_pow11 below · depth 33 - Supersingularity of the universal j-invariant at 𝔭
ModularCurve.forall_map_j0_mem_ssJSet_of_ker_eq_comap_of_jOf_eq_jqNModC397 below · depth 33 - Toric ℓ-torsion points give Γ₁(ℓ)-points on the Tate curve
ModularCurve.isGamma1Point_tateBase_tateToricPoint_of_isPrimitiveRoot17 below · depth 33 - Model-fixing coordinate changes versus rational automorphisms preserving ⟨ g⟩
ModularCurve.natCard_variableChange_smul_eq_and_kernelVariableChangeDeg_eq_eq_natCard_rationalAut_map_zmultiples_eq22 below · depth 33 - Invariance of automorphism counts under a field isomorphism
ModularCurve.natCard_variableChange_smul_eq_and_kernelVariableChangeDeg_eq_eq_of_ringEquiv0 below · depth 33 - Torsion basis at the Tate cusp pair of level q
ModularCurve.torsion_basis_of_map_eq_variableChange_tateBase_cuspData86 below · depth 33 - Drinfeld q-bases lift from K to a DVR R₀
WeierstrassCurve.DrinfeldGlobal.RawDrinfeldPair.exists_map_eq_and_isLevel_of_isLevel_map70 below · depth 33 - Moduli reading of a supersingular stalk with level-automorphism dictionary
ModularCurve.FullLevel.AuxLevelOne.exists_levelModuliPackageAbs_rigidDataH1Pow_ringEquiv_adicCompletion_stalk_const_classify_levelAut_of_mem_ssJSet_of_isPrimitiveRoot_mul_of_dvd2,214 below · depth 34 - Minimal primes of the H₁ moduli ring contract to zero
ModularCurve.FullLevel.Diamond.comap_adjoin_jZero_eq_bot_of_mem_minimalPrimes_rigidDataH1Pow1,409 below · depth 34 - Drinfeld relabellings with equal classifying kernels have congruent determinants
ModularCurve.FullLevel.Diamond.det_eq_of_ker_classify_act_eq_of_relabel_drinfeld_rigidDataH1Pow270 below · depth 34 - Minimal primes of the H₁ moduli ring as q-expansion kernels
ModularCurve.FullLevel.Diamond.exists_algHom_laurentSeries_ker_eq_of_mem_minimalPrimes_levelModuliPackageAbs_rigidDataH1Pow_of_isPrimitiveRoot2,053 below · depth 34 - Reading H₁-level structures over an algebraically closed field
ModularCurve.FullLevel.Diamond.exists_levelReading_baseChange_of_isAlgClosed_rigidDataH1Pow43 below · depth 34 - Points with integral j over a DVR lift, H₁-level
ModularCurve.FullLevel.Diamond.exists_map_eq_of_isDiscreteValuationRing_of_jOf_mem_range_rigidDataH1Pow91 below · depth 34 - Rank of the H₁ classifying quotient at a dense j(mathsf q^q) point
ModularCurve.FullLevel.Diamond.finrank_fractionRing_tensorProduct_quotient_ker_classify_eq_of_dense_rigidDataH1Pow341 below · depth 34 - Flatness and normal components of the H₁ moduli ring
ModularCurve.FullLevel.Diamond.flat_and_isIntegrallyClosed_quotient_of_mem_minimalPrimes_levelModuliPackageAbs_of_maximalIdeal_eq_span_natCast_rigidDataH1Pow1,381 below · depth 34 - Normality of generic fibres of the H₁ moduli components
ModularCurve.FullLevel.Diamond.isDomain_and_isIntegrallyClosed_tensorProduct_quotient_of_mem_minimalPrimes_levelModuliPackageAbs_rigidDataH1Pow1,402 below · depth 34 - Reducedness modulo 1-ζ_q at a supersingular point (H₁ level)
ModularCurve.FullLevel.Diamond.isReduced_adicCompletion_quotient_span_one_sub_of_isPrimitiveRoot_of_nthSeries_eq_mul_X_pow_mul_levelModuliPackageAbs_rigidDataH1Pow1,045 below · depth 34 - Reducedness of widehatB₀_𝔪/(1-ζ) at an ordinary point
ModularCurve.FullLevel.Diamond.isReduced_adicCompletion_quotient_span_one_sub_of_pow_eq_one_of_nthSeries_eq_mul_X_pow_levelModuliPackageAbs_rigidDataH1Pow1,165 below · depth 34 - Reduced generic fibre of the H₁ moduli ring, with its rank
ModularCurve.FullLevel.Diamond.isReduced_and_finrank_fractionRing_tensorProduct_levelModuliPackageAbs_eq_rigidDataH1Pow309 below · depth 34 - Unramified model for an ordinary completed local ring
ModularCurve.FullLevel.Diamond.nonempty_ringEquiv_adicCompletion_quotient_adicCompletion_unramified_of_nthSeries_eq_mul_X_pow_levelModuliPackageAbs_rigidDataH1Pow1,468 below · depth 34 - Supersingular completed local ring descends to an unramified base
ModularCurve.FullLevel.Diamond.nonempty_ringEquiv_adicCompletion_quotient_adicCompletion_unramified_of_nthSeries_eq_mul_X_pow_mul_levelModuliPackageAbs_rigidDataH1Pow1,469 below · depth 34 - Diamond action on the toric point of the Tate curve
ModularCurve.FullLevel.Diamond.toPoint_levelAut_eq_zsmul_toPoint_of_map_eq_tateToricPoint_rigidDataH1Pow141 below · depth 34 - Level automorphism relabels the Tate cusp pair by γ
ModularCurve.FullLevel.Diamond.zsmul_toPoint_add_zsmul_toPoint_eq_toPoint_levelAut_of_map_eq_cuspData_rigidDataH1Pow146 below · depth 34 - Constants of A=A₀[ζ_A] lie in the image of `classify`
ModularCurve.FullLevel.exists_classify_eq_algebraMap_of_adjoin_eq_top_rigidDataH1Pow_of_finite_residueField_of_isPrimitiveRoot_mul_of_dvd1,428 below · depth 34 - Minimal primes of the full-level ring are cyclotomic pins
ModularCurve.FullLevel.exists_eq_span_sub_algebraMap_of_mem_minimalPrimes_gamma0Pow_of_maximalIdeal_eq_span_of_adjoin_eq_top_tatePoint2,119 below · depth 34 - Primitive qℓ-th root of unity on each component
ModularCurve.FullLevel.exists_isPrimitiveRoot_quotient_mk_of_mem_minimalPrimes_levelModuliPackageAbs_of_maximalIdeal_eq_span_natCast_gamma0Pow1,414 below · depth 34 - A K-point of `rigidDataH1Pow` with j-invariant j(mathsf q^q)
ModularCurve.FullLevel.exists_pt_laurentBaseChange_jOf_eq_jqNModC_rigidDataH1Pow_of_algebra_of_isPrimitiveRoot_mul_of_dvd301 below · depth 34 - Restriction of full-level points along A₀ → A
ModularCurve.FullLevel.exists_pt_restrictScalars_jOf_eq_classify_comp_eq_gamma0Pow0 below · depth 34 - Classifying map image equals the j-integral chart algebra
ModularCurve.FullLevel.forall_classify_mem_chartAlgFin_and_forall_exists_classify_eq_of_jOf_eq_jqNModC_rigidDataH1Pow_of_isScalarTower_of_isPrimitiveRoot_mul_of_dvd2,134 below · depth 34 - Completed stalks away from q are integrally closed domains
ModularCurve.FullLevel.isDomain_and_isIntegrallyClosed_adicCompletion_of_not_mem_levelModuliPackageAbs_gamma0Pow274 below · depth 34 - Ordinary completed stalks of the full-level moduli ring are normal domains
ModularCurve.FullLevel.isDomain_and_isIntegrallyClosed_adicCompletion_of_nthSeries_eq_mul_X_pow_levelModuliPackageAbs_gamma0Pow1,163 below · depth 34 - Supersingular completed stalks of full-level moduli are normal domains
ModularCurve.FullLevel.isDomain_and_isIntegrallyClosed_adicCompletion_of_nthSeries_eq_mul_X_pow_mul_levelModuliPackageAbs_gamma0Pow1,016 below · depth 34 - Kernel of the Tate point classifier lies in every prime power
ModularCurve.FullLevel.ker_classify_le_pow_of_isPrime_of_jOf_eq_jqNModC_rigidDataH1Pow_of_adjoin_eq_top_of_isPrimitiveRoot_mul_of_dvd1,991 below · depth 34 - Surjectivity of full-level points along nilpotent thickenings
ModularCurve.FullLevel.map_surjective_of_surjective_of_ker_pow_eq_bot_of_isUnit_of_ne_two_gamma0Pow212 below · depth 34 - Generic point count for the rigidified full-level problem
ModularCurve.FullLevel.natCard_algHom_apply_jOf_univ_eq_of_transcendental_gamma0Pow233 below · depth 34 - No minimal prime of the generic fibre is maximal
ModularCurve.FullLevel.not_isMaximal_of_mem_minimalPrimes_tensorProduct_gamma0Pow230 below · depth 34 - No first-order deformations over a transcendental j-value
ModularCurve.FullLevel.snd_apply_eq_zero_of_apply_jOf_univ_eq_dualNumber_gamma0Pow212 below · depth 34 - Uniqueness of the classifying W₀-algebra map, Γ₀-power level
ModularCurve.LevelModuliPackageAbs.algHom_eq_of_isBaseChange_lawIso_appAdic_eq_gamma0Pow78 below · depth 34 - Existence of a classifying W₀-algebra map for Drinfeld bases
ModularCurve.LevelModuliPackageAbs.exists_algHom_isBaseChange_lawIso_appAdic_eq_gamma0Pow936 below · depth 34 - Hasse parameter and j at a supersingular Drinfeld point
ModularCurve.LevelModuliPackageAbs.exists_coeff_nthSeries_sub_mul_mem_span_and_map_j0_sub_algebraMap_eq_mul_eval_of_factorsThrough_rigidDataH1Pow78 below · depth 34 - Supersingular completion: Drinfeld basis, Hasse parameter, relabelling linear part
ModularCurve.LevelModuliPackageAbs.exists_isDrinfeldBasisAdic_isRegularLocalRing_hasseParam_problemAut_linearPart_adicCompletion_of_forall_mem_ssJSet_rigidDataH1Pow1,117 below · depth 34 - Rigidified universality of the H₁ moduli ring at a supersingular point
ModularCurve.LevelModuliPackageAbs.exists_reducesToOrigin_isDrinfeldBasisAdic_universal_of_factorsThrough_rigidDataH1Pow972 below · depth 34 - Level relabelling on the deformation ring: linear part cγ̄
ModularCurve.LevelModuliPackageAbs.exists_ringEquiv_originParam_linearPart_of_problemAut_relabel_of_reducesToOrigin_universal_gamma0Pow_of_mem_ssJSet189 below · depth 34 - Residue base change of the universal formal group and Drinfeld-basis transport
ModularCurve.LevelModuliPackageAbs.isBaseChange_and_isDrinfeldBasisAdic_residue_of_toPowerSeries_eq_gamma0Pow3 below · depth 34 - Reducedness of R/(1-ζ) at an ordinary Drinfeld point
ModularCurve.LevelModuliPackageAbs.isReduced_quotient_span_one_sub_of_pow_eq_one_of_factorsThrough_of_nthSeries_eq_mul_X_pow_gamma0Pow1,155 below · depth 34 - Equal classifying kernels give equal q-Weil pairing values
ModularCurve.LevelModuliPackageAbs.weilPairing0_drinfeld_mapRing_eq_of_ker_classify_eq_rigidDataPow254 below · depth 34 - Weil pairing determined by the kernel of `classify`
ModularCurve.LevelModuliPackageAbs.weilPairing0_mapRing_eq_of_ker_classify_eq_rigidDataPow41 below · depth 34 - Relabelling the Drinfeld pair by g gives a moduli automorphism
ModularCurve.LevelRelabelling.exists_problemAut_relabel_drinfeld_of_isUnit_det_rigidDataH1Pow108 below · depth 34 - Completed stalk of the two-chart model as 𝔭-adic completion
ModularCurve.exists_ringEquiv_adicCompletion_stalk_adicCompletion_comap_of_ker_classify_le_pow_of_isPrimitiveRoot_mul_of_dvd12 below · depth 34 - Kernel tuple fixed iff the cyclic subgroup is preserved
ModularCurve.forall_kernelVariableChangeDeg_eq_iff_image_equivOfVariableChangeEq_zmultiples_eq17 below · depth 34
… and 130 more statements (search for the module name to find them).