Definitions/Def_ModularCurve_KatzLevelPCusps.lean
Cusps of the level- moduli problem; -expansions
Over a commutative ring R and an integer p, tateToricPoint R p c, for c \in R^\times, is the pair of Laurent series in q given by the explicit power-series coefficients of the Tate parametrisation at the point u = c of \mathbf{G}_m/q^{p\mathbf{Z}}: the constant terms are c\,(1-c)^{-2} and c^2(1-c)^{-3} (formed with Ring.inverse), and for m > 0 the coefficients are the divisor sums \sum_{d \mid m,\ p \mid d} (m/d)\,(c^{m/d} + c^{-m/d}) minus 2\sigma_1(m/p), respectively \sum_{d\mid m,\ p\mid d}\big(\binom{m/d}{2}c^{m/d} - \binom{m/d+1}{2}c^{-m/d}\big) plus \sigma_1(m/p), with the last terms present only when p \mid m; tateToricPoint_eq_toricPoint identifies this with the field-only toricPoint when R is a field. For a unit \zeta and v \in (\mathbf{Z}/p)^2, cuspPoint R p ζ v is the point \zeta^{v_0}q^{v_1}: it is tateToricPoint R p (ζ ^ (v 0).val) when v_1 = 0 and otherwise nonToricPoint R p (ζ ^ (v 0).val) (v 1).val. From a pair (v,w) one forms cuspData R p ζ v w, the LevelPData over R((q)) whose P and Q coordinates are these two points; swapping v and w swaps the data. The reindexing cuspShift p v = ![v 0 + v 1, v 1] records the effect of q \mapsto \zeta q on indices, and qTwistAlgHom upgrades the twist q \mapsto u q to an R_0-algebra endomorphism of R((q)), fixing p-fold expansions when u^p = 1, hence fixing the curve tateBase R p = \mathrm{Tate}(q^p).
For a level-p Katz form F over R_0 of weight k and an R_0-algebra R, KatzLevelPForm.evalCusp F R ζ v w is defined by cases: it is F evaluated on tateBase R p (whose discriminant is a unit) together with cuspData R p ζ v w when the latter satisfies IsLevelPStructure, and 0 otherwise; accompanying lemmas give the two cases, a vanishing criterion and the value for a form pulled back from level one. Finally cyclRing R₀ p is R_0[X]/(\Phi_p) with cyclZeta the class of X as a unit, satisfying \zeta^p = 1 and, for p prime, \sum_{i<p}\zeta^i = 0; the q-expansion of a \Gamma_0(p)-form \varphi is its value at the cusp indexed by v = (1,0), w = (0,1) over cyclRing R₀ p.
Relation to Mathlib
Mathlib has Laurent/Hahn series, Weierstrass curves and cyclotomic polynomials but no moduli-theoretic modular forms; LevelPData, IsLevelPStructure, KatzLevelPForm, KatzGamma0Form and the Tate-curve constructions used here are the project's own.
Where it is used
These cusps and q-expansions connect the moduli-theoretic definition of modular forms of level p with power-series data over a cyclotomic base, as needed to compare Katz forms with classical q-expansions in the modularity and level-lowering steps.
References
- N. M. Katz, p-adic properties of modular schemes and modular forms, in: Modular Functions of One Variable III, Lecture Notes in Mathematics 350, Springer, 1973, 69–190
- B. Mazur, Modular curves and the Eisenstein ideal, Publications Mathématiques de l'IHÉS 47 (1977), 33–186, Lemma II.5.9
- J. H. Silverman, Advanced Topics in the Arithmetic of Elliptic Curves, Graduate Texts in Mathematics 151, Springer, 1994, Chapter V
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 238 lines
- 37 declarations
- used in the statements of 161 theorems and imported by 187 proofs
- imports 3 definition modules
Source file: Definitions/Def_ModularCurve_KatzLevelPCusps.lean
Imported by
Declarations
- def
ModularCurve.tateToricPoint - theorem
ModularCurve.tateToricPoint_fst - theorem
ModularCurve.tateToricPoint_snd - theorem
ModularCurve.tateToricPoint_eq_toricPoint - def
ModularCurve.cuspPoint - theorem
ModularCurve.cuspPoint_of_eq_zero - theorem
ModularCurve.cuspPoint_of_ne_zero - def
ModularCurve.cuspData - theorem
ModularCurve.cuspData_xP - theorem
ModularCurve.cuspData_yP - theorem
ModularCurve.cuspData_xQ - theorem
ModularCurve.cuspData_yQ - theorem
ModularCurve.cuspData_swap - def
ModularCurve.cuspShift - theorem
ModularCurve.cuspShift_zero - theorem
ModularCurve.cuspShift_one - theorem
ModularCurve.algebraMap_laurentSeries_apply - def
ModularCurve.qTwistAlgHom - theorem
ModularCurve.qTwistAlgHom_apply - theorem
ModularCurve.coe_qTwistAlgHom - theorem
ModularCurve.qTwist_qExpand_of_pow_eq_one - theorem
ModularCurve.tateBase_map_qTwist - theorem
ModularCurve.isUnit_Δ_tateBase - def
ModularCurve.KatzLevelPForm.evalCusp - theorem
ModularCurve.KatzLevelPForm.evalCusp_eq - theorem
ModularCurve.KatzLevelPForm.evalCusp_of_not - theorem
ModularCurve.KatzLevelPForm.evalCusp_eq_zero_iff - theorem
ModularCurve.KatzLevelPForm.evalCusp_eq_iff - theorem
ModularCurve.evalCusp_pullbackLevelP - abbrev
ModularCurve.cyclRing - theorem
ModularCurve.cyclRing_root_pow - def
ModularCurve.cyclZeta - theorem
ModularCurve.val_cyclZeta - theorem
ModularCurve.cyclZeta_pow_eq_one - theorem
ModularCurve.sum_cyclZeta_pow_eq_zero - def
ModularCurve.KatzGamma0Form.qExpansion - theorem
ModularCurve.KatzGamma0Form.qExpansion_def
Source
import Mathlib import Definitions.Def_ModularCurve_TateSlots import Definitions.Def_ModularCurve_PhiGen import Definitions.Def_ModularCurve_KatzLevelP set_option autoImplicit false noncomputable section open HahnSeries Polynomial universe u namespace ModularCurve section ToricPoint variable (R : Type*) [CommRing R] (p : ℕ) def tateToricPoint (c : Rˣ) : LaurentSeries R × LaurentSeries R := (HahnSeries.ofPowerSeries ℤ R (PowerSeries.mk fun m => if m = 0 then (c : R) * Ring.inverse (1 - (c : R)) ^ 2 else (∑ d ∈ m.divisors, if p ∣ d then ((m / d : ℕ) : R) * ((c : R) ^ (m / d) + ((c⁻¹ : Rˣ) : R) ^ (m / d)) else 0) - 2 * (if p ∣ m then ∑ e ∈ (m / p).divisors, (e : R) else 0)), HahnSeries.ofPowerSeries ℤ R (PowerSeries.mk fun m => if m = 0 then (c : R) ^ 2 * Ring.inverse (1 - (c : R)) ^ 3 else (∑ d ∈ m.divisors, if p ∣ d then ((m / d).choose 2 : R) * (c : R) ^ (m / d) - ((m / d + 1).choose 2 : R) * ((c⁻¹ : Rˣ) : R) ^ (m / d) else 0) + (if p ∣ m then ∑ e ∈ (m / p).divisors, (e : R) else 0))) theorem tateToricPoint_fst (c : Rˣ) : (tateToricPoint R p c).1 = HahnSeries.ofPowerSeries ℤ R (PowerSeries.mk fun m => if m = 0 then (c : R) * Ring.inverse (1 - (c : R)) ^ 2 else (∑ d ∈ m.divisors, if p ∣ d then ((m / d : ℕ) : R) * ((c : R) ^ (m / d) + ((c⁻¹ : Rˣ) : R) ^ (m / d)) else 0) - 2 * (if p ∣ m then ∑ e ∈ (m / p).divisors, (e : R) else 0)) := rfl theorem tateToricPoint_snd (c : Rˣ) : (tateToricPoint R p c).2 = HahnSeries.ofPowerSeries ℤ R (PowerSeries.mk fun m => if m = 0 then (c : R) ^ 2 * Ring.inverse (1 - (c : R)) ^ 3 else (∑ d ∈ m.divisors, if p ∣ d then ((m / d).choose 2 : R) * (c : R) ^ (m / d) - ((m / d + 1).choose 2 : R) * ((c⁻¹ : Rˣ) : R) ^ (m / d) else 0) + (if p ∣ m then ∑ e ∈ (m / p).divisors, (e : R) else 0)) := rfl theorem tateToricPoint_eq_toricPoint (K : Type*) [Field K] (p : ℕ) (c : Kˣ) : tateToricPoint K p c = toricPoint K p (c : K) := by have hinv : ((c⁻¹ : Kˣ) : K) = (c : K)⁻¹ := Units.val_inv_eq_inv_val c simp only [tateToricPoint, toricPoint, Ring.inverse_eq_inv', hinv, div_eq_mul_inv, inv_pow] end ToricPoint section CuspData variable (R : Type*) [CommRing R] (p : ℕ) def cuspPoint (ζ : Rˣ) (v : Fin 2 → ZMod p) : LaurentSeries R × LaurentSeries R := if v 1 = 0 then tateToricPoint R p (ζ ^ (v 0).val) else nonToricPoint R p (ζ ^ (v 0).val) (v 1).val variable {R p} in theorem cuspPoint_of_eq_zero (ζ : Rˣ) {v : Fin 2 → ZMod p} (hv : v 1 = 0) : cuspPoint R p ζ v = tateToricPoint R p (ζ ^ (v 0).val) := if_pos hv variable {R p} in theorem cuspPoint_of_ne_zero (ζ : Rˣ) {v : Fin 2 → ZMod p} (hv : v 1 ≠ 0) : cuspPoint R p ζ v = nonToricPoint R p (ζ ^ (v 0).val) (v 1).val := if_neg hv def cuspData (ζ : Rˣ) (v w : Fin 2 → ZMod p) : LevelPData (LaurentSeries R) where xP := (cuspPoint R p ζ v).1 yP := (cuspPoint R p ζ v).2 xQ := (cuspPoint R p ζ w).1 yQ := (cuspPoint R p ζ w).2 @[simp] theorem cuspData_xP (ζ : Rˣ) (v w : Fin 2 → ZMod p) : (cuspData R p ζ v w).xP = (cuspPoint R p ζ v).1 := rfl @[simp] theorem cuspData_yP (ζ : Rˣ) (v w : Fin 2 → ZMod p) : (cuspData R p ζ v w).yP = (cuspPoint R p ζ v).2 := rfl @[simp] theorem cuspData_xQ (ζ : Rˣ) (v w : Fin 2 → ZMod p) : (cuspData R p ζ v w).xQ = (cuspPoint R p ζ w).1 := rfl @[simp] theorem cuspData_yQ (ζ : Rˣ) (v w : Fin 2 → ZMod p) : (cuspData R p ζ v w).yQ = (cuspPoint R p ζ w).2 := rfl theorem cuspData_swap (ζ : Rˣ) (v w : Fin 2 → ZMod p) : (cuspData R p ζ v w).swap = cuspData R p ζ w v := rfl def cuspShift (v : Fin 2 → ZMod p) : Fin 2 → ZMod p := ![v 0 + v 1, v 1] @[simp] theorem cuspShift_zero (v : Fin 2 → ZMod p) : cuspShift p v 0 = v 0 + v 1 := rfl @[simp] theorem cuspShift_one (v : Fin 2 → ZMod p) : cuspShift p v 1 = v 1 := rfl end CuspData section Twist variable (R₀ : Type*) [CommRing R₀] {R : Type*} [CommRing R] [Algebra R₀ R] theorem algebraMap_laurentSeries_apply (r : R₀) : algebraMap R₀ (LaurentSeries R) r = HahnSeries.C (algebraMap R₀ R r) := by rw [HahnSeries.algebraMap_apply'] have h1 : algebraMap R₀ (PowerSeries R) r = PowerSeries.C (algebraMap R₀ R r) := by simp [PowerSeries.algebraMap_apply] rw [h1, HahnSeries.ofPowerSeries_C] def qTwistAlgHom (u : Rˣ) : LaurentSeries R →ₐ[R₀] LaurentSeries R := { qTwist u with commutes' := fun r => by show qTwist u (algebraMap R₀ (LaurentSeries R) r) = algebraMap R₀ (LaurentSeries R) r rw [algebraMap_laurentSeries_apply, HahnSeries.C_apply, qTwist_single, zpow_zero, Units.val_one, one_mul] } @[simp] theorem qTwistAlgHom_apply (u : Rˣ) (f : LaurentSeries R) : qTwistAlgHom R₀ u f = qTwist u f := rfl theorem coe_qTwistAlgHom (u : Rˣ) : ((qTwistAlgHom R₀ u : LaurentSeries R →ₐ[R₀] LaurentSeries R) : LaurentSeries R →+* LaurentSeries R) = qTwist u := RingHom.ext fun _ => rfl theorem qTwist_qExpand_of_pow_eq_one (p : ℕ) [NeZero p] (ζ : Rˣ) (hζ : ζ ^ p = 1) (f : LaurentSeries R) : qTwist ζ (qExpand R p f) = qExpand R p f := by rw [qTwist_qExpand, zpow_natCast, hζ, qTwist_one_apply] theorem tateBase_map_qTwist (p : ℕ) [NeZero p] (ζ : Rˣ) (hζ : ζ ^ p = 1) : (tateBase R p).map (qTwist ζ) = tateBase R p := by simp only [tateBase, tateLaurent, WeierstrassCurve.map, qTwist_qExpand_of_pow_eq_one p ζ hζ] end Twist theorem isUnit_Δ_tateBase (R : Type*) [CommRing R] (p : ℕ) [NeZero p] : IsUnit (tateBase R p).Δ := (tateBase R p).isUnit_Δ namespace KatzLevelPForm variable {R₀ : Type u} [CommRing R₀] {p : ℕ} [NeZero p] {k : ℤ} open Classical in def evalCusp (F : KatzLevelPForm R₀ p k) (R : Type u) [CommRing R] [Algebra R₀ R] (ζ : Rˣ) (v w : Fin 2 → ZMod p) : LaurentSeries R := if h : IsLevelPStructure (tateBase R p) p (cuspData R p ζ v w) then F.toFun (tateBase R p) (isUnit_Δ_tateBase R p) (cuspData R p ζ v w) h else 0 variable (F : KatzLevelPForm R₀ p k) (R : Type u) [CommRing R] [Algebra R₀ R] (ζ : Rˣ) (v w : Fin 2 → ZMod p) theorem evalCusp_eq (h : IsLevelPStructure (tateBase R p) p (cuspData R p ζ v w)) : F.evalCusp R ζ v w = F.toFun (tateBase R p) (isUnit_Δ_tateBase R p) (cuspData R p ζ v w) h := dif_pos h theorem evalCusp_of_not (h : ¬ IsLevelPStructure (tateBase R p) p (cuspData R p ζ v w)) : F.evalCusp R ζ v w = 0 := dif_neg h theorem evalCusp_eq_zero_iff : F.evalCusp R ζ v w = 0 ↔ ∀ h : IsLevelPStructure (tateBase R p) p (cuspData R p ζ v w), F.toFun (tateBase R p) (isUnit_Δ_tateBase R p) (cuspData R p ζ v w) h = 0 := by constructor · intro h0 h; rwa [evalCusp_eq F R ζ v w h] at h0 · intro H by_cases h : IsLevelPStructure (tateBase R p) p (cuspData R p ζ v w) · rw [evalCusp_eq F R ζ v w h]; exact H h · exact evalCusp_of_not F R ζ v w h theorem evalCusp_eq_iff (f : LaurentSeries R) (h : IsLevelPStructure (tateBase R p) p (cuspData R p ζ v w)) : F.evalCusp R ζ v w = f ↔ F.toFun (tateBase R p) (isUnit_Δ_tateBase R p) (cuspData R p ζ v w) h = f := by rw [evalCusp_eq F R ζ v w h] end KatzLevelPForm theorem evalCusp_pullbackLevelP {R₀ : Type u} [CommRing R₀] {p : ℕ} [NeZero p] {k : ℤ} (g : KatzModularForm R₀ k) (R : Type u) [CommRing R] [Algebra R₀ R] (ζ : Rˣ) (v w : Fin 2 → ZMod p) (h : IsLevelPStructure (tateBase R p) p (cuspData R p ζ v w)) : (g.pullbackLevelP p).evalCusp R ζ v w = g.toFun (tateBase R p) (isUnit_Δ_tateBase R p) := by rw [KatzLevelPForm.evalCusp_eq _ R ζ v w h] rfl section Cycl variable (R₀ : Type u) [CommRing R₀] (p : ℕ) abbrev cyclRing : Type u := AdjoinRoot (Polynomial.cyclotomic p R₀) theorem cyclRing_root_pow : (AdjoinRoot.root (Polynomial.cyclotomic p R₀)) ^ p = 1 := by have hdvd : Polynomial.cyclotomic p R₀ ∣ X ^ p - 1 := Polynomial.cyclotomic.dvd_X_pow_sub_one p R₀ have h0 : AdjoinRoot.mk (Polynomial.cyclotomic p R₀) (X ^ p - 1) = 0 := AdjoinRoot.mk_eq_zero.mpr hdvd rw [map_sub, map_pow, AdjoinRoot.mk_X, map_one, sub_eq_zero] at h0 exact h0 variable [NeZero p] def cyclZeta : (cyclRing R₀ p)ˣ := Units.mkOfMulEqOne (AdjoinRoot.root (Polynomial.cyclotomic p R₀)) ((AdjoinRoot.root (Polynomial.cyclotomic p R₀)) ^ (p - 1)) (by rw [← pow_succ', Nat.sub_add_cancel (Nat.pos_of_ne_zero (NeZero.ne p))] exact cyclRing_root_pow R₀ p) @[simp] theorem val_cyclZeta : (cyclZeta R₀ p : cyclRing R₀ p) = AdjoinRoot.root (Polynomial.cyclotomic p R₀) := rfl theorem cyclZeta_pow_eq_one : cyclZeta R₀ p ^ p = 1 := Units.ext (by rw [Units.val_pow_eq_pow_val, val_cyclZeta, Units.val_one]; exact cyclRing_root_pow R₀ p) theorem sum_cyclZeta_pow_eq_zero [hp : Fact p.Prime] : ∑ i ∈ Finset.range p, (cyclZeta R₀ p : cyclRing R₀ p) ^ i = 0 := by have key : ∀ (S : Type u) [CommRing S] [Algebra R₀ S] (x : S), Polynomial.aeval x (Polynomial.cyclotomic p R₀) = ∑ i ∈ Finset.range p, x ^ i := by intro S _ _ x rw [Polynomial.cyclotomic_prime R₀ p, map_sum] simp only [map_pow, Polynomial.aeval_X] show ∑ i ∈ Finset.range p, (AdjoinRoot.root (Polynomial.cyclotomic p R₀)) ^ i = 0 rw [← key, AdjoinRoot.aeval_eq, AdjoinRoot.mk_self] end Cycl namespace KatzGamma0Form variable {R₀ : Type u} [CommRing R₀] {p : ℕ} [NeZero p] {k : ℤ} def qExpansion (φ : KatzGamma0Form R₀ p k) : LaurentSeries (cyclRing R₀ p) := φ.toKatzLevelPForm.evalCusp (cyclRing R₀ p) (cyclZeta R₀ p) ![1, 0] ![0, 1] theorem qExpansion_def (φ : KatzGamma0Form R₀ p k) : φ.qExpansion = φ.toKatzLevelPForm.evalCusp (cyclRing R₀ p) (cyclZeta R₀ p) ![1, 0] ![0, 1] := rfl end KatzGamma0Form end ModularCurve end
Statements phrased using this module (161)
- Katz form at Tate(qᵖ) is the base-changed q-expansion
KatzModularForm.toFun_tateBase_eq_qExpand_coeffMap_qExpansion0 below · depth 17 - Level reduction for even-weight Katz forms on Γ₀(p)
ModularCurve.KatzGamma0Form.exists_pullbackLevelP_eq_of_qTwist_qExpansion_eq_of_even_of_five_le413 below · depth 17 - Mazur's cusp gives a level-p structure on Tate(qᵖ)
ModularCurve.isLevelPStructure_tateBase_cuspData_mazurCusp_of_five_le68 below · depth 17 - Weight-two Γ₀(p) forms as Katz forms over ℤ[1/p]
ModularForm.exists_katzGamma0Form_evalCusp_eq_of_five_le499 below · depth 17 - Level reduction for Katz Γ₀(p) forms, p≥ 5
ModularCurve.KatzGamma0Form.exists_pullbackLevelP_eq_of_qTwist_qExpansion_eq_of_five_le412 below · depth 18 - q-expansion principle for Γ₀(p)-type Katz forms
ModularCurve.KatzLevelPForm.eq_zero_of_dependsOnlyOnSndLine_of_evalCusp_eq_zero328 below · depth 18 - Naturality of level-p cusp data under coefficient base change
ModularCurve.cuspData_map_coeffMap2 below · depth 18 - Toric points of Tate(qᵖ) over a commutative ring
ModularCurve.equation_tateBase_tateToricPoint36 below · depth 18 - Toric p-torsion points kill preΨₚ on Tate(qᵖ)
ModularCurve.eval_prePsi_tateBase_tateToricPoint_eq_zero_of_five_le38 below · depth 18 - Independence element of toric and slot points is a unit
ModularCurve.isUnit_indepElt_tateBase_tateToricPoint_nonToricPoint2 below · depth 18 - q-expansion principle at split Cartan level p
ModularCurve.KatzLevelPForm.eq_zero_of_dependsOnlyOnLines_of_forall_evalCusp_eq_zero328 below · depth 19 - q-expansion principle for Γ₀(p)-type Katz level-p forms
ModularCurve.KatzLevelPForm.eq_zero_of_dependsOnlyOnSndLine_of_evalCusp_eq_zero_of_field313 below · depth 19 - Descent of the q-expansion principle from fields
ModularCurve.KatzLevelPForm.eq_zero_of_dependsOnlyOnSndLine_of_evalCusp_eq_zero_of_forall_field18 below · depth 19 - q-twisting by ζ shifts level-p cusp data
ModularCurve.cuspData_map_qTwist2 below · depth 19 - Non-toric cusp points: x(t· w) on the line of x(w)
ModularCurve.inLine_cuspData_smul_of_five_le49 below · depth 19 - Cusp points are level-p structures on the Tate curve
ModularCurve.isLevelPStructure_cuspData81 below · depth 19 - Closed form of the Tate x-coordinate at a constant point
ModularCurve.tateCurve_pointX_C_eq_tateToricPoint_fst0 below · depth 19 - Vanishing at one cusp kills line-dependent Katz level-p forms
ModularCurve.KatzLevelPForm.eq_zero_of_dependsOnlyOnLines_of_evalCusp_eq_zero_of_field318 below · depth 20 - Vanishing of Katz level-p forms: fields to rings
ModularCurve.KatzLevelPForm.eq_zero_of_dependsOnlyOnLines_of_evalCusp_eq_zero_of_forall_field17 below · depth 20 - Cusp points lie on the Tate curve over R((q))
ModularCurve.equation_tateBase_cuspPoint40 below · depth 20 - Cusp points of the Tate curve are p-torsion, p ≥ 5
ModularCurve.eval_prePsi_tateBase_cuspPoint_eq_zero_of_five_le43 below · depth 20 - Unit independence element for two p-torsion cusp points
ModularCurve.isUnit_indepElt_tateBase_cuspPoint_of_five_le78 below · depth 20 - Unit independence element at two non-toric cusp slots
ModularCurve.isUnit_indepElt_tateBase_cuspPoint_slot_slot_of_five_le49 below · depth 21 - Tate ordinate at a constant point over F((t))
ModularCurve.tateCurve_pointY_C_eq_tateToricPoint_snd0 below · depth 21 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - Weight-one change of variables: Tate curve and cusps over K
ModularCurve.FullLevel.exists_variableChange_weightOne_tateBase_mem_laurentBaseChange_and_cuspData_mem_of_exists_ringHom114 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 - 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 - Inverse-twisted cusp data gives a level-p structure on Tate(qⁿ)
ModularCurve.isLevelPStructure_tateBase_cuspData_neg_of_dvd74 below · depth 31 - Modular forms realising Tate cusp coordinates and c₄,c₆
ModularCurve.FullLevel.AuxLevel.exists_modularForm_mul_qExpansion_eq_cuspPoint_and_slash_conjElemN_eq122 below · depth 32 - Toric generator-kernel coefficients as q-expansions of modular forms
ModularCurve.FullLevel.AuxLevel.exists_modularForm_qExpansion_eq_coeff_toricGenKernel_and_slash_conjElemN_eq4 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 - 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 - 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 - 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 - 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 - 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 - 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 - Level automorphism acts on transported cusp data through γ
ModularCurve.FullLevel.zsmul_toPoint_add_zsmul_toPoint_eq_toPoint_levelAut_of_map_eq_cuspData_of_exists_ringHom140 below · depth 32 - Coefficients of 2yᵥ+xᵥ at Tate cusp points
ModularCurve.coeff_two_mul_cuspPoint_snd_add_fst1 below · depth 32 - Constant term of (xᵥ+1/12)² at Tate cusps
ModularCurve.coeff_zero_cuspPoint_fst_add_inv_twelve_sq1 below · depth 32 - Constant term of 2yᵥ + xᵥ at Tate cusp points
ModularCurve.coeff_zero_two_mul_cuspPoint_snd_add_fst2 below · depth 32 - Toric Tate abscissa as weight-two form on Γ₁(N)∩Γ₀(N²)
ModularCurve.exists_modularForm_qExpansion_coeff_eq_coeff_tateToricPoint3 below · depth 32 - Mazur's cusp is a level-p structure on Tate(qᵖ)
ModularCurve.isLevelPStructure_tateBase_cuspData_mazurCusp73 below · depth 32 - Weight-four forms with Tate cusp and c₄ q-expansions
ModularCurve.FullLevel.AuxLevel.exists_modularForm_weight_four_qExpansion_eq_cuspPoint_sq_and_cFour110 below · depth 33 - A weight-six form with q-expansion c₆ of the Tate curve
ModularCurve.FullLevel.AuxLevel.exists_modularForm_weight_six_qExpansion_eq_cSix_tateBase64 below · depth 33 - Weight-three forms with Tate cusp-point q-expansions
ModularCurve.FullLevel.AuxLevel.exists_modularForm_weight_three_qExpansion_eq_cuspPoint72 below · depth 33 - Transport of twisted Tate torsion coordinates by a level automorphism
ModularCurve.FullLevel.AuxLevel.levelAut_apply_eq_unit_pow_mul_of_coe_eq_cuspPoint_variableChange124 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 - Transport of the Drinfeld Γ(q)-pair is relabelling by γ
ModularCurve.FullLevel.Diamond.exists_level_snd_snd_act_mapRing_eq_relabel_rigidDataH1Pow236 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 - 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 - Γ₀(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 - Γ₀(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 - 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 - 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 - 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 - Relabelling cusp data on the Tate curve is linear in (v,w)
ModularCurve.LevelRelabelling.relabel_tateBase_cuspData_eq_cuspData_zsmul_add_zsmul50 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 - Toric p-torsion points on Tate(qᵖ) kill ψₚ
ModularCurve.eval_prePsi_tateBase_tateToricPoint_eq_zero37 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 - Weight-four form with q-expansion c₄ of the Tate curve
ModularCurve.FullLevel.AuxLevel.exists_modularForm_weight_four_qExpansion_eq_c463 below · depth 34 - Level automorphism determined by q-expansion form ratios
ModularCurve.FullLevel.Diamond.apply_eq_of_isLevelAutAt_of_coeffMap_mul_qExpansion_slash_eq0 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 - Tate q-torsion coordinates and c₄,c₆ via forms on Γ_{H_1}
ModularCurve.FullLevel.Diamond.exists_modularForm_mul_qExpansion_eq_cuspPoint_and_slash_conjElemN_eq122 below · depth 34 - Forms on Γ_{H_1}(q²M') realising toric Tate-point coordinates
ModularCurve.FullLevel.Diamond.exists_modularForm_mul_qExpansion_eq_tateToricPoint_and_slash_conjElemN_eq10 below · depth 34 - Toric generator-kernel coefficients as modular forms on Γ_{H_1}
ModularCurve.FullLevel.Diamond.exists_modularForm_qExpansion_eq_coeff_toricGenKernel_and_slash_conjElemN_eq4 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 - 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 - 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 - Tate model and division values over the full-level q-expansion field
ModularCurve.FullLevel.exists_variableChange_tateBase_mem_laurentBaseChange_and_cuspData_mem124 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 - 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 - Divisor-sum coefficients of (xᵥ+1/12)² at Tate cusp points
ModularCurve.coeff_cuspPoint_fst_add_inv_twelve_sq39 below · depth 34 - Toric abscissa on Tate(q^N) as a weight-two form
ModularCurve.exists_modularForm_gamma1_inf_gamma0_mul_qExpansion_coeff_eq_coeff_tateToricPoint3 below · depth 34 - Cusp of Tate(qⁿ) gives a level-ℓ structure when ℓ ∣ n
ModularCurve.isLevelPStructure_tateBase_cuspData_of_dvd74 below · depth 34 - Relabelled Drinfeld pair passes through explicit cusp points
ModularCurve.FullLevel.AuxLevel.exists_isSectionThrough_relabel_coe_eq_cuspData_of_dvd179 below · depth 35 - Chart element with toric mathsf q-expansion and level automorphism
ModularCurve.FullLevel.AuxLevelOne.exists_isLevelAutAt_mem_chartAlgFin_coe_eq_tateToricPoint_sub_and_apply_eq_of_isPrimitiveRoot_mul_of_dvd2,195 below · depth 35 - Specialisation of the H₁ chart yields a κ(A)-algebra homomorphism
ModularCurve.FullLevel.Diamond.exists_algHom_forall_apply_residue_eq_apply_of_eq_map_classify_rigidDataH1Pow859 below · depth 35 - Existence of a moduli place for the Frobenius-twisted Γ₀(M')-class
ModularCurve.FullLevel.Diamond.exists_isModuliPlaceOf_map_frobenius_of_forall_evalAt_eq_of_eq_map_classify_rigidDataH1Pow_of_tatePoint_pinGamma12,817 below · depth 35 - Tate Γ₁(ℓ_g) point identifies level automorphisms with relabelling, sub-base edition
ModularCurve.FullLevel.Diamond.exists_pt_forall_isLevelAutAt_map_eq_act_of_exists_ringHom_rigidDataH1Pow_of_tate_pinGamma1_of_isScalarTower352 below · depth 35 - Level automorphism transports level-q cusp coordinates up to μ
ModularCurve.FullLevel.Diamond.levelAut_apply_eq_unit_pow_mul_of_coe_eq_cuspPoint_variableChange130 below · depth 35 - Level automorphism moves toric ℓ_g-torsion coordinates by c↦ c^{γ₀₀}
ModularCurve.FullLevel.Diamond.levelAut_apply_eq_unit_pow_mul_of_coe_eq_tateToricPoint_variableChange130 below · depth 35 - Gauss nonunits lie in the supersingular maximal ideal
ModularCurve.FullLevel.Diamond.mem_of_coe_mem_nonunits_of_isMaximal_of_mem_ssJSet_chartAlgFin2,297 below · depth 35 - Specialisation of j(q^{dℓ'}) as the q-th power of a cyclic-quotient j
ModularCurve.FullLevel.apply_eq_cyclicQuotientJ_pow_of_levelAut_of_originChart_of_forall_nsmul_eq_zero_of_tatePoint2,242 below · depth 35 - Every Ω-point of the full-level moduli ring has a tangent vector
ModularCurve.FullLevel.exists_algHom_dualNumber_fst_eq_snd_ne_zero_gamma0Pow221 below · depth 35 - Weight-four forms with Tate cusp-point and c₄ expansions at level q
ModularCurve.FullLevel.exists_modularForm_gammaH_levelH_weight_four_qExpansion_eq_cuspPoint_sq_and_cFour110 below · depth 35 - Weight-six form with q-expansion c₆ of Tate(q^{ q})
ModularCurve.FullLevel.exists_modularForm_gammaH_levelH_weight_six_qExpansion_eq_cSix_tateBase64 below · depth 35 - Weight-three forms realising the level-q Tate cusp points
ModularCurve.FullLevel.exists_modularForm_gammaH_levelH_weight_three_qExpansion_eq_cuspPoint72 below · depth 35 - First Drinfeld section is the origin at the Gauss place
ModularCurve.FullLevel.exists_originChart_fst_of_forall_ringHom_eq_zero_iff_mem_nonunits_of_tatePoint23 below · depth 35 - Weight-one Tate model and cusp points over K
ModularCurve.FullLevel.exists_variableChange_weightOne_tateBase_mem_laurentBaseChange_and_cuspData_mem123 below · depth 35 - Toric Tate cusp points: (xᵥ+1/12)² coefficients
ModularCurve.coeff_cuspPoint_fst_add_inv_twelve_sq_of_eq_zero37 below · depth 35 - Non-toric Tate cusp: coefficients of (xᵥ+tfrac112)²
ModularCurve.coeff_cuspPoint_fst_add_inv_twelve_sq_of_ne_zero37 below · depth 35 - Weight-two toric division values on Γ₁(n)∩Γ₀(Nn)
ModularCurve.exists_modularForm_gamma1_inf_gamma0_mul_qExpansion_eq_tateToricPoint_fst_and_slash_conjElemN_eq3 below · depth 35 - Weight-three toric family on Γ₁(n)∩Γ₀(Nn)
ModularCurve.exists_modularForm_gamma1_inf_gamma0_mul_weight_three_qExpansion_eq_tateToricPoint_and_slash_conjElemN_eq5 below · depth 35 - Integral (ζ'-1)-divisible difference of Tate toric x-series
ModularCurve.exists_powerSeries_forall_coeff_mem_span_sub_one_ofPowerSeries_eq_tateToricPoint_mul_sub_tateToricPoint0 below · depth 35 - Toric minus non-toric Tate abscissa: integral, nonzero reduction
ModularCurve.exists_powerSeries_map_residue_ne_zero_ofPowerSeries_eq_tateToricPoint_sub_nonToricPoint2 below · depth 35 - An integral q-series with non-zero reduction: toric minus non-toric abscissa
ModularCurve.exists_powerSeries_map_residue_ne_zero_ofPowerSeries_eq_tateToricPoint_sub_nonToricPoint_units2 below · depth 35 - Supersingular maximal ideals agreeing on q-substituted functions coincide
ModularCurve.FullLevel.Diamond.eq_of_isMaximal_of_mem_ssJSet_of_forall_coe_eq_qExpand_iff_chartAlgFin2,214 below · depth 36 - Branch reading gives an embedding of the full level-M' field
ModularCurve.FullLevel.Diamond.exists_algHom_modularFunctionFieldFullC_forall_apply_residue_eq_ringHom_of_transcendental_rigidDataH1Pow_of_tatePoint_pinGamma1864 below · depth 36 - Relabelled Drinfeld pair at the Tate point, level H₁
ModularCurve.FullLevel.Diamond.exists_isSectionThrough_relabel_coe_eq_cuspData_of_dvd_rigidDataH1Pow179 below · depth 36 - Frobenius twist of the H₁ branch after place extension
ModularCurve.FullLevel.Diamond.exists_place_curve_reduction_eq_map_frobenius_cyclicQuotientJ_eq_of_levelAut_of_originChart_rigidDataH1Pow_of_tatePoint_pinGamma12,187 below · depth 36 - Branch place at a supersingular point of the H₁ chart
ModularCurve.FullLevel.Diamond.exists_place_ringHom_chartAlgFin_residue_eq_originChart_levelAut_of_forall_nsmul_eq_zero_rigidDataH1Pow_of_tatePoint_pinGamma12,343 below · depth 36 - Non-constant dual-number point yields a non-zero tangent vector
ModularCurve.FullLevel.exists_algHom_dualNumber_fst_eq_snd_ne_zero_of_exists_pt_dualNumber_gamma0Pow0 below · depth 36 - Preimage in B₀ of j(mathsf q^{qℓ'd}) as cyclic quotient j-invariant
ModularCurve.FullLevel.exists_classify_preimage_forall_apply_eq_cyclicQuotientJ_etale_of_tatePoint_gamma0Pow2,227 below · depth 36 - Weight-four form with q-expansion c₄ of Tate(q^q)
ModularCurve.FullLevel.exists_modularForm_gammaH_levelH_weight_four_qExpansion_eq_cFour_tateBase63 below · depth 36 - Non-trivial first-order deformations of full-level Weierstrass moduli points
ModularCurve.FullLevel.exists_pt_dualNumber_map_fstHom_eq_ne_map_inlAlgHom_gamma0Pow219 below · depth 36 - Étale part of the pinned Tate point descends under qmapstoq^q
ModularCurve.FullLevel.exists_raw_etale_map_eq_map_qExpand_of_tatePoint169 below · depth 36 - Integrality of the toric Tate point's q-coefficients
ModularCurve.coeff_tateToricPoint_mem_of_mem0 below · depth 36 - Toric plus non-toric Tate point sums to a non-toric point
ModularCurve.eq_variableChange_nonToricPoint_pow_of_toPoint_add_toPoint_nonToricPoint_one_eq_some55 below · depth 36 - Toric points on the Tate curve add: U^q+U^ℓ=U^{q+ℓ}
ModularCurve.eq_variableChange_tateToricPoint_pow_add_of_toPoint_add_toPoint_eq_some55 below · depth 36 - Doubling the toric point: 2R reads as U^{2q}
ModularCurve.eq_variableChange_tateToricPoint_pow_two_mul_of_two_smul_toPoint_eq_some55 below · depth 36 - Doubling the toric point U^q on a transformed Tate curve
ModularCurve.eq_variableChange_tateToricPoint_pow_two_mul_of_two_smul_toPoint_eq_some_self55 below · depth 36 - Integrality of x_T(c)-x_T(c²) with unit constant term
ModularCurve.exists_powerSeries_map_residue_ne_zero_ofPowerSeries_eq_tateToricPoint_sub_tateToricPoint_sq0 below · depth 36 - Tate curve over the Gauss ring: smooth model and toric point
ModularCurve.exists_tateBase_eq_map_and_tateToricPoint_mem_nonunits1 below · depth 36 - Transported Tate cusp pair as a q-torsion basis
ModularCurve.torsion_basis_of_map_eq_variableChange_tateBase_cuspData_of_mul_eq86 below · depth 36 - Specialisation of j(qᵈ) as q-th power of cyclic-quotient invariant
ModularCurve.FullLevel.Diamond.apply_eq_cyclicQuotientJ_pow_of_levelAut_of_originChart_of_forall_nsmul_eq_zero_rigidDataH1Pow_of_tatePoint_pinGamma12,178 below · depth 37 - First Drinfeld section is the origin on the Gauss branch
ModularCurve.FullLevel.Diamond.exists_originChart_fst_of_forall_ringHom_eq_zero_iff_mem_nonunits_rigidDataH1Pow_of_tatePoint_pinGamma123 below · depth 37 - Étale part of the pinned H₁ Tate point as a q-expansion
ModularCurve.FullLevel.Diamond.exists_raw_etale_map_eq_map_qExpand_of_tatePoint_pinGamma1150 below · depth 37 - Tate point: j(mathsf q^{qℓ'd}) as a cyclic quotient j-invariant
ModularCurve.FullLevel.algebraMap_jqNModC_eq_cyclicQuotientJ_of_eq_map_tatePoint_gamma0Pow153 below · depth 37 - Specialising the Tate reading of j(mathsf q^{qℓ'd}) to cyclic quotients
ModularCurve.FullLevel.apply_eq_cyclicQuotientJ_of_classify_eq_jqNModC_of_tatePoint_gamma0Pow92 below · depth 37 - Surjectivity of the Tate-point classifying map onto the j-chart algebra
ModularCurve.FullLevel.exists_clC_eq_of_mem_chartAlgFin_of_tatePoint_gamma0Pow2,211 below · depth 37 - Raw Γ₀(M')×Γ(ℓ) structure on the twisted Tate curve
ModularCurve.FullLevel.exists_variableChange_raw_etale_tate_weightOne_level_fst_gamma0Pow167 below · depth 37 - Tate data at level Np as the q↦ q^N image of level p
ModularCurve.tateBase_mul_eq_map_qExpand_and_tateToricPoint_eq_and_nonToricPoint_eq0 below · depth 37
… and 11 more statements (search for the module name to find them).