Definitions/Def_FormalGroup_NSeries.lean
Multiplication-by-n series and invariant differential of a formal group
Throughout, R is a commutative ring and F : \mathtt{FormalGroup } R a one-dimensional formal group law, i.e. a power series F \in R[[X_0,X_1]] (Mathlib's toPowerSeries, an MvPowerSeries (Fin 2) R) with vanishing constant term, linear part X_0+X_1, and the associativity identity. Two evaluation maps are introduced for a commutative R-algebra A equipped with a uniform structure: FormalGroup.eval F x y is the value F(x,y), obtained as MvPowerSeries.eval₂ of F along \mathrm{algebraMap}\,R\,A at the pair (x,y), with R given the discrete uniformity, and FormalGroup.evalSeries f x is the analogous one-variable evaluation of f \in R[[T]] at x; FormalGroup.eval_eq_eval₂ and evalSeries_eq_eval₂ record that these agree with eval₂ whenever R carries any discrete uniformity. The multiplication-by-n series is defined recursively by [0](T)=0 and [n+1](T)=F([n](T),T), the substitution being legitimate because each [n] has zero constant term (constantCoeff_nthSeries, hasSubst_nthSeries); FormalGroup.evalNSMul F n x is the parallel recursion on points, 0 and F(\,\cdot\,,x) iterated n times. For the invariant differential, MvPowerSeries.pderivLin i is the R-linear formal partial derivative \partial/\partial X_i, given on coefficients by d \mapsto (d_i+1)\,\mathrm{coeff}_{d+e_i}; then partialX is \partial F/\partial X_0, invDiffDenom its specialisation \partial_X F(0,T) \in R[[T]], whose constant coefficient is 1, and invDiff is the inverse power series \bigl(\partial_X F(0,T)\bigr)^{-1}, produced by Mathlib's invOfUnit with chosen unit 1; invDiffDenom_mul_invDiff and constantCoeff_invDiff record that it is indeed a two-sided inverse with constant term 1. Finally qFoldSeriesB F q is the series whose k-th coefficient is that of [q](T) when q \mid k and k \ge q, and 0 otherwise, with coeff_qFoldSeriesB reading off its coefficients.
Relation to Mathlib
Mathlib's FormalGroup carries no multiplication-by-n series and no invariant differential, and Mathlib has no formal partial derivative on MvPowerSeries; these are added here on top of Mathlib's MvPowerSeries.subst, MvPowerSeries.eval₂ and PowerSeries.invOfUnit.
Where it is used
These definitions form the power-series side of the analysis of the formal group of a Weierstrass curve near the origin: the series [q](T) and its decomposition through qFoldSeriesB, together with the invariant differential, feed the divisibility and congruence statements for q-division on the formal group that are used in the study of the Galois representation attached to the Frey curve.
References
- J. H. Silverman, The Arithmetic of Elliptic Curves, Graduate Texts in Mathematics 106, Springer, 2nd edition, 2009, Chapter IV §§2–4
- M. Hazewinkel, Formal Groups and Applications, Academic Press, 1978
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 240 lines
- 24 declarations
- used in the statements of 267 theorems and imported by 275 proofs
- imports 0 definition modules
Source file: Definitions/Def_FormalGroup_NSeries.lean
Imports
- only Mathlib
Declarations
- def
FormalGroup.eval - theorem
FormalGroup.eval_eq_eval₂ - def
FormalGroup.nthSeries - theorem
FormalGroup.nthSeries_zero - theorem
FormalGroup.nthSeries_succ - theorem
FormalGroup.constantCoeff_nthSeries - theorem
FormalGroup.hasSubst_nthSeries - def
FormalGroup.evalSeries - theorem
FormalGroup.evalSeries_eq_eval₂ - def
FormalGroup.evalNSMul - theorem
FormalGroup.evalNSMul_zero - theorem
FormalGroup.evalNSMul_succ - def
MvPowerSeries.pderivLin - theorem
MvPowerSeries.kw_coeff_pderiv - def
FormalGroup.partialX - theorem
FormalGroup.constantCoeff_partialX - def
FormalGroup.invDiffDenom - theorem
FormalGroup.hasSubst_invDiff - theorem
FormalGroup.constantCoeff_invDiffDenom - def
FormalGroup.invDiff - theorem
FormalGroup.invDiffDenom_mul_invDiff - theorem
FormalGroup.constantCoeff_invDiff - def
FormalGroup.qFoldSeriesB - theorem
FormalGroup.coeff_qFoldSeriesB
Source
import Mathlib set_option autoImplicit false set_option synthInstance.maxHeartbeats 200000 set_option maxHeartbeats 1600000 section section open MvPowerSeries IsLocalRing noncomputable section namespace FormalGroup variable {R : Type*} [CommRing R] variable {A : Type*} [CommRing A] [UniformSpace A] [Algebra R A] noncomputable def eval (F : FormalGroup R) (x y : A) : A := letI : UniformSpace R := ⊥ MvPowerSeries.eval₂ (algebraMap R A) ![x, y] F.toPowerSeries theorem eval_eq_eval₂ {R : Type*} [CommRing R] [u : UniformSpace R] [DiscreteUniformity R] {A : Type*} [CommRing A] [UniformSpace A] [Algebra R A] (F : FormalGroup R) (x y : A) : F.eval x y = MvPowerSeries.eval₂ (algebraMap R A) ![x, y] F.toPowerSeries := by obtain rfl : u = ⊥ := DiscreteUniformity.eq_bot rfl variable [IsUniformAddGroup A] [CompleteSpace A] [T2Space A] [IsTopologicalRing A] [IsLinearTopology A A] end FormalGroup end end end section section open MvPowerSeries IsLocalRing noncomputable section namespace FormalGroup variable {R : Type*} [CommRing R] variable {A : Type*} [CommRing A] [UniformSpace A] [Algebra R A] noncomputable def nthSeries (F : FormalGroup R) : ℕ → PowerSeries R | 0 => 0 | n + 1 => MvPowerSeries.subst ![F.nthSeries n, PowerSeries.X] F.toPowerSeries @[simp] theorem nthSeries_zero (F : FormalGroup R) : F.nthSeries 0 = 0 := rfl theorem nthSeries_succ (F : FormalGroup R) (n : ℕ) : F.nthSeries (n + 1) = MvPowerSeries.subst ![F.nthSeries n, PowerSeries.X] F.toPowerSeries := rfl theorem constantCoeff_nthSeries (F : FormalGroup R) (n : ℕ) : PowerSeries.constantCoeff (F.nthSeries n) = 0 := by induction n with | zero => simp | succ n ih => rw [nthSeries_succ] have hcc : ∀ s : Fin 2, MvPowerSeries.constantCoeff ((![F.nthSeries n, PowerSeries.X] : Fin 2 → PowerSeries R) s) = 0 := by intro s fin_cases s · exact ih · exact MvPowerSeries.constantCoeff_X (R := R) () exact MvPowerSeries.constantCoeff_subst_eq_zero (MvPowerSeries.hasSubst_of_constantCoeff_zero hcc) hcc F.zero_constantCoeff theorem hasSubst_nthSeries (F : FormalGroup R) (n : ℕ) : MvPowerSeries.HasSubst (![F.nthSeries n, PowerSeries.X] : Fin 2 → PowerSeries R) := by refine MvPowerSeries.hasSubst_of_constantCoeff_zero fun s => ?_ fin_cases s · exact F.constantCoeff_nthSeries n · exact MvPowerSeries.constantCoeff_X (R := R) () noncomputable def evalSeries (f : PowerSeries R) (x : A) : A := letI : UniformSpace R := ⊥ PowerSeries.eval₂ (algebraMap R A) x f theorem evalSeries_eq_eval₂ {R : Type*} [CommRing R] [u : UniformSpace R] [DiscreteUniformity R] {A : Type*} [CommRing A] [UniformSpace A] [Algebra R A] (f : PowerSeries R) (x : A) : evalSeries f x = PowerSeries.eval₂ (algebraMap R A) x f := by obtain rfl : u = ⊥ := DiscreteUniformity.eq_bot rfl noncomputable def evalNSMul (F : FormalGroup R) : ℕ → A → A | 0, _ => 0 | n + 1, x => F.eval (F.evalNSMul n x) x @[simp] theorem evalNSMul_zero (F : FormalGroup R) (x : A) : F.evalNSMul 0 x = 0 := rfl theorem evalNSMul_succ (F : FormalGroup R) (n : ℕ) (x : A) : F.evalNSMul (n + 1) x = F.eval (F.evalNSMul n x) x := rfl end FormalGroup end end end section section open scoped Classical namespace MvPowerSeries variable {σ : Type*} {R : Type*} [CommRing R] noncomputable def pderivLin (i : σ) : MvPowerSeries σ R →ₗ[R] MvPowerSeries σ R where toFun F := (fun d => (d i + 1 : ℕ) • MvPowerSeries.coeff (d + Finsupp.single i 1) F : MvPowerSeries σ R) map_add' F G := by funext d show (d i + 1 : ℕ) • MvPowerSeries.coeff (d + Finsupp.single i 1) (F + G) = (d i + 1 : ℕ) • MvPowerSeries.coeff (d + Finsupp.single i 1) F + (d i + 1 : ℕ) • MvPowerSeries.coeff (d + Finsupp.single i 1) G rw [map_add, smul_add] map_smul' r F := by funext d show (d i + 1 : ℕ) • MvPowerSeries.coeff (d + Finsupp.single i 1) (r • F) = r • ((d i + 1 : ℕ) • MvPowerSeries.coeff (d + Finsupp.single i 1) F) rw [map_smul, smul_comm] @[simp] theorem kw_coeff_pderiv (i : σ) (d : σ →₀ ℕ) (F : MvPowerSeries σ R) : MvPowerSeries.coeff d (pderivLin i F) = (d i + 1 : ℕ) • MvPowerSeries.coeff (d + Finsupp.single i 1) F := rfl end MvPowerSeries end end section section noncomputable section open PowerSeries MvPowerSeries namespace FormalGroup variable {R : Type*} [CommRing R] (F : FormalGroup R) noncomputable def partialX : MvPowerSeries (Fin 2) R := MvPowerSeries.pderivLin (0 : Fin 2) F.toPowerSeries theorem constantCoeff_partialX : MvPowerSeries.constantCoeff F.partialX = 1 := by unfold partialX rw [← MvPowerSeries.coeff_zero_eq_constantCoeff, MvPowerSeries.kw_coeff_pderiv] simpa using F.lin_coeff_X noncomputable def invDiffDenom : PowerSeries R := MvPowerSeries.subst ![(0 : PowerSeries R), PowerSeries.X] F.partialX theorem hasSubst_invDiff : MvPowerSeries.HasSubst (![(0 : PowerSeries R), PowerSeries.X] : Fin 2 → PowerSeries R) := MvPowerSeries.hasSubst_of_constantCoeff_zero (by intro s; fin_cases s · simp · exact MvPowerSeries.constantCoeff_X _) theorem constantCoeff_invDiffDenom : PowerSeries.constantCoeff F.invDiffDenom = 1 := by unfold invDiffDenom rw [show (PowerSeries.constantCoeff : PowerSeries R →+* R) = MvPowerSeries.constantCoeff (σ := Unit) from rfl, MvPowerSeries.constantCoeff_subst hasSubst_invDiff] rw [finsum_eq_single _ (0 : Fin 2 →₀ ℕ) (fun d hd => ?_)] · simp [F.constantCoeff_partialX, MvPowerSeries.coeff_zero_eq_constantCoeff] · rcases Finsupp.ne_iff.mp hd with ⟨i, hi⟩ rw [Finsupp.prod, map_prod] refine smul_eq_zero_of_right _ (Finset.prod_eq_zero (i := i) (Finsupp.mem_support_iff.mpr hi) ?_) have hcc : MvPowerSeries.constantCoeff ((![(0 : PowerSeries R), PowerSeries.X] : Fin 2 → PowerSeries R) i) = 0 := by fin_cases i · simp · exact MvPowerSeries.constantCoeff_X _ rw [map_pow, hcc] exact zero_pow (by simpa using hi) noncomputable def invDiff : PowerSeries R := PowerSeries.invOfUnit F.invDiffDenom (1 : Rˣ) theorem invDiffDenom_mul_invDiff : F.invDiffDenom * F.invDiff = 1 := by unfold invDiff exact PowerSeries.mul_invOfUnit F.invDiffDenom 1 (by simp [F.constantCoeff_invDiffDenom]) theorem constantCoeff_invDiff : PowerSeries.constantCoeff F.invDiff = 1 := by unfold invDiff simp [PowerSeries.constantCoeff_invOfUnit] end FormalGroup end end end section section set_option maxHeartbeats 1200000 noncomputable section open PowerSeries MvPowerSeries namespace FormalGroup variable {R : Type*} [CommRing R] (F : FormalGroup R) noncomputable def qFoldSeriesB (q : ℕ) : PowerSeries R := PowerSeries.mk fun k => if q ∣ k ∧ q ≤ k then PowerSeries.coeff k (F.nthSeries q) else 0 theorem coeff_qFoldSeriesB (q k : ℕ) : PowerSeries.coeff k (F.qFoldSeriesB q) = if q ∣ k ∧ q ≤ k then PowerSeries.coeff k (F.nthSeries q) else 0 := PowerSeries.coeff_mk _ _ end FormalGroup end end end
Statements phrased using this module (267)
- Hasse parameter on a Drinfeld chart: purity of order q(q-1)
FormalGroup.IsDrinfeldBasisAdic.exists_mem_pow_isUnit_homogeneous_of_coeff_nthSeries_of_ringEquiv_drinfeldChart7 below · depth 31 - Drinfeld basis gives a W[[X₀,X₁]]/(varpi v-fu) presentation
FormalGroup.IsDrinfeldBasisAdic.exists_ringEquiv_mvPowerSeries_quotient_drinfeldForm_of_isRegularLocalRing29 below · depth 31 - Completed stalk at a supersingular point: regular, with Drinfeld basis
ModularCurve.FullLevel.AuxLevel.exists_ringEquiv_adicCompletion_stalk_regularLocalRing_isDrinfeldBasisAdic_const_hasseParam_of_mem_ssJSet2,281 below · depth 31 - Drinfeld basis forces q=u (x₀prod_c P_c)^{q-1}
FormalGroup.IsDrinfeldBasisAdic.exists_natCast_eq_mul_prod_pow_sub_one_of_isAdicComplete4 below · depth 32 - Drinfeld chart over ramified constants at a Drinfeld-basis point
FormalGroup.IsDrinfeldBasisAdic.exists_ringEquiv_mvPowerSeries_quotient_drinfeldForm_of_isRegularLocalRing_of_prime28 below · depth 32 - Adic formal linear combinations modulo I and I²
FormalGroup.linCombAdic_mem_and_sub_natCast_mul_add_mem_sq_and_linCombAdic_zero0 below · depth 32 - Product of linear forms congruent to x₀x₁^q-x₀^qx₁ modulo 𝔪^{q+2}
Ideal.mul_prod_sub_drinfeldForm_mem_pow_of_sub_mem_sq0 below · depth 32 - Ramified coefficient ring inside a complete local ring
IsLocalRing.exists_isDiscreteValuationRing_ringHom_comp_eq_of_pow_sub_one_eq_mul_natCast9 below · depth 32 - Drinfeld chart shape for a regular two-dimensional complete local ring
IsRegularLocalRing.exists_ringEquiv_mvPowerSeries_quotient_drinfeldForm_of_eq_mul8 below · depth 32 - 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 - Supersingular moduli chart with Drinfeld basis and level action
ModularCurve.FullLevel.AuxLevel.exists_ringEquiv_adicCompletion_stalk_regularLocalRing_isDrinfeldBasisAdic_const_hasseParam_levelAut_linearPart_of_mem_ssJSet2,295 below · depth 32 - Regular stalk with Drinfeld basis and Hasse parameter, all primes
ModularCurve.FullLevel.AuxLevelOne.exists_ringEquiv_adicCompletion_stalk_regularLocalRing_isDrinfeldBasisAdic_const_hasseParam_of_mem_ssJSet_of_isPrimitiveRoot_mul_of_dvd2,189 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 - 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 - Height at most 2 for the formal group of an elliptic curve
WeierstrassCurve.exists_isUnit_nthSeries_eq_mul_X_pow_or_eq_mul_X_pow_mul15 below · depth 32 - Drinfeld deformation rings are regular of dimension two
FormalGroup.IsDrinfeldBasisAdic.isRegularLocalRing_and_ringKrullDim_eq_two_of_universal_of_isComm_of_lift63 below · depth 33 - Universal Drinfeld basis generates the maximal ideal
FormalGroup.IsDrinfeldBasisAdic.maximalIdeal_eq_span_pair_of_universal_of_isComm18 below · depth 33 - Linear coefficient of the [n]-series equals n
FormalGroup.coeff_one_nthSeries0 below · depth 33 - Evaluating the n-series at a topologically nilpotent point
FormalGroup.evalSeries_nthSeries0 below · depth 33 - [n](T) = nT + T²G(T) for formal group n-series
FormalGroup.exists_nthSeries_eq_smul_add_sq_mul1 below · depth 33 - Adic evaluation of power series as a ring homomorphism
FormalGroup.exists_ringHom_evalSeries_eq0 below · depth 33 - Frobenius factorisation of [q]_F in characteristic q
FormalGroup.nthSeries_eq_zero_or_exists_eq_mul_X_pow_pow5 below · depth 33 - 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 - Drinfeld chart at a supersingular point with level action
ModularCurve.FullLevel.AuxLevelOne.exists_ringEquiv_adicCompletion_stalk_regularLocalRing_isDrinfeldBasisAdic_const_hasseParam_monic_levelAut_linearPart_of_mem_ssJSet_of_isPrimitiveRoot_mul_of_dvd2,252 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 - 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 - Commutative lift of widehatE₀ over W₀[[t]] with normalised q-series
WeierstrassCurve.exists_isComm_lift_powerSeries_formalGroup_coeff_nthSeries_of_ne_two29 below · depth 33 - Supersingular j-invariant forces formal height two
WeierstrassCurve.isDrinfeldBasisAdic_bot_zero_zero_of_map_j_mem_ssJSet43 below · depth 33 - Multiplication by q in characteristic q has order at most q²
WeierstrassCurve.nthSeries_ne_zero_and_not_X_pow_dvd_of_charP8 below · depth 33 - Commutativity is preserved by base change of formal group laws
FormalGroup.IsBaseChange.isComm0 below · depth 34 - Base change commutes with the [n]-series of a formal group law
FormalGroup.IsBaseChange.nthSeries_eq_map0 below · depth 34 - A Lubin–Tate coordinate W₀[[X]] → R for a lift of F₀
FormalGroup.IsDrinfeldBasisAdic.exists_algHom_powerSeries_isBaseChange_lawIso8 below · depth 34 - Triviality of first-order lifts keeping (0,0) a Drinfeld basis
FormalGroup.IsDrinfeldBasisAdic.exists_lawIso_trivial_of_sq_maximalIdeal_eq_bot_of_isComm10 below · depth 34 - Module-finiteness of the Drinfeld level-q deformation map
FormalGroup.IsDrinfeldBasisAdic.finite_of_lawIso_isBaseChange_powerSeries_of_maximalIdeal_eq_span_pair_of_isComm14 below · depth 34 - Injectivity of the Lubin–Tate coordinate on the Drinfeld deformation ring
FormalGroup.IsDrinfeldBasisAdic.injective_algHom_powerSeries_of_universal26 below · depth 34 - Reducedness of the special fibre of a Drinfeld-basis chart
FormalGroup.IsDrinfeldBasisAdic.isReduced_quotient_span_of_isRegularLocalRing_of_pow_sub_one_eq_mul35 below · depth 34 - Drinfeld bases transport along base change of formal groups
FormalGroup.IsDrinfeldBasisAdic.map_of_isBaseChange1 below · depth 34 - A Drinfeld basis of level q in I forces q∈ I^{q^2-1}
FormalGroup.IsDrinfeldBasisAdic.natCast_mem_pow1 below · depth 34 - Generic lift over W₀[[t]] is universal
FormalGroup.IsDrinfeldBasisAdic.universal_deformation_powerSeries_of_generic_lift25 below · depth 34 - Adic evaluation of a formal group law homomorphism at 0
FormalGroup.LawHom.appAdic_zero0 below · depth 34 - Frobenius factorisation of a law homomorphism with zero linear term
FormalGroup.LawHom.exists_lawHom_map_frobenius_coeff_eq_of_coeff_one_eq_zero1 below · depth 34 - Base change of a formal group law along a ring map
FormalGroup.exists_isBaseChange0 below · depth 34 - Isomorphic formal groups: Hasse coefficients agree up to a unit mod q
FormalGroup.exists_isUnit_coeff_nthSeries_sub_mul_coeff_nthSeries_mem_span_of_lawIso4 below · depth 34 - Rigidity: [q]_G is a homomorphism between square-zero lifts
FormalGroup.exists_lawHom_series_eq_nthSeries_of_isBaseChange_of_ker_sq_eq_bot1 below · depth 34 - The identity endomorphism X is an automorphism of a formal group law
FormalGroup.exists_lawIso_refl_appAdic_eq_of_mem0 below · depth 34 - (0,0) is a Drinfeld basis iff [q]_F = u X^{q^2}
FormalGroup.isDrinfeldBasisAdic_zero_zero_iff0 below · depth 34 - Uniqueness of local maps from an unramified coefficient ring
IsDiscreteValuationRing.ringHom_eq_of_residue_comp_eq_of_maximalIdeal_eq_span_natCast0 below · depth 34 - 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 - Uniqueness of the classifying W₀-algebra map, Γ₀-power level
ModularCurve.LevelModuliPackageAbs.algHom_eq_of_isBaseChange_lawIso_appAdic_eq_gamma0Pow78 below · depth 34 - Existence of a classifying W₀-algebra map for Drinfeld bases
ModularCurve.LevelModuliPackageAbs.exists_algHom_isBaseChange_lawIso_appAdic_eq_gamma0Pow936 below · depth 34 - Hasse parameter and j at a supersingular Drinfeld point
ModularCurve.LevelModuliPackageAbs.exists_coeff_nthSeries_sub_mul_mem_span_and_map_j0_sub_algebraMap_eq_mul_eval_of_factorsThrough_rigidDataH1Pow78 below · depth 34 - Supersingular completion: Drinfeld basis, Hasse parameter, relabelling linear part
ModularCurve.LevelModuliPackageAbs.exists_isDrinfeldBasisAdic_isRegularLocalRing_hasseParam_problemAut_linearPart_adicCompletion_of_forall_mem_ssJSet_rigidDataH1Pow1,117 below · depth 34 - Rigidified universality of the H₁ moduli ring at a supersingular point
ModularCurve.LevelModuliPackageAbs.exists_reducesToOrigin_isDrinfeldBasisAdic_universal_of_factorsThrough_rigidDataH1Pow972 below · depth 34 - Level relabelling on the deformation ring: linear part cγ̄
ModularCurve.LevelModuliPackageAbs.exists_ringEquiv_originParam_linearPart_of_problemAut_relabel_of_reducesToOrigin_universal_gamma0Pow_of_mem_ssJSet189 below · depth 34 - Residue base change of the universal formal group and Drinfeld-basis transport
ModularCurve.LevelModuliPackageAbs.isBaseChange_and_isDrinfeldBasisAdic_residue_of_toPowerSeries_eq_gamma0Pow3 below · depth 34 - Reducedness of R/(1-ζ) at an ordinary Drinfeld point
ModularCurve.LevelModuliPackageAbs.isReduced_quotient_span_one_sub_of_pow_eq_one_of_factorsThrough_of_nthSeries_eq_mul_X_pow_gamma0Pow1,155 below · depth 34 - Global Drinfeld q-basis yields formal Drinfeld basis, supersingular case
WeierstrassCurve.DrinfeldGlobal.IsDrinfeldBasis.exists_reducesToOrigin_isDrinfeldBasisAdic_of_toPowerSeries_eq_typeZero139 below · depth 34 - The X^q-coefficient of [q] equals the Hasse invariant
WeierstrassCurve.exists_coeff_nthSeries_eq_mul_hasseInvariant21 below · depth 34 - Base change of an Igusa-type factorisation of [q]
WeierstrassCurve.exists_formalGroup_toPowerSeries_eq_formalGroupLawFixed_map_and_nthSeries_eq_X_mul_map_mul_map2 below · depth 34 - Commutative lift over W₀llbracket trrbracket with unit first-order q-series coefficient
WeierstrassCurve.exists_isComm_lift_powerSeries_formalGroup_coeff_nthSeries30 below · depth 34 - Shape [q]=u· Xⁿ is invariant under Weierstrass coordinate change
WeierstrassCurve.exists_isUnit_nthSeries_eq_mul_X_npow_of_variableChange8 below · depth 34 - Supersingular curves admit a deformation moving the q-th [q]-coefficient
WeierstrassCurve.exists_map_fstHom_eq_and_snd_coeff_nthSeries_ne_zero_of_ne_two28 below · depth 34 - Deformation over W₀[[X]] of a supersingular curve with monomial j
WeierstrassCurve.exists_powerSeries_lift_coeff_nthSeries_sub_mul_X_mem_span_and_jOfUnit_sub_eq_mul_X_pow_of_five_le33 below · depth 34 - Supersingular j-invariant forces formal height two
WeierstrassCurve.isDrinfeldBasisAdic_bot_zero_zero_of_map_j_mem_ssJSet_of_prime44 below · depth 34 - Serre–Tate: ⋆-isomorphic formal groups force equal j-invariants
WeierstrassCurve.jOfUnit_eq_jOfUnit_of_lawIso_of_isAdicComplete46 below · depth 34 - Weierstrass preparation of the q-series of a formal group lift
FormalGroup.IsBaseChange.exists_monic_natDegree_eq_mul_self_nthSeries_eq_mul4 below · depth 35 - Frobenius twist commutes with base change
FormalGroup.IsBaseChange.map_frobenius0 below · depth 35 - Square-zero universality of a generic lift over W₀[[t]]
FormalGroup.IsDrinfeldBasisAdic.existsUnique_algHom_powerSeries_of_sq_zero_of_coeff_nthSeries17 below · depth 35 - Transporting a Drinfeld basis along an isomorphism of formal group laws
FormalGroup.IsDrinfeldBasisAdic.exists_maximalIdeal_eq_span_pair_and_eval_eq_zero_of_lawIso6 below · depth 35 - Representability of formal Drinfeld bases by a finite local algebra
FormalGroup.IsDrinfeldBasisAdic.exists_moduleFinite_isLocalRing_represents_isDrinfeldBasisAdic8 below · depth 35 - Injectivity of the Lubin–Tate coordinate via a finite cover
FormalGroup.IsDrinfeldBasisAdic.injective_algHom_powerSeries_of_universal_of_cover7 below · depth 35 - Injectivity of W₀llbracket trrbracket → C for a representing algebra
FormalGroup.IsDrinfeldBasisAdic.injective_algebraMap_of_represents_isDrinfeldBasisAdic15 below · depth 35 - Reducedness of the special fibre of a Drinfeld-basis chart
FormalGroup.IsDrinfeldBasisAdic.isReduced_quotient_span_of_isRegularLocalRing_of_pow_sub_one_eq_mul_of_prime32 below · depth 35 - Artinian universality from square-zero universality
FormalGroup.IsDrinfeldBasisAdic.universal_of_universal_sq_zero11 below · depth 35 - Composition of formal group law homomorphisms
FormalGroup.LawHom.exists_comp_series_eq_subst0 below · depth 35 - Base change of a homomorphism of formal group laws
FormalGroup.LawHom.exists_isBaseChange_series_eq_map0 below · depth 35 - Rigidity of homomorphisms between nilpotent-kernel lifts
FormalGroup.LawHom.series_eq_of_map_series_eq_of_surjective_of_ker_pow_eq_bot4 below · depth 35 - Homomorphisms of formal group laws commute with [n]-series
FormalGroup.LawHom.subst_nthSeries_series_eq0 below · depth 35 - Isomorphisms of formal group laws admit two-sided inverses
FormalGroup.LawIso.exists_symm_subst_eq_X0 below · depth 35 - Coefficient of Tᵖ in [p] versus invariant differential
FormalGroup.coeff_nthSeries_eq_coeff_invDiff_of_isBaseChange4 below · depth 35 - The variable-change series defines a formal group law homomorphism
FormalGroup.exists_lawHom_series_eq_variableChangeSeries5 below · depth 35 - Adic limit of compatible isomorphisms of formal group laws
FormalGroup.exists_lawIso_of_forall_isBaseChange_mk_pow0 below · depth 35 - q-fold decomposition [q](T)=qT+qT²h+T^qg
FormalGroup.exists_nthSeries_eq_qfold_of_isUnit1 below · depth 35 - Uniqueness of the classifying map at level H₁
ModularCurve.LevelModuliPackageAbs.algHom_eq_of_isBaseChange_lawIso_appAdic_eq_rigidDataH1Pow77 below · depth 35 - Igusa presentation of the ordinary completed local ring
ModularCurve.LevelModuliPackageAbs.exists_algEquiv_adjoinRoot_powerSeries_of_factorsThrough_of_nthSeries_eq_mul_X_pow_of_five_le_gamma0Pow1,151 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 - Pinned relabelling lifts to a residue-trivial automorphism of R
ModularCurve.LevelModuliPackageAbs.exists_algEquiv_comp_eq_classify_act_of_problemAut_relabel_of_factorsThrough_gamma0Pow132 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 - Raw Drinfeld points over T come from R
ModularCurve.LevelModuliPackageAbs.exists_algHom_of_raw_lawIso_appAdic_eq_gamma0Pow21 below · depth 35 - Linear part of the relabelling endomorphism on Drinfeld parameters
ModularCurve.LevelModuliPackageAbs.exists_originParam_linearPart_of_algHom_comp_eq_classify_act_of_problemAut_relabel_gamma0Pow_of_mem_ssJSet182 below · depth 35 - Lifting a Drinfeld basis to a raw Γ₀(M')-level datum
ModularCurve.LevelModuliPackageAbs.exists_raw_lawIso_appAdic_eq_of_isDrinfeldBasisAdic_gamma0Pow924 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 - Two rigidified lifts induce the same moduli point
ModularCurve.LevelModuliPackageAbs.map_univ_eq_of_isBaseChange_lawIso_appAdic_eq_gamma0Pow77 below · depth 35 - Counting linear factors via reduction to unit· X^N
PowerSeries.card_eq_of_isUnit_mul_eq_prod_X_sub_C_of_map_residue_eq_mul_X_pow0 below · depth 35 - Drinfeld basis factorisation of the q-division series
WeierstrassCurve.DrinfeldGlobal.IsDrinfeldBasis.exists_isUnit_mul_nthSeries_eq_prod_X_sub_C_originParam135 below · depth 35 - Uniqueness of the origin-chart map of a section
WeierstrassCurve.DrinfeldGlobal.IsOriginChartSection.eq0 below · depth 35 - Origin parameter of [a]P+[b]Q is a formal linear combination
WeierstrassCurve.DrinfeldGlobal.exists_reducesToOrigin_linComb_and_originParam_eq_linCombAdic109 below · depth 35 - Origin chart ring generated by scalars, X/Y and Z/Y
WeierstrassCurve.DrinfeldGlobal.ringHom_originChartRing_ext0 below · depth 35 - Residue of [q]_F is a unit times X^{q^2}
WeierstrassCurve.exists_isUnit_map_residue_nthSeries_eq_mul_X_pow_of_isDrinfeldBasisAdic_zero2 below · depth 35 - Laurent frame for the Weierstrass formal group and its invariant differential
WeierstrassCurve.exists_laurent_frame_invDiff_mul_eq_derivative9 below · depth 35 - Deformation moving the Z^q-coefficient of [q]
WeierstrassCurve.exists_map_fstHom_eq_and_snd_coeff_nthSeries_ne_zero29 below · depth 35 - First-order deformation with non-zero Hasse-invariant derivative
WeierstrassCurve.exists_map_fstHom_eq_and_snd_hasseInvariant_ne_zero4 below · depth 35 - Monomial j universal deformation at a supersingular point, case j=1728
WeierstrassCurve.exists_powerSeries_lift_coeff_nthSeries_sub_mul_X_mem_span_and_jOfUnit_sub_eq_mul_X_pow_of_five_le_of_j_eq_172826 below · depth 35 - Universal monomial-j deformation at a supersingular point, case j=0
WeierstrassCurve.exists_powerSeries_lift_coeff_nthSeries_sub_mul_X_mem_span_and_jOfUnit_sub_eq_mul_X_pow_of_five_le_of_j_eq_zero26 below · depth 35 - Supersingular deformation with monomial j when j(E₀)≠ 0,1728
WeierstrassCurve.exists_powerSeries_lift_coeff_nthSeries_sub_mul_X_mem_span_and_jOfUnit_sub_eq_mul_X_pow_of_five_le_of_j_ne_zero_of_j_ne30 below · depth 35 - Universal Weierstrass lift of a supersingular curve over W₀[[t]]
WeierstrassCurve.exists_powerSeries_lift_coeff_nthSeries_sub_mul_X_mem_span_and_jOfUnit_sub_eq_mul_eval37 below · depth 35 - Rigidity of Weierstrass lifts over an Artinian local ring
WeierstrassCurve.exists_variableChange_map_eq_one_and_smul_eq_of_lawIso_of_isArtinianRing45 below · depth 35 - Serre–Tate: strictly isomorphic formal groups give equal j
WeierstrassCurve.jOfUnit_eq_jOfUnit_of_lawIso_of_isAdicComplete_of_prime47 below · depth 35 - Invariant differential commutes with base change of formal groups
FormalGroup.IsBaseChange.invDiff_eq_map0 below · depth 36 - Drinfeld basis members are roots of the [q]-series
FormalGroup.IsDrinfeldBasisAdic.evalSeries_nthSeries_eq_zero0 below · depth 36 - Small-extension lifting step for the Lubin–Tate universal law
FormalGroup.IsDrinfeldBasisAdic.existsUnique_algHom_powerSeries_lift_of_smallExtension_of_sqZero9 below · depth 36 - Existence of a Drinfeld basis after a finite base change
FormalGroup.IsDrinfeldBasisAdic.exists_isDomain_injective_isDrinfeldBasisAdic14 below · depth 36 - Adic Drinfeld bases transport along isomorphisms of formal groups
FormalGroup.IsDrinfeldBasisAdic.map_iso3 below · depth 36 - Adic evaluation of a composite formal group law homomorphism
FormalGroup.LawHom.exists_comp_appAdic_eq1 below · depth 36 - Star-isomorphic lifts share the q-th coefficient of [q]
FormalGroup.coeff_nthSeries_eq_of_lawIso_of_sq_maximalIdeal_eq_bot3 below · depth 36 - Rigidity of square-zero lifts with equal q-series coefficient
FormalGroup.exists_lawIso_of_coeff_nthSeries_eq_of_sq_maximalIdeal_eq_bot13 below · depth 36 - Invariance of the invariant differential under [n]
FormalGroup.subst_nthSeries_invDiff_mul_derivative0 below · depth 36 - Krull intersection for mathfrak m_S-powers in a module-finite algebra
Ideal.iInf_map_maximalIdeal_pow_eq_bot_of_moduleFinite0 below · depth 36 - Passing factorisation through Artinian quotients to a complete local ring
IsAdicComplete.existsUnique_algHom_comp_eq_of_forall_residue_eq_of_factorsThrough_artinian0 below · depth 36 - Rigidity: reduction of a full-level change of variables is trivial
ModularCurve.FullLevel.variableChange_map_eq_one_of_eq_act_of_map_residue_eq_gamma0Pow3 below · depth 36 - First-order action of level relabelling on Drinfeld origin parameters
ModularCurve.LevelModuliPackageAbs.apply_originParam_sub_inv_u_mul_mem_sq_of_act_mapRing_eq_relabel_gamma0Pow118 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 - Igusa presentation of the completed ordinary stalk in normal position
ModularCurve.LevelModuliPackageAbs.exists_algEquiv_adjoinRoot_powerSeries_of_nthSeries_eq_mul_X_pow_of_five_le_of_eq_one_of_ne_one_gamma0Pow1,137 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 - Lifts of the universal curve differ by a trivial variable change
ModularCurve.LevelModuliPackageAbs.exists_variableChange_map_eq_one_smul_map_eq_map_of_lawIso_gamma0Pow46 below · depth 36 - Uniqueness of Γ₀(M') kernel data under a trivial variable change
ModularCurve.LevelModuliPackageAbs.kernel_map_eq_kernelVariableChangeDeg_of_smul_map_eq_gamma0Pow12 below · depth 36 - Level-ℓ data of two lifts differ by the variable change C
ModularCurve.LevelModuliPackageAbs.levelPData_map_eq_variableChange_of_smul_map_eq_gamma0Pow8 below · depth 36 - Drinfeld pairs transported by a variable change reducing to one
ModularCurve.LevelModuliPackageAbs.levelTransport_map_eq_act_map_of_smul_map_eq_gamma0Pow23 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 - Residue compatibility of the classifying map at Γ₀-power level
ModularCurve.LevelModuliPackageAbs.residue_classify_eq_of_map_residue_eq_gamma0Pow4 below · depth 36 - Scaling of a γ-relabelling is a (q+1)-st root of unity mod 𝔪
ModularCurve.LevelModuliPackageAbs.u_pow_sub_one_mem_and_of_act_mapRing_eq_relabel_gamma0Pow_of_mem_ssJSet45 below · depth 36 - Transport of a formal group law along a square-zero coordinate change
MvFormalGroup.exists_hom_toPowerSeries_eq_add_sum_smul_of_mul_eq_zero3 below · depth 36 - Explicit description of first-order deformation coboundaries
MvFormalGroup.mem_firstOrderCoboundaries_iff4 below · depth 36 - First-order cocycles as symmetric solutions of linearised associativity
MvFormalGroup.mem_firstOrderCocycles_iff3 below · depth 36 - First-order expansion of substitution along a square-zero increment
MvPowerSeries.subst_add_sum_smul_eq_add_sum_smul_mul_subst_pderiv2 below · depth 36 - Origin-chart section: restricted graph ideal equals kerχ
WeierstrassCurve.DrinfeldGlobal.IsOriginChartSection.map_ideal_comap_ker_eq_ker1 below · depth 36 - Transport of a law isomorphism along a trivial variable change
WeierstrassCurve.DrinfeldGlobal.exists_lawIso_appAdic_originParam_eq_of_variableChange_map_eq_one10 below · depth 36 - Existence of a unimodular pair with one relation for a Drinfeld basis
WeierstrassCurve.DrinfeldGlobal.exists_linComb_eq_one_and_linComb_ne_one_of_isDrinfeldBasis_of_nthSeries_eq_mul_X_pow_of_isOriginChartSection138 below · depth 36 - Origin-chart data transport along a coefficient homomorphism
WeierstrassCurve.DrinfeldGlobal.exists_reducesToOrigin_map_originParam_eq_of_isCoefficientHom0 below · depth 36 - Formal addition law for sections reducing to the origin
WeierstrassCurve.DrinfeldGlobal.exists_reducesToOrigin_mul_originParam_eq_eval108 below · depth 36 - Power series realisation of the origin chart ring
WeierstrassCurve.DrinfeldGlobal.exists_ringHom_originChartRing_powerSeries0 below · depth 36 - Formal Drinfeld basis gives a global Drinfeld Γ(q)-basis
WeierstrassCurve.DrinfeldGlobal.isDrinfeldBasis_of_reducesToOrigin_of_isDrinfeldBasisAdic_typeZero852 below · depth 36
… and 117 more statements (search for the module name to find them).