Definitions/Def_ModularCurve_LevelModuliPackage.lean
Level moduli data, problem automorphisms, and representing packages
Fix a commutative ring A. A LevelModuliDatum over A is a bundle of data in universe u: for each commutative A-algebra T a type Pt T of "level structures over T"; for each A-algebra homomorphism f : T \to T' a map map f : Pt T → Pt T'; fields map_id and map_comp asserting that this is functorial (identity to identity, g \circ f to map g ∘ map f, written in Lean with g.comp f); a j-coordinate jOf : Pt T → T; and a field jOf_map asserting naturality, jOf(\mathrm{map}\ f\ x) = f(jOf\ x). Functoriality is thus spelled out as structure fields rather than through a functor object.
A ProblemAut of a datum D is a family of self-maps act : D.Pt T → D.Pt T, natural in T and preserving jOf; no inverse is required, so these are natural endomorphisms of the pointed functor, composed by ProblemAut.comp with unit ProblemAut.id. For a ring automorphism \sigma_A of A, Twist σA T is T again as a ring, but with A-algebra structure a \mapsto \mathrm{algebraMap}(\sigma_A a); AlgHom.twist carries an A-algebra map to the twists via the same underlying ring map. A SemilinearProblemAut of D over \sigma_A is a family act : D.Pt T → D.Pt (Twist σA T), natural with respect to twisted maps, with jOf preserved as an equality of elements of T.
Given a field K with an A-algebra structure, an element j \in K and a datum D, a LevelModuliPackage consists of an A-subalgebra B \subseteq K with j \in B, a point univ ∈ D.Pt B whose j-coordinate is j, and the representability field: for every commutative A-algebra T and every x \in D.Pt\ T there is a unique A-algebra map \varphi : B \to T with \mathrm{map}\ \varphi\ (\mathrm{univ}) = x, i.e. \mathrm{Hom}_{A\text{-alg}}(B,T) \cong D(T) via the universal point.
The remaining declarations exploit this: classify picks the classifying map of a point, with map_classify and classify_unique its defining properties; inducedEnd σ is the A-algebra endomorphism of B classifying \sigma.\mathrm{act}(\mathrm{univ}) for a problem automorphism \sigma, characterised by map_inducedEnd_univ, and algHom_eq_of_map_univ_eq says that an A-algebra endomorphism of B is determined by its effect on the universal point; inducedSemiEnd is the corresponding ring endomorphism of B attached to a \sigma_A-semilinear problem automorphism, which by inducedSemiEnd_algebraMap acts on scalars from A through \sigma_A.
Relation to Mathlib
Mathlib has no notion of a moduli problem of elliptic curves with level structure or of its representability by a ring; this axiomatisation is the project's own, built on Mathlib's Subalgebra, AlgHom and RingEquiv.
Where it is used
The datum is deliberately generic in the level structure, so that the \Gamma_0(p) situation and the full level-q situation each instantiate it by supplying their own notion of level structure; a package then presents the j-finite chart algebra of an integral model of a modular curve as the ring representing that moduli problem, with the universal level structure over it. The induced linear and \sigma_A-semilinear endomorphisms are what turn automorphisms of the moduli problem, and inertia acting coefficientwise over ramified bases, into endomorphisms of the chart ring.
References
- N. M. Katz and B. Mazur, Arithmetic Moduli of Elliptic Curves, Annals of Mathematics Studies 108, Princeton University Press, 1985
- 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
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 128 lines
- 41 declarations
- used in the statements of 310 theorems and imported by 326 proofs
- imports 0 definition modules
Source file: Definitions/Def_ModularCurve_LevelModuliPackage.lean
Imports
- only Mathlib
Declarations
- structure
ModularCurve.LevelModuliDatum - field
ModularCurve.LevelModuliDatum.Pt - field
ModularCurve.LevelModuliDatum.map - field
ModularCurve.LevelModuliDatum.map_id - field
ModularCurve.LevelModuliDatum.map_comp - field
ModularCurve.LevelModuliDatum.jOf - field
ModularCurve.LevelModuliDatum.jOf_map - field
ModularCurve.LevelModuliDatum.jOf - structure
ModularCurve.LevelModuliDatum.ProblemAut - field
ModularCurve.LevelModuliDatum.ProblemAut.act - field
ModularCurve.LevelModuliDatum.ProblemAut.act_map - field
ModularCurve.LevelModuliDatum.ProblemAut.act - field
ModularCurve.LevelModuliDatum.ProblemAut.jOf_act - def
ModularCurve.LevelModuliDatum.ProblemAut.id - def
ModularCurve.LevelModuliDatum.ProblemAut.comp - def
ModularCurve.LevelModuliDatum.Twist - instance
ModularCurve.LevelModuliDatum.Twist.instCommRing - instance
ModularCurve.LevelModuliDatum.Twist.instAlgebra - theorem
ModularCurve.LevelModuliDatum.Twist.algebraMap_apply - def
ModularCurve.LevelModuliDatum.AlgHom.twist - structure
ModularCurve.LevelModuliDatum.SemilinearProblemAut - field
ModularCurve.LevelModuliDatum.SemilinearProblemAut.act - field
ModularCurve.LevelModuliDatum.SemilinearProblemAut.act_map - field
ModularCurve.LevelModuliDatum.SemilinearProblemAut.act - field
ModularCurve.LevelModuliDatum.SemilinearProblemAut.jOf_act - structure
ModularCurve.LevelModuliPackage - field
ModularCurve.LevelModuliPackage.D - field
ModularCurve.LevelModuliPackage.B - field
ModularCurve.LevelModuliPackage.j_mem - field
ModularCurve.LevelModuliPackage.univ - field
ModularCurve.LevelModuliPackage.jOf_univ - field
ModularCurve.LevelModuliPackage.represents - def
ModularCurve.LevelModuliPackage.classify - theorem
ModularCurve.LevelModuliPackage.map_classify - theorem
ModularCurve.LevelModuliPackage.classify_unique - def
ModularCurve.LevelModuliPackage.inducedEnd - theorem
ModularCurve.LevelModuliPackage.map_inducedEnd_univ - theorem
ModularCurve.LevelModuliPackage.algHom_eq_of_map_univ_eq - def
ModularCurve.LevelModuliPackage.inducedSemiEnd - theorem
ModularCurve.LevelModuliPackage.inducedSemiEnd_algebraMap - theorem
ModularCurve.LevelModuliPackage.map_inducedSemiEnd_univ
Source
import Mathlib set_option autoImplicit false universe u namespace ModularCurve structure LevelModuliDatum (A : Type u) [CommRing A] where Pt : (T : Type u) → [CommRing T] → [Algebra A T] → Type u map : {T T' : Type u} → [CommRing T] → [Algebra A T] → [CommRing T'] → [Algebra A T'] → (T →ₐ[A] T') → Pt T → Pt T' map_id : ∀ (T : Type u) [CommRing T] [Algebra A T] (x : Pt 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 : Pt T), map (g.comp f) x = map g (map f x) jOf : {T : Type u} → [CommRing T] → [Algebra A T] → Pt T → T jOf_map : ∀ {T T' : Type u} [CommRing T] [Algebra A T] [CommRing T'] [Algebra A T'] (f : T →ₐ[A] T') (x : Pt T), jOf (map f x) = f (jOf x) namespace LevelModuliDatum variable {A : Type u} [CommRing A] structure ProblemAut (D : LevelModuliDatum.{u} A) where act : {T : Type u} → [CommRing T] → [Algebra A T] → D.Pt T → D.Pt T act_map : ∀ {T T' : Type u} [CommRing T] [Algebra A T] [CommRing T'] [Algebra A T'] (f : T →ₐ[A] T') (x : D.Pt T), act (D.map f x) = D.map f (act x) jOf_act : ∀ {T : Type u} [CommRing T] [Algebra A T] (x : D.Pt T), D.jOf (act x) = D.jOf x def ProblemAut.id (D : LevelModuliDatum.{u} A) : ProblemAut D where act x := x act_map _ _ := rfl jOf_act _ := rfl def ProblemAut.comp {D : LevelModuliDatum.{u} A} (σ τ : ProblemAut D) : ProblemAut D where act x := σ.act (τ.act x) act_map f x := by rw [τ.act_map, σ.act_map] jOf_act x := by rw [σ.jOf_act, τ.jOf_act] def Twist (_σA : A ≃+* A) (T : Type u) : Type u := T instance Twist.instCommRing (σA : A ≃+* A) (T : Type u) [CommRing T] : CommRing (Twist σA T) := inferInstanceAs (CommRing T) instance Twist.instAlgebra (σA : A ≃+* A) (T : Type u) [CommRing T] [Algebra A T] : Algebra A (Twist σA T) := ((algebraMap A T).comp σA.toRingHom).toAlgebra theorem Twist.algebraMap_apply (σA : A ≃+* A) (T : Type u) [CommRing T] [Algebra A T] (a : A) : (algebraMap A (Twist σA T) a : T) = algebraMap A T (σA a) := rfl def AlgHom.twist (σA : A ≃+* A) {T T' : Type u} [CommRing T] [Algebra A T] [CommRing T'] [Algebra A T'] (f : T →ₐ[A] T') : Twist σA T →ₐ[A] Twist σA T' where toRingHom := (f.toRingHom : T →+* T') commutes' a := f.commutes (σA a) structure SemilinearProblemAut (D : LevelModuliDatum.{u} A) (σA : A ≃+* A) where act : {T : Type u} → [CommRing T] → [Algebra A T] → D.Pt T → D.Pt (Twist σA T) act_map : ∀ {T T' : Type u} [CommRing T] [Algebra A T] [CommRing T'] [Algebra A T'] (f : T →ₐ[A] T') (x : D.Pt T), act (D.map f x) = D.map (AlgHom.twist σA f) (act x) jOf_act : ∀ {T : Type u} [CommRing T] [Algebra A T] (x : D.Pt T), @Eq T (D.jOf (T := Twist σA T) (act x)) (D.jOf x) end LevelModuliDatum structure LevelModuliPackage (A : Type u) [CommRing A] (K : Type u) [Field K] [Algebra A K] (j : K) (D : LevelModuliDatum.{u} A) where B : Subalgebra A K j_mem : j ∈ B univ : D.Pt ↥B jOf_univ : (D.jOf univ : ↥B) = ⟨j, j_mem⟩ represents : ∀ (T : Type u) [CommRing T] [Algebra A T] (x : D.Pt T), ∃! φ : ↥B →ₐ[A] T, D.map φ univ = x namespace LevelModuliPackage variable {A : Type u} [CommRing A] {K : Type u} [Field K] [Algebra A K] {j : K} {D : LevelModuliDatum.{u} A} (P : LevelModuliPackage A K j D) noncomputable def classify {T : Type u} [CommRing T] [Algebra A T] (x : D.Pt T) : ↥P.B →ₐ[A] T := (P.represents T x).choose theorem map_classify {T : Type u} [CommRing T] [Algebra A T] (x : D.Pt T) : D.map (P.classify x) P.univ = x := (P.represents T x).choose_spec.1 theorem classify_unique {T : Type u} [CommRing T] [Algebra A T] (x : D.Pt T) (φ : ↥P.B →ₐ[A] T) (h : D.map φ P.univ = x) : φ = P.classify x := (P.represents T x).unique h (P.map_classify x) ▸ rfl noncomputable def inducedEnd (σ : LevelModuliDatum.ProblemAut D) : ↥P.B →ₐ[A] ↥P.B := P.classify (σ.act P.univ) theorem map_inducedEnd_univ (σ : LevelModuliDatum.ProblemAut D) : D.map (P.inducedEnd σ) P.univ = σ.act P.univ := P.map_classify _ theorem algHom_eq_of_map_univ_eq (φ ψ : ↥P.B →ₐ[A] ↥P.B) (h : D.map φ P.univ = D.map ψ P.univ) : φ = ψ := (P.classify_unique (D.map ψ P.univ) φ h).trans (P.classify_unique (D.map ψ P.univ) ψ rfl).symm noncomputable def inducedSemiEnd {σA : A ≃+* A} (σ : LevelModuliDatum.SemilinearProblemAut D σA) : ↥P.B →+* ↥P.B := ((P.classify (T := LevelModuliDatum.Twist σA ↥P.B) (σ.act P.univ)).toRingHom : ↥P.B →+* LevelModuliDatum.Twist σA ↥P.B) theorem inducedSemiEnd_algebraMap {σA : A ≃+* A} (σ : LevelModuliDatum.SemilinearProblemAut D σA) (a : A) : P.inducedSemiEnd σ (algebraMap A ↥P.B a) = algebraMap A ↥P.B (σA a) := (P.classify (T := LevelModuliDatum.Twist σA ↥P.B) (σ.act P.univ)).commutes a theorem map_inducedSemiEnd_univ {σA : A ≃+* A} (σ : LevelModuliDatum.SemilinearProblemAut D σA) : D.map (P.classify (T := LevelModuliDatum.Twist σA ↥P.B) (σ.act P.univ)) P.univ = σ.act P.univ := P.map_classify _ end LevelModuliPackage end ModularCurve
Statements phrased using this module (310)
- Constancy of the level-ℓ' Weil pairing on the special fibre
ModularCurve.FullLevel.exists_forall_weilPairing0_eq_of_eq_map_classify_rigidDataPow42 below · depth 29 - 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 - No q-torsion and alignment above a supersingular place
ModularCurve.FullLevel.forall_nsmul_eq_zero_and_exists_variableChange_of_over_of_eq_map_classify_rigidDataPow_of_tatePoint2,862 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 - Cusp-regular integral level-M' functions lie in the j-chart
ModularCurve.FullLevel.Diamond.coeffEmb_mem_chartAlgFin_of_cuspRegular_of_mem_integers827 below · depth 30 - 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 - One moduli place for all rigid-chart points over s
ModularCurve.FullLevel.exists_place_forall_isModuliPlaceOf_of_over_of_eq_map_classify_rigidDataPow_of_tatePoint2,858 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 - Relabelling problem automorphisms for the Γ₀(M')×Γ(ℓ)×Γ(q) datum
ModularCurve.LevelRelabelling.exists_problemAut_relabel_one_mul_of_isUnit_det_gamma0Pow128 below · depth 30 - Representability via a normal-form section, with surjection onto B₀
ModularCurve.RigidWeierstrassData.exists_levelModuliPackageAbs_surjective_of_represents_of_section0 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 - Vanishing q-torsion and line alignment at supersingular places
ModularCurve.FullLevel.Diamond.forall_nsmul_eq_zero_and_exists_variableChange_and_inLine_of_over_of_eq_map_classify_rigidDataH1Pow_of_tatePoint_pinGamma12,852 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 - 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 - Closed points above a supersingular place carry no q-torsion
ModularCurve.FullLevel.forall_nsmul_eq_zero_of_over_of_eq_map_classify_rigidDataPow104 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 - Equal floor readings and supersingular fibre force equal Γ₀(M')-class
ModularCurve.FullLevel.moduliPoint_mk_eq_of_forall_apply_qExpand_eq_of_eq_map_classify_rigidDataPow_of_tatePoint2,857 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 - A single moduli place above a supersingular place, H₁ level
ModularCurve.FullLevel.Diamond.exists_place_forall_isModuliPlaceOf_of_over_of_eq_map_classify_rigidDataH1Pow_of_tatePoint_pinGamma12,847 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 - Supersingular places read off injectively from Γ₀(M')-classes
ModularCurve.FullLevel.exists_injective_forall_place_eq_of_forall_evalAt_eq_of_eq_map_classify_rigidDataPow_of_tatePoint2,847 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 - Closed points of the rigid j-chart read rational floor places
ModularCurve.FullLevel.exists_place_forall_evalAt_eq_apply_qExpand_of_eq_map_classify_rigidDataPow865 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 - Automorphisms of the Γ₀(M')-fibre datum over a supersingular place
ModularCurve.FullLevel.natCard_variableChange_act_curve_eq_and_level_fst_eq_eq_two_mul_placeWidthChar_of_over_of_eq_map_classify_rigidDataPow_of_tatePoint2,872 below · depth 32 - Degeneracy image of a cusp-regular integral function is chart-integral
ModularCurve.FullLevel.qExpand_mem_chartAlgFin_of_cuspRegular_of_mem_integers828 below · depth 32 - Points lifting along ι are classified through ι
ModularCurve.LevelModuliPackageAbs.apply_mem_range_of_map_eq_map_univ0 below · depth 32 - Uniqueness of an abstract representing package of a level-moduli datum
ModularCurve.LevelModuliPackageAbs.exists_algEquiv_map_univ_eq0 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 - 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 - Supersingular specialisations of the H₁ datum have no q-torsion
ModularCurve.FullLevel.Diamond.forall_nsmul_eq_zero_of_over_of_eq_map_classify_rigidDataH1Pow104 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 - Equal floor readings force equal Γ₀(M')-moduli class
ModularCurve.FullLevel.Diamond.moduliPoint_mk_eq_of_forall_apply_eq_of_eq_map_classify_rigidDataH1Pow_of_tatePoint_pinGamma12,846 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 - Closed points of the rigid chart read through R₀
ModularCurve.FullLevel.exists_algHom_forall_apply_residue_eq_apply_qExpand_of_eq_map_classify_rigidDataPow860 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 - Read place is a moduli place of the Frobenius-twisted fibre
ModularCurve.FullLevel.exists_isModuliPlaceOf_map_frobenius_of_forall_evalAt_eq_of_eq_map_classify_rigidDataPow_of_tatePoint2,828 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 - Invertible moduli-problem automorphisms act on the fine moduli ring
ModularCurve.LevelModuliPackageAbs.exists_algEquiv_apply_jOf_univ_eq_classify_act_eq0 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 - Coefficient ring and factorisation for completed fine moduli rings
ModularCurve.LevelModuliPackageAbs.exists_coefficientRing_factorsThrough_adicCompletion_of_levelModuliDatum11 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 - Torsion basis at the Tate cusp pair of level q
ModularCurve.torsion_basis_of_map_eq_variableChange_tateBase_cuspData86 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 - Supersingular places injectively indexed by Γ₀(M')-moduli points
ModularCurve.FullLevel.Diamond.exists_injective_forall_place_eq_of_forall_evalAt_eq_of_eq_map_classify_rigidDataH1Pow_of_tatePoint_pinGamma12,836 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 - One rational place reads all admissible functions at H₁ level
ModularCurve.FullLevel.Diamond.exists_place_forall_evalAt_eq_apply_of_eq_map_classify_rigidDataH1Pow864 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 - Reading admissible level-M' functions gives a κ_A-embedding
ModularCurve.FullLevel.exists_algHom_modularFunctionFieldFullC_forall_apply_residue_eq_ringHom_of_transcendental_of_tatePoint863 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 - Frobenius twist and cyclic-quotient j at a Tate point
ModularCurve.FullLevel.exists_place_curve_reduction_eq_map_frobenius_cyclicQuotientJ_eq_of_levelAut_of_originChart_of_tatePoint2,251 below · depth 34 - Supersingular branch with second Drinfeld section at the origin
ModularCurve.FullLevel.exists_place_ringHom_chartAlgFin_residue_eq_originChart_levelAut_of_forall_nsmul_eq_zero_of_tatePoint2,365 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 - Integrality and cusp-regularity of j(qᵈ) for d ∣ M'
ModularCurve.FullLevel.mem_integers_and_cuspRegular_qExpand_jq_of_dvd44 below · depth 34
… and 160 more statements (search for the module name to find them).