Definitions/Def_ModularCurve_WeierstrassGamma0Pow.lean
Prime-power Γ₀ level data via generator kernel polynomials
For a Weierstrass curve W over a commutative ring T, natural numbers p,k and a polynomial h \in T[X], the structure WeierstrassCurve.IsCyclicGenKernel W p k h bundles four conditions: \deg h \le \varphi(p^k)/2 and the coefficient of X^{\varphi(p^k)/2} equals 1 (so h is monic of that degree, recorded as IsCyclicGenKernel.monic); the divisibility h \cdot \mathrm{pre}\Psi_{p^{k-1}} \mid \mathrm{pre}\Psi_{p^k} of Mathlib's univariate division polynomials; and, for every a with 2 \le a \le (p^k-1)/2 and p \nmid a, the divisibility h \mid W.\mathrm{smulNumerator}\,a\,(\varphi(p^k)/2)\,h, where \mathrm{smulNumerator}\,a\,d\,h = \sum_{i \le d} h_i \Phi_a^{\,i}\,(\Psi^2_a)^{\,d-i} is the degree-d homogenisation of h evaluated at the x-coordinate \Phi_a/\Psi_a^2 of [a]P. Thus h is required to cut out, in the x-line, a set of \varphi(p^k)/2 points of exact order p^k stable under multiplication by units mod p^k. The predicate transports along a ring homomorphism: IsCyclicGenKernel.map gives the same property for W.map\,f and h.map\,f.
The local datum at a prime power is ModularCurve.IsGamma0PowAt W p k h, defined as the project's IsTwoKernel condition when p^k = 2 and as IsCyclicGenKernel W p k h otherwise, with matching transport degree gamma0PowDeg p k (=1 when p^k=2, else \varphi(p^k)/2); two lemmas record the two branches, and IsGamma0PowAt.map its base change. From this, gamma0PowComponent A M' hM is a LevelComponent over A whose objects are families h : M'.\mathrm{primeFactors} \to T[X], whose level predicate asks IsGamma0PowAt W p (M'.factorization p) (h p) for each prime factor p of M', with base change by Polynomial.map and variable change by kernelVariableChangeDeg C (gamma0PowDeg p (M'.factorization p)), i.e. h \mapsto u^{-2d} h(u^2X + r); the hypothesis hM supplies compatibility of IsGamma0PowAt with changes of variables, which is the component's isLevel_act field. Finally WeierstrassCurve.DrinfeldGlobal.rigidDataPow A ℓ M' q hℓ hM 𝒢 𝒯 is the rigid Weierstrass datum obtained from the triple product of this Γ₀-component, the level-ℓ point component levelPComponent A ℓ hℓ and the Drinfeld level-q component levelComponent A 𝒢 q 𝒯.
Relation to Mathlib
The division polynomials preΨ, Φ and ΨSq, and the variable-change action on Weierstrass curves, are Mathlib's; Mathlib has no notion of a Γ₀-type level structure, and the kernel-polynomial predicates and level components here are the project's own.
Where it is used
These level components provide the moduli data for modular curves with Γ₀(M')-type level together with a point structure of level ℓ and full Drinfeld level q, in the form of a rigid Weierstrass datum; the prime-power version refines the squarefree one by allowing each prime factor of M' to occur with its exponent v_p(M').
References
- N. M. Katz and B. Mazur, Arithmetic Moduli of Elliptic Curves, Annals of Mathematics Studies 108, Princeton University Press, 1985
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 107 lines
- 13 declarations
- used in the statements of 362 theorems and imported by 380 proofs
- imports 8 definition modules
Source file: Definitions/Def_ModularCurve_WeierstrassGamma0Pow.lean
Imports
Def_ModularCurve_WeierstrassLevelCarrierDef_ModularCurve_WeierstrassLevelModuliDatumDef_ModularCurve_WeierstrassLevelComponentsDef_ModularCurve_WeierstrassGamma0SqfDef_WeierstrassCurve_DrinfeldBasisGlobalDef_WeierstrassCurve_DrinfeldTransportPinDef_WeierstrassCurve_SectionAtOriginDef_WeierstrassCurve_DrinfeldLevelFunctor
Imported by
Declarations
- structure
WeierstrassCurve.IsCyclicGenKernel - field
WeierstrassCurve.IsCyclicGenKernel.natDegree_le - field
WeierstrassCurve.IsCyclicGenKernel.coeff_eq_one - field
WeierstrassCurve.IsCyclicGenKernel.dvd_smulNumerator - theorem
WeierstrassCurve.IsCyclicGenKernel.monic - theorem
WeierstrassCurve.IsCyclicGenKernel.map - def
ModularCurve.gamma0PowDeg - def
ModularCurve.IsGamma0PowAt - theorem
ModularCurve.isGamma0PowAt_of_pow_eq_two - theorem
ModularCurve.isGamma0PowAt_of_pow_ne_two - theorem
ModularCurve.IsGamma0PowAt.map - def
ModularCurve.gamma0PowComponent - def
WeierstrassCurve.DrinfeldGlobal.rigidDataPow
Source
import Mathlib import Definitions.Def_ModularCurve_WeierstrassLevelCarrier import Definitions.Def_ModularCurve_WeierstrassLevelModuliDatum import Definitions.Def_ModularCurve_WeierstrassLevelComponents import Definitions.Def_ModularCurve_WeierstrassGamma0Sqf import Definitions.Def_WeierstrassCurve_DrinfeldBasisGlobal import Definitions.Def_WeierstrassCurve_DrinfeldTransportPin import Definitions.Def_WeierstrassCurve_SectionAtOrigin import Definitions.Def_WeierstrassCurve_DrinfeldLevelFunctor set_option autoImplicit false universe u noncomputable section open Polynomial namespace WeierstrassCurve variable {T : Type u} [CommRing T] (W : WeierstrassCurve T) structure IsCyclicGenKernel (p k : ℕ) (h : T[X]) : Prop where natDegree_le : h.natDegree ≤ Nat.totient (p ^ k) / 2 coeff_eq_one : h.coeff (Nat.totient (p ^ k) / 2) = 1 mul_preΨ_dvd : h * W.preΨ (p ^ (k - 1)) ∣ W.preΨ (p ^ k) dvd_smulNumerator : ∀ a : ℕ, 2 ≤ a → a ≤ (p ^ k - 1) / 2 → ¬ p ∣ a → h ∣ W.smulNumerator a (Nat.totient (p ^ k) / 2) h theorem IsCyclicGenKernel.monic {p k : ℕ} {h : T[X]} (hh : W.IsCyclicGenKernel p k h) : h.Monic := Polynomial.monic_of_natDegree_le_of_coeff_eq_one _ hh.natDegree_le hh.coeff_eq_one theorem IsCyclicGenKernel.map {T' : Type u} [CommRing T'] (f : T →+* T') {p k : ℕ} {h : T[X]} (hh : W.IsCyclicGenKernel p k h) : (W.map f).IsCyclicGenKernel p k (h.map f) where natDegree_le := (Polynomial.natDegree_map_le).trans hh.natDegree_le coeff_eq_one := by rw [Polynomial.coeff_map, hh.coeff_eq_one, map_one] mul_preΨ_dvd := by rw [WeierstrassCurve.map_preΨ, WeierstrassCurve.map_preΨ, ← Polynomial.map_mul] exact Polynomial.map_dvd f hh.mul_preΨ_dvd dvd_smulNumerator := fun a ha ha' hpa => by rw [W.smulNumerator_map f]; exact Polynomial.map_dvd f (hh.dvd_smulNumerator a ha ha' hpa) end WeierstrassCurve namespace ModularCurve variable {T : Type u} [CommRing T] def gamma0PowDeg (p k : ℕ) : ℕ := if p ^ k = 2 then 1 else Nat.totient (p ^ k) / 2 def IsGamma0PowAt (W : WeierstrassCurve T) (p k : ℕ) (h : T[X]) : Prop := if p ^ k = 2 then W.IsTwoKernel h else W.IsCyclicGenKernel p k h theorem isGamma0PowAt_of_pow_eq_two (W : WeierstrassCurve T) {p k : ℕ} (hpk : p ^ k = 2) (h : T[X]) : IsGamma0PowAt W p k h ↔ W.IsTwoKernel h := by simp [IsGamma0PowAt, hpk] theorem isGamma0PowAt_of_pow_ne_two (W : WeierstrassCurve T) {p k : ℕ} (hpk : p ^ k ≠ 2) (h : T[X]) : IsGamma0PowAt W p k h ↔ W.IsCyclicGenKernel p k h := by simp [IsGamma0PowAt, hpk] theorem IsGamma0PowAt.map {T' : Type u} [CommRing T'] (f : T →+* T') (W : WeierstrassCurve T) (p k : ℕ) {h : T[X]} (hh : IsGamma0PowAt W p k h) : IsGamma0PowAt (W.map f) p k (h.map f) := by by_cases hpk : p ^ k = 2 · exact (isGamma0PowAt_of_pow_eq_two _ hpk _).2 (((isGamma0PowAt_of_pow_eq_two _ hpk _).1 hh).map W f) · exact (isGamma0PowAt_of_pow_ne_two _ hpk _).2 (((isGamma0PowAt_of_pow_ne_two _ hpk _).1 hh).map W f) def gamma0PowComponent (A : Type u) [CommRing A] (M' : ℕ) (hM : ∀ (T : Type u) [CommRing T] [Algebra A T] (W : WeierstrassCurve T) (C : WeierstrassCurve.VariableChange T) (p k : ℕ) (h : T[X]), IsGamma0PowAt W p k h → IsGamma0PowAt (C • W) p k (kernelVariableChangeDeg C (gamma0PowDeg p k) h)) : LevelComponent A where obj T _ _ := ↥M'.primeFactors → T[X] IsLevel W h := ∀ p : ↥M'.primeFactors, IsGamma0PowAt W (p : ℕ) (M'.factorization (p : ℕ)) (h p) map f h := fun p => (h p).map f.toRingHom act C h := fun p => kernelVariableChangeDeg C (gamma0PowDeg (p : ℕ) (M'.factorization (p : ℕ))) (h p) map_id h := funext fun _ => Polynomial.map_id map_comp f g h := funext fun p => (Polynomial.map_map f.toRingHom g.toRingHom (h p)).symm act_one h := funext fun p => kernelVariableChangeDeg_one _ (h p) act_mul C C' h := funext fun p => kernelVariableChangeDeg_mul C C' _ (h p) map_act f C h := funext fun p => kernelVariableChangeDeg_map f.toRingHom C _ (h p) isLevel_map f W h hh := fun p => IsGamma0PowAt.map f.toRingHom W (p : ℕ) _ (hh p) isLevel_act C W h hh := fun p => hM _ W C (p : ℕ) _ (h p) (hh p) end ModularCurve namespace WeierstrassCurve.DrinfeldGlobal def rigidDataPow (A : Type u) [CommRing A] (ℓ M' q : ℕ) (hℓ : ∀ (T : Type u) [CommRing T] [Algebra A T] (W : WeierstrassCurve T) (C : WeierstrassCurve.VariableChange T) (D : ModularCurve.LevelPData T), ModularCurve.IsLevelPStructure W ℓ D → ModularCurve.IsLevelPStructure (C • W) ℓ (D.variableChange C)) (hM : ∀ (T : Type u) [CommRing T] [Algebra A T] (W : WeierstrassCurve T) (C : WeierstrassCurve.VariableChange T) (p k : ℕ) (h : Polynomial T), ModularCurve.IsGamma0PowAt W p k h → ModularCurve.IsGamma0PowAt (C • W) p k (ModularCurve.kernelVariableChangeDeg C (ModularCurve.gamma0PowDeg p k) h)) (𝒢 : GroupLaws A) (𝒯 : LevelTransport A 𝒢 q) : ModularCurve.RigidWeierstrassData.{u} A := ((ModularCurve.gamma0PowComponent A M' hM).prod ((ModularCurve.levelPComponent A ℓ hℓ).prod (levelComponent A 𝒢 q 𝒯))).toRigid end WeierstrassCurve.DrinfeldGlobal end
Statements phrased using this module (362)
- Special-fibre points of the rigid chart as level structures
ModularCurve.FullLevel.exists_ssFibreDictionary_chartAlgFin_rigidDataPow2,868 below · depth 28 - Invariance of the (p,k)-kernel predicate under variable change
ModularCurve.IsGamma0PowAt.variableChange5 below · depth 28 - Special-fibre dictionary for the rigid chart at level Γ(q)∩Γ₁(ℓ_g)∩Γ₀(M')
ModularCurve.FullLevel.Diamond.exists_ssFibreDictionary_chartAlgFin_rigidDataGamma1Pow2,857 below · depth 29 - 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 - Generator-kernel polynomials of level p^k under variable change
WeierstrassCurve.IsCyclicGenKernel.variableChange3 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 - Directed supersingular-fibre dictionary for the Γ₁(ℓ_g)-rigid moduli data
ModularCurve.FullLevel.Diamond.exists_ssFibreDictionary_chartAlgFin_rigidDataGamma1Pow_directedAt2,856 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 - A point of order M' whose multiples are cut out by the Γ₀-component
WeierstrassCurve.DrinfeldGlobal.exists_addOrderOf_eq_forall_isRoot_level_fst_of_raw_rigidDataPow5 below · depth 30 - Aligning raw rigid data with equal Γ₀(M')-moduli class
WeierstrassCurve.DrinfeldGlobal.exists_variableChange_curve_eq_level_fst_eq_of_moduliPoint_mk_eq_of_raw_rigidDataPow2 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 - 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 - Supersingular fibre dictionary with automorphism count at s
ModularCurve.FullLevel.exists_ssFibreDictionary_autCount_chartAlgFin_rigidDataPow2,889 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 - Module-finite algebra representing Γ₀(M') kernel tuples
ModularCurve.IsGamma0PowAt.exists_moduleFinite_represents_tuple2 below · depth 31 - Linked Γ₁(ℓ)-point is ℓ^{k-1} times a kernel root
ModularCurve.IsGamma1Link.exists_root_toPoint_eq_pow_smul_toPoint_of_isAlgClosed16 below · depth 31 - Diamond relabelling by Γ₀(M') on `rigidDataH1Pow`
ModularCurve.LevelRelabelling.exists_isModuliRelabelling_rigidDataH1Pow180 below · depth 31 - A rational Γ₀(p^k)-structure on the Tate curve
ModularCurve.exists_isGamma0PowAt_tateBase_and_map_coeffMap_eq_prod_X_sub_C_toricPoint22 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 - 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 - 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 - Transport of level automorphism and supersingular point to j-chart
ModularCurve.FullLevel.exists_ringHom_chartAlgFin_levelAut_comap_eq_of_isLevelAutAt_of_ringHom_cyclotomic_rigidDataPow968 below · depth 32 - Admissible constants over a cyclotomic discrete valuation ring
ModularCurve.FullLevel.exists_valuationSubring_admissibleConstants_over_cyclotomic11 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 - Level automorphisms in Γ(ℓ')∩Γ₀(M') fix supersingular closed points
ModularCurve.FullLevel.levelAut_sub_self_mem_of_isLevelAutAt_of_mem_Gamma_of_over_ssPlace_rigidDataPow2,871 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 - 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 - Tate curve: toric generators give a Γ₀(p^k)-structure
ModularCurve.isGamma0PowAt_tateBase_prod_X_sub_C_toricPoint_fst19 below · depth 32 - Cyclic generator of order M' cut by the Γ₀(M')-tuple
WeierstrassCurve.DrinfeldGlobal.exists_addOrderOf_eq_forall_isRoot_level_fst_of_raw_rigidDataH1Pow5 below · depth 32 - Equal Γ₀(M')-moduli points give a common change of variables
WeierstrassCurve.DrinfeldGlobal.exists_variableChange_curve_eq_level_fst_eq_of_moduliPoint_mk_eq_of_raw_rigidDataH1Pow2 below · depth 32 - Two H₁-admissible Γ₁(ℓ_g)-points on one curve lie in line
WeierstrassCurve.DrinfeldGlobal.inLine_level_snd_fst_xP_of_curve_eq_of_level_fst_eq_rigidDataH1Pow20 below · depth 32 - A cyclic generator-kernel polynomial splits over ⟨ Q⟩
WeierstrassCurve.IsCyclicGenKernel.eq_prod_X_sub_C_coordsOrZero_nsmul8 below · depth 32 - Generator-kernel polynomials have a root of exact order p^k
WeierstrassCurve.IsCyclicGenKernel.exists_addOrderOf_eq_and_isRoot13 below · depth 32 - Representability of cyclic generator-kernel polynomials by a finite B-algebra
WeierstrassCurve.IsCyclicGenKernel.exists_moduleFinite_represents0 below · depth 32 - Generator independence of the half-system x-coordinate polynomial
WeierstrassCurve.prod_X_sub_C_coordsOrZero_nsmul_eq_of_zmultiples_eq8 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 - Transport of a cyclotomic level automorphism to the k₀-chart
ModularCurve.FullLevel.Diamond.exists_ringHom_chartAlgFin_levelAut_comap_eq_of_isLevelAutAt_of_ringHom_cyclotomic_rigidDataGamma1Pow939 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 - Trivial-diamond level automorphisms fix supersingular chart points
ModularCurve.FullLevel.Diamond.levelAut_sub_self_mem_of_isLevelAutAt_of_mem_gamma0_of_apply_eq_one_of_over_ssPlace_rigidDataGamma1Pow2,859 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 - Supersingular closed point lifts to the chart over admissible constants
ModularCurve.FullLevel.exists_isMaximal_chartAlgFin_comap_eq_of_coeffMap_cyclotomic_rigidDataPow197 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 - Transport of level automorphisms along a cyclotomic coefficient map
ModularCurve.FullLevel.exists_ringHom_chartAlgFin_isLevelAutAt_restrict_comp_eq_of_isLevelAutAt_cyclotomic_rigidDataPow242 below · depth 33 - Supersingular fibre dictionary with Γ₀(M') relabelling
ModularCurve.FullLevel.exists_ssFibreDictionary_relabel_of_isLevelAutAt_chartAlgFin_rigidDataPow2,868 below · depth 33 - Supersingular points of the j-chart lie over supersingular places
ModularCurve.FullLevel.exists_ssPlace_under_of_isMaximal_chartAlgFin_of_mem_ssJSet_rigidDataPow891 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 - Relabelling by γ∈Γ(ℓ')∩Γ₀(M') fixes a supersingular class
ModularCurve.FullLevel.quotMk_eq_of_relabel_of_mem_Gamma_of_forall_smul_eq_zero_rigidDataPow10 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 - Kernel polynomial at p^k cuts out a cyclic subgroup of order p^k
ModularCurve.IsGamma0PowAt.isAddCyclic_closure_and_natCard_eq_pow12 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 - Integral descent of Γ₀(M')-kernel tuples, componentwise
ModularCurve.exists_map_eq_and_isGamma0PowAt_tuple_of_isGamma0PowAt_map1 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 - Torsion basis at the Tate cusp pair of level q
ModularCurve.torsion_basis_of_map_eq_variableChange_tateBase_cuspData86 below · depth 33 - Cyclic generator-kernel polynomial of a point of order p^k
WeierstrassCurve.isCyclicGenKernel_prod_X_sub_C_coordsOrZero_nsmul_of_addOrderOf_eq_pow8 below · depth 33 - Order-two point gives a degree-one kernel polynomial
WeierstrassCurve.isTwoKernel_X_sub_C_coordsOrZero_of_addOrderOf_eq_two1 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 - Level automorphism determined by q-expansion form ratios
ModularCurve.FullLevel.Diamond.apply_eq_of_isLevelAutAt_of_coeffMap_mul_qExpansion_slash_eq0 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
… and 212 more statements (search for the module name to find them).