Definitions/Def_ModularCurve_WeierstrassH1Pow.lean
Level component with Γ₁(ℓ)-generator link, and its rigid data
Over a commutative ring T and a Weierstrass curve W/T, ModularCurve.inLineMulPoly W ℓ n x₀ is the polynomial \prod_{a=1}^{(\ell-1)/2}\bigl(\Phi_n\cdot\Psi_a^2(x_0)-\Phi_a(x_0)\cdot\Psi_n^2\bigr)\in T[X], formed from Mathlib's division polynomials W.Φ and W.ΨSq (whose quotient gives the abscissa of a multiple); the factor indexed by a vanishes at an abscissa x exactly when x([n]G)=x([a]P_0) in the division-free sense, for G with abscissa x and P_0 with abscissa x_0. The lemma inLineMulPoly_map records compatibility with a ring homomorphism f: the polynomial formed for W mapped by f at f(x_0) is the coefficientwise image of the one formed for W at x_0.
ModularCurve.IsGamma1Link W ℓ M' h D asserts, for each proof that \ell is a prime factor of M', that the \ell-th member h(\ell) of the family h indexed by the prime factors of M' divides inLineMulPoly W ℓ (ℓ ^ (M'.factorization ℓ - 1)) D.xP, where D.xP is the abscissa recorded by the level-p datum D; the condition is vacuous when \ell\nmid M'. IsGamma1Link.map transports it along a ring homomorphism.
ModularCurve.LevelComponent.restrict L P hmap hact produces, from a level component L and a predicate P on pairs (curve, level datum) that is preserved by base change along A-algebra maps and by Weierstrass variable changes on pairs already satisfying L.IsLevel, the level component with the same carrier, base-change and variable-change operations and with IsLevel W x replaced by the conjunction of L.IsLevel W x and P W x.
Finally, rigidDataH1Pow A ℓ M' q hℓ hM hL 𝒢 𝒯 is the rigid Weierstrass datum obtained from the product of gamma0PowComponent A M' hM (families of monic kernel polynomials at the prime powers dividing M'), gamma1Component A ℓ hℓ (a point P with (W.\mathrm{preΨ}\,\ell)(x_P)=0 and Q=P) and levelComponent A 𝒢 q 𝒯 (Drinfeld q-bases for the group laws 𝒢 with transport 𝒯), restricted by the link condition relating the \Gamma_0-tuple's \ell-component to x_P; the hypothesis hL supplies the required variable-change stability, for h\mapsto kernelVariableChangeDeg C d h against the substitution x\mapsto u^{-2}(x-r) on abscissae. The datum is then passed through toRigid, whose raw points are quadruples (Weierstrass curve, invertibility of \Delta, level datum, level condition) with variable changes as the identification relation.
Relation to Mathlib
The division polynomials Φ, ΨSq, preΨ and variable changes of Weierstrass curves are Mathlib's; the notions LevelComponent, RigidWeierstrassData, IsGamma1Point, IsGamma0PowAt, IsGamma1Link and the Drinfeld-basis components are the project's own, Mathlib having no moduli-of-elliptic-curves-with-level-structure API.
Where it is used
This assembles the rigid moduli datum for structures of type \Gamma_0(M')\cap\Gamma_1(\ell) together with a Drinfeld q-basis, the level structure underlying the modular curves used on the modularity side of the argument; the link condition is what forces the \Gamma_1(\ell)-point to generate the \ell-torsion of the cyclic subgroup recorded by the \Gamma_0-part.
References
- N. M. Katz and B. Mazur, Arithmetic Moduli of Elliptic Curves, Annals of Mathematics Studies 108, Princeton University Press, 1985
- J. H. Silverman, The Arithmetic of Elliptic Curves, Graduate Texts in Mathematics 106, Springer, 1986
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 86 lines
- 6 declarations
- used in the statements of 157 theorems and imported by 165 proofs
- imports 1 definition modules
Source file: Definitions/Def_ModularCurve_WeierstrassH1Pow.lean
Imported by
- no other definition module
Declarations
- def
ModularCurve.inLineMulPoly - theorem
ModularCurve.inLineMulPoly_map - def
ModularCurve.IsGamma1Link - theorem
ModularCurve.IsGamma1Link.map - def
ModularCurve.LevelComponent.restrict - def
WeierstrassCurve.DrinfeldGlobal.rigidDataH1Pow
Source
import Mathlib import Definitions.Def_ModularCurve_WeierstrassGamma1Pow set_option autoImplicit false universe u noncomputable section open Polynomial namespace ModularCurve section Link variable {T : Type u} [CommRing T] def inLineMulPoly (W : WeierstrassCurve T) (ℓ n : ℕ) (x₀ : T) : T[X] := ∏ a ∈ Finset.Icc 1 ((ℓ - 1) / 2), (W.Φ n * C ((W.ΨSq a).eval x₀) - C ((W.Φ a).eval x₀) * W.ΨSq n) theorem inLineMulPoly_map {T' : Type u} [CommRing T'] (f : T →+* T') (W : WeierstrassCurve T) (ℓ n : ℕ) (x₀ : T) : inLineMulPoly (W.map f) ℓ n (f x₀) = (inLineMulPoly W ℓ n x₀).map f := by simp only [inLineMulPoly, Polynomial.map_prod, Polynomial.map_sub, Polynomial.map_mul, Polynomial.map_C, WeierstrassCurve.map_Φ, WeierstrassCurve.map_ΨSq, Polynomial.eval_map, Polynomial.eval₂_at_apply] def IsGamma1Link (W : WeierstrassCurve T) (ℓ M' : ℕ) (h : ↥M'.primeFactors → T[X]) (D : LevelPData T) : Prop := ∀ hmem : ℓ ∈ M'.primeFactors, h ⟨ℓ, hmem⟩ ∣ inLineMulPoly W ℓ (ℓ ^ (M'.factorization ℓ - 1)) D.xP theorem IsGamma1Link.map {T' : Type u} [CommRing T'] (f : T →+* T') {W : WeierstrassCurve T} {ℓ M' : ℕ} {h : ↥M'.primeFactors → T[X]} {D : LevelPData T} (hD : IsGamma1Link W ℓ M' h D) : IsGamma1Link (W.map f) ℓ M' (fun p => (h p).map f) (D.map f) := fun hmem => by rw [LevelPData.map_xP, inLineMulPoly_map]; exact Polynomial.map_dvd f (hD hmem) end Link namespace LevelComponent variable {A : Type u} [CommRing A] def restrict (L : LevelComponent A) (P : ∀ {T : Type u} [CommRing T] [Algebra A T], WeierstrassCurve T → L.obj T → Prop) (hmap : ∀ {T T' : Type u} [CommRing T] [Algebra A T] [CommRing T'] [Algebra A T'] (f : T →ₐ[A] T') (W : WeierstrassCurve T) (x : L.obj T), L.IsLevel W x → P W x → P (W.map f.toRingHom) (L.map f x)) (hact : ∀ {T : Type u} [CommRing T] [Algebra A T] (C : WeierstrassCurve.VariableChange T) (W : WeierstrassCurve T) (x : L.obj T), L.IsLevel W x → P W x → P (C • W) (L.act C x)) : LevelComponent A where obj := L.obj IsLevel W x := L.IsLevel W x ∧ P W x map := L.map act := L.act map_id := L.map_id map_comp := L.map_comp act_one := L.act_one act_mul := L.act_mul map_act := L.map_act isLevel_map f W x h := ⟨L.isLevel_map f W x h.1, hmap f W x h.1 h.2⟩ isLevel_act C W x h := ⟨L.isLevel_act C W x h.1, hact C W x h.1 h.2⟩ end LevelComponent end ModularCurve namespace WeierstrassCurve.DrinfeldGlobal def rigidDataH1Pow (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.IsGamma1Point W ℓ D → ModularCurve.IsGamma1Point (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)) (hL : ∀ (T : Type u) [CommRing T] [Algebra A T] (W : WeierstrassCurve T) (C : WeierstrassCurve.VariableChange T) (d n : ℕ) (h : Polynomial T) (x : T), h ∣ ModularCurve.inLineMulPoly W ℓ n x → ModularCurve.kernelVariableChangeDeg C d h ∣ ModularCurve.inLineMulPoly (C • W) ℓ n (((C.u⁻¹ : Tˣ) : T) ^ 2 * (x - C.r))) (𝒢 : GroupLaws A) (𝒯 : LevelTransport A 𝒢 q) : ModularCurve.RigidWeierstrassData.{u} A := (((ModularCurve.gamma0PowComponent A M' hM).prod ((ModularCurve.gamma1Component A ℓ hℓ).prod (levelComponent A 𝒢 q 𝒯))).restrict (fun W x => ModularCurve.IsGamma1Link W ℓ M' x.1 x.2.1) (fun f _ _ _ hx => ModularCurve.IsGamma1Link.map f.toRingHom hx) (fun C W _ _ hx => fun hmem => hL _ W C _ _ _ _ (hx hmem))).toRigid end WeierstrassCurve.DrinfeldGlobal end
Statements phrased using this module (157)
- 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 - 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 - 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 - Invariance of the in-line polynomial under P↦[a]P
ModularCurve.exists_inLineMulPoly_eq_C_mul_of_toPoint_eq_zsmul_of_eval_prePsi_eq_zero6 below · depth 31 - Transport of the in-line divisibility under a Weierstrass variable change
ModularCurve.kernelVariableChangeDeg_dvd_inLineMulPoly_variableChange2 below · depth 31 - 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 - 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 - Diamond invariance of the in-line product polynomial for sections
WeierstrassCurve.DrinfeldGlobal.exists_isUnit_inLineMulPoly_eq_C_mul_of_isSectionThrough_zsmulSection178 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 - 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 - 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 - 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 ℓ-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 - 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 - 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 - 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 - 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 - Hasse parameter and j at a supersingular Drinfeld point
ModularCurve.LevelModuliPackageAbs.exists_coeff_nthSeries_sub_mul_mem_span_and_map_j0_sub_algebraMap_eq_mul_eval_of_factorsThrough_rigidDataH1Pow78 below · depth 34 - Supersingular completion: Drinfeld basis, Hasse parameter, relabelling linear part
ModularCurve.LevelModuliPackageAbs.exists_isDrinfeldBasisAdic_isRegularLocalRing_hasseParam_problemAut_linearPart_adicCompletion_of_forall_mem_ssJSet_rigidDataH1Pow1,117 below · depth 34 - Rigidified universality of the H₁ moduli ring at a supersingular point
ModularCurve.LevelModuliPackageAbs.exists_reducesToOrigin_isDrinfeldBasisAdic_universal_of_factorsThrough_rigidDataH1Pow972 below · depth 34 - Relabelling the Drinfeld pair by g gives a moduli automorphism
ModularCurve.LevelRelabelling.exists_problemAut_relabel_drinfeld_of_isUnit_det_rigidDataH1Pow108 below · depth 34 - 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 - A primitive q-th root of unity on each component of the H₁ moduli ring
ModularCurve.FullLevel.Diamond.exists_isPrimitiveRoot_quotient_mk_of_mem_minimalPrimes_levelModuliPackageAbs_of_maximalIdeal_eq_span_natCast_rigidDataH1Pow1,425 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 - Completions away from q are integrally closed domains
ModularCurve.FullLevel.Diamond.isDomain_and_isIntegrallyClosed_adicCompletion_of_not_mem_levelModuliPackageAbs_rigidDataH1Pow286 below · depth 35 - Completed local ring at an ordinary point is normal
ModularCurve.FullLevel.Diamond.isDomain_and_isIntegrallyClosed_adicCompletion_of_nthSeries_eq_mul_X_pow_levelModuliPackageAbs_rigidDataH1Pow1,165 below · depth 35 - Normality of completed local rings at supersingular points
ModularCurve.FullLevel.Diamond.isDomain_and_isIntegrallyClosed_adicCompletion_of_nthSeries_eq_mul_X_pow_mul_levelModuliPackageAbs_rigidDataH1Pow1,029 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 - Count of H₁-moduli points above a transcendental j
ModularCurve.FullLevel.Diamond.natCard_algHom_apply_jOf_univ_eq_of_transcendental_rigidDataH1Pow245 below · depth 35 - No minimal prime of the generic fibre is maximal
ModularCurve.FullLevel.Diamond.not_isMaximal_of_mem_minimalPrimes_tensorProduct_rigidDataH1Pow244 below · depth 35 - Smoothness of the generic fibre of the H₁ moduli ring
ModularCurve.FullLevel.Diamond.smooth_tensorProduct_levelModuliPackageAbs_rigidDataH1Pow_of_isFractionRing231 below · depth 35 - Dual-number points with constant transcendental j are constant
ModularCurve.FullLevel.Diamond.snd_apply_eq_zero_of_apply_jOf_univ_eq_dualNumber_rigidDataH1Pow220 below · depth 35 - Minimal primes of the level moduli ring are principal pins
ModularCurve.FullLevel.exists_eq_span_sub_algebraMap_of_mem_minimalPrimes_rigidDataH1Pow_of_maximalIdeal_eq_span_of_adjoin_eq_top_tatePoint_of_isPrimitiveRoot_mul_of_dvd1,987 below · depth 35 - Lifting full-level points along a scalar restriction
ModularCurve.FullLevel.exists_pt_restrictScalars_jOf_eq_classify_comp_eq_rigidDataH1Pow_of_isPrimitiveRoot_mul_of_dvd0 below · depth 35 - Uniqueness of the classifying map at level H₁
ModularCurve.LevelModuliPackageAbs.algHom_eq_of_isBaseChange_lawIso_appAdic_eq_rigidDataH1Pow77 below · depth 35 - Ordinary H₁ local ring as W₀[[t]][X]/(g), g Eisenstein-like
ModularCurve.LevelModuliPackageAbs.exists_algEquiv_adjoinRoot_powerSeries_of_factorsThrough_of_nthSeries_eq_mul_X_pow_rigidDataH1Pow1,153 below · depth 35 - Existence of the classifying W₀-algebra map on formal deformations
ModularCurve.LevelModuliPackageAbs.exists_algHom_isBaseChange_lawIso_appAdic_eq_rigidDataH1Pow947 below · depth 35 - Relabelling automorphisms act linearly on Drinfeld origin parameters
ModularCurve.LevelModuliPackageAbs.exists_ringEquiv_originParam_linearPart_of_problemAut_relabel_of_reducesToOrigin_universal_rigidDataH1Pow_of_mem_ssJSet218 below · depth 35 - Residue base change and Drinfeld basis of the reduced law
ModularCurve.LevelModuliPackageAbs.isBaseChange_and_isDrinfeldBasisAdic_residue_of_toPowerSeries_eq_rigidDataH1Pow3 below · depth 35 - Equal `classify` kernels give equal Drinfeld Weil pairing values
ModularCurve.LevelModuliPackageAbs.weilPairing0_drinfeld_mapRing_eq_of_ker_classify_eq_rigidDataH1Pow254 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 - Tangent vectors at geometric points of the H₁ moduli ring
ModularCurve.FullLevel.Diamond.exists_algHom_dualNumber_fst_eq_snd_ne_zero_rigidDataH1Pow237 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 - Formal smoothness of the H₁ moduli local rings away from q
ModularCurve.FullLevel.Diamond.formallySmooth_localization_atPrime_of_not_mem_levelModuliPackageAbs_rigidDataH1Pow231 below · depth 36 - Lifting H₁ moduli points along nilpotent-kernel surjections
ModularCurve.FullLevel.Diamond.map_surjective_of_surjective_of_ker_pow_eq_bot_of_isUnit_rigidDataH1Pow230 below · depth 36 - Counting linked Γ₀(M')–Γ₁(ℓ_g)–Γ(q) level structures
ModularCurve.FullLevel.Diamond.natCard_isLevel_rigidDataH1Pow_eq_of_isAlgClosed238 below · depth 36 - Dimension ≤ 1 at q-invertible maximal ideals of B₀
ModularCurve.FullLevel.Diamond.ringKrullDim_localization_atPrime_le_one_of_not_mem_levelModuliPackageAbs_rigidDataH1Pow101 below · depth 36 - Doubled point count of the rigid H₁ problem at j=t
ModularCurve.FullLevel.Diamond.two_mul_natCard_pt_jOf_eq_eq_natCard_isLevel_rigidDataH1Pow_of_isAlgClosed9 below · depth 36 - Integrality of the H₁ moduli ring over unramified constants
ModularCurve.FullLevel.isDomain_levelModuliPackageAbs_rigidDataH1Pow_of_maximalIdeal_eq_span_of_adjoin_eq_top_tatePoint_of_isPrimitiveRoot_mul_of_dvd1,986 below · depth 36 - Igusa presentation of the ordinary local ring, normal position
ModularCurve.LevelModuliPackageAbs.exists_algEquiv_adjoinRoot_powerSeries_of_nthSeries_eq_mul_X_pow_of_eq_one_of_ne_one_rigidDataH1Pow1,139 below · depth 36 - Relabelling automorphism of the rigidified ring R
ModularCurve.LevelModuliPackageAbs.exists_algEquiv_comp_eq_classify_act_of_problemAut_relabel_of_factorsThrough_rigidDataH1Pow183 below · depth 36 - Artinian points with prescribed reduction arise from R → T
ModularCurve.LevelModuliPackageAbs.exists_algHom_of_raw_lawIso_appAdic_eq_rigidDataH1Pow26 below · depth 36 - Linear part of a Γ₀(M')-relabelling on Drinfeld origin parameters
ModularCurve.LevelModuliPackageAbs.exists_originParam_linearPart_of_algHom_comp_eq_classify_act_of_problemAut_relabel_rigidDataH1Pow_of_mem_ssJSet214 below · depth 36 - Artinian lift of a Drinfeld basis to a raw H₁ datum
ModularCurve.LevelModuliPackageAbs.exists_raw_lawIso_appAdic_eq_of_isDrinfeldBasisAdic_rigidDataH1Pow934 below · depth 36 - Basis relabelling by γ is induced by an automorphism of B₀
ModularCurve.LevelModuliPackageAbs.exists_raw_linComb_algEquiv_map_univ_eq_rigidDataH1Pow113 below · depth 36 - Equality of moduli points from matching Drinfeld basis data
ModularCurve.LevelModuliPackageAbs.map_univ_eq_of_isBaseChange_lawIso_appAdic_eq_rigidDataH1Pow76 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 - Non-constant dual-number point gives non-zero tangent vector
ModularCurve.FullLevel.Diamond.exists_algHom_dualNumber_fst_eq_snd_ne_zero_of_exists_pt_dualNumber_rigidDataH1Pow0 below · depth 37 - Fine moduli package for Γ₀(N)-kernels and a linked Γ₁(ℓ)-point
ModularCurve.FullLevel.Diamond.exists_levelModuliPackageAbs_trivial_rigidDataH1Pow38 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 - Non-constant first-order deformations of H₁-moduli points
ModularCurve.FullLevel.Diamond.exists_pt_dualNumber_map_fstHom_eq_ne_map_inlAlgHom_rigidDataH1Pow235 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 - At most one minimal prime of the H₁ moduli ring
ModularCurve.FullLevel.finite_minimalPrimes_and_ncard_le_one_rigidDataH1Pow_of_maximalIdeal_eq_span_of_adjoin_eq_top_tatePoint_of_isPrimitiveRoot_mul_of_dvd1,984 below · depth 37 - Reducedness of the H₁-level fine moduli ring over A₀
ModularCurve.FullLevel.isReduced_levelModuliPackageAbs_rigidDataH1Pow_of_maximalIdeal_eq_span_of_adjoin_eq_top_tatePoint_of_isPrimitiveRoot_mul_of_dvd1,402 below · depth 37 - Residual triviality of variable changes at level Γ₁(ℓ_g)
ModularCurve.FullLevel.variableChange_map_eq_one_of_eq_act_of_map_residue_eq_rigidDataH1Pow8 below · depth 37 - Lifting the Γ₁-link along a nilpotent thickening
ModularCurve.IsGamma1Link.of_map_of_surjective_of_ker_pow_eq_bot18 below · depth 37 - First-order action of a relabelling on Drinfeld origin parameters
ModularCurve.LevelModuliPackageAbs.apply_originParam_sub_inv_u_mul_mem_sq_of_act_mapRing_eq_relabel_rigidDataH1Pow118 below · depth 37 - First-order deformations with q-torsion section form a line (H₁ level)
ModularCurve.LevelModuliPackageAbs.exists_algHom_dualNumber_of_represents_nsmul_eq_one_of_nthSeries_eq_mul_X_pow_rigidDataH1Pow937 below · depth 37 - Relabelling automorphism pulls back by a variable change
ModularCurve.LevelModuliPackageAbs.exists_variableChange_act_mapRing_classify_act_univ_eq_relabel_toPoint_of_mem_gamma0_of_isDomain_rigidDataH1Pow_of_isUnit180 below · depth 37 - Two deformations with isomorphic formal groups differ by a trivial variable change
ModularCurve.LevelModuliPackageAbs.exists_variableChange_map_eq_one_smul_map_eq_map_of_lawIso_rigidDataH1Pow47 below · depth 37 - Kernel data of two lifts differ by the variable change
ModularCurve.LevelModuliPackageAbs.kernel_map_eq_kernelVariableChangeDeg_of_smul_map_eq_rigidDataH1Pow12 below · depth 37 - Equality of Γ₁(ℓ_g)-data under an infinitesimal variable change
ModularCurve.LevelModuliPackageAbs.levelPData_map_eq_variableChange_of_smul_map_eq_rigidDataH1Pow6 below · depth 37 - Transport of Drinfeld pairs under a residually trivial variable change
ModularCurve.LevelModuliPackageAbs.levelTransport_map_eq_act_map_of_smul_map_eq_rigidDataH1Pow23 below · depth 37 - Completed local ring at level H₁ is S[X]/(g)
ModularCurve.LevelModuliPackageAbs.nonempty_algEquiv_adjoinRoot_of_factorsThrough_of_nthSeries_eq_X_mul_mul_of_isDomain_adjoinRoot_rigidDataH1Pow968 below · depth 37 - Completed stalk of the linked Γ₀(M')×Γ₁(ℓ) package is W₀[[t]]
ModularCurve.LevelModuliPackageAbs.nonempty_algEquiv_powerSeries_of_factorsThrough_trivial_rigidDataH1Pow39 below · depth 37 - Residue compatibility of the classifying map for `rigidDataH1Pow`
ModularCurve.LevelModuliPackageAbs.residue_classify_eq_of_map_residue_eq_rigidDataH1Pow4 below · depth 37 - Rigidity of the scalar of a relabelling automorphism at supersingular j
ModularCurve.LevelModuliPackageAbs.u_pow_sub_one_mem_and_of_act_mapRing_eq_relabel_rigidDataH1Pow_of_mem_ssJSet182 below · depth 37 - Drinfeld slot relabelling by g is a problem automorphism
ModularCurve.LevelRelabelling.exists_problemAut_act_mk_eq_mk_relabel_of_isUnit_det_rigidDataH1Pow105 below · depth 37 - Exactly ℓ-1 Γ₁(ℓ)-points linked to a Γ₀(M')-tuple
ModularCurve.natCard_levelPData_isGamma1Point_and_isGamma1Link_eq_of_isAlgClosed18 below · depth 37 - Equal raw H₁-classes with cut-out generators give equal moduli points
WeierstrassCurve.DrinfeldGlobal.moduliPoint_mk_eq_of_quot_mk_eq_of_raw_rigidDataH1Pow6 below · depth 37 - Rigidity of raw H₁-data with origin Drinfeld pairs
WeierstrassCurve.DrinfeldGlobal.rigidDataH1Pow_raw_eq_act_of_curve_eq_of_level_eq_of_pair_eq_one3 below · depth 37 - Classifying preimage of j(mathsf q^{qd}) computing quotient j-invariants
ModularCurve.FullLevel.Diamond.exists_classify_preimage_forall_apply_eq_cyclicQuotientJ_etale_rigidDataH1Pow_of_tatePoint_pinGamma12,170 below · depth 38 - Tangent line of the Γ₀(M')∩Γ₁(ℓ) Weierstrass moduli problem
ModularCurve.FullLevel.Diamond.exists_forall_eq_map_dualNumber_smul_of_trivial_rigidDataH1Pow29 below · depth 38 - Points of the rigid H₁ datum force μ_q ⊂ F
ModularCurve.FullLevel.Diamond.exists_isPrimitiveRoot_of_pt_rigidDataH1Pow_of_perfectField204 below · depth 38 - Representability of the raw Γ₀(N)–Γ₁(ℓ) Weierstrass functor
ModularCurve.FullLevel.Diamond.exists_represents_raw_trivial_rigidDataH1Pow4 below · depth 38 - Raw étale Γ₀(M')∩Γ₁(ℓ_g)-structure on the twisted Tate curve
ModularCurve.FullLevel.Diamond.exists_variableChange_raw_etale_tate_weightOne_level_fst_level_snd_fst_of_ker148 below · depth 38 - Exactly q-1 minimal primes in the H₁ moduli ring
ModularCurve.FullLevel.Diamond.finite_minimalPrimes_and_ncard_eq_sub_one_of_jOf_eq_jqNModC_rigidDataH1Pow1,973 below · depth 38 - Integrality over A[j₀] for the Γ₀(N)×Γ₁(ℓ) moduli ring
ModularCurve.FullLevel.Diamond.isIntegral_adjoin_j0_levelModuliPackageAbs_trivial_rigidDataH1Pow30 below · depth 38 - Infinitesimal lifting for the H₁ rigid Weierstrass moduli problem
ModularCurve.FullLevel.Diamond.map_surjective_of_surjective_of_ker_pow_eq_bot_of_isUnit_trivial_rigidDataH1Pow26 below · depth 38 - Infinitesimal rigidity of the Γ₀(M')∩Γ₁(ℓ_g) level datum
ModularCurve.LevelComponent.act_eq_of_mapRing_fstHom_eq_of_map_fstHom_eq_one_of_smul_curve_eq_rigidDataH1Pow14 below · depth 38 - Artinian W₀-points of R as Igusa root pairs, naturally
ModularCurve.LevelModuliPackageAbs.exists_algHom_equiv_subtype_eval_map_eq_zero_natural_of_factorsThrough_of_nthSeries_eq_X_mul_mul_of_isDomain_adjoinRoot_rigidDataH1Pow965 below · depth 38 - Multiples bℓ^{k-1}G are linked Γ₁(ℓ)-points
ModularCurve.isGamma1Point_and_dvd_inLineMulPoly_of_toPoint_eq_mul_pow_smul_of_isRoot15 below · depth 38 - Tate point of the H₁ problem reads j(q^{qd})
ModularCurve.FullLevel.Diamond.algebraMap_jqNModC_eq_cyclicQuotientJ_of_eq_map_rigidDataH1Pow_of_tatePoint_pinGamma1153 below · depth 39 - Classify-preimage of j(mathsf q^{qd}) specialises to cyclic-quotient j
ModularCurve.FullLevel.Diamond.apply_eq_cyclicQuotientJ_of_classify_eq_jqNModC_rigidDataH1Pow_of_tatePoint_pinGamma192 below · depth 39
… and 7 more statements (search for the module name to find them).