Definitions/Def_Deformations_MvPowerSeriesObj.lean
Power series rings as objects of the pro-Artinian category
This module places multivariate formal power series rings in the category \mathcal{C}_{\mathcal O} of local pro-Artinian \mathcal O-algebras. Two preliminary lemmas concern a commutative topological local ring R that is pro-Artinian (linearly topologised by ideals, T_0, complete, and with R/I Artinian for every open ideal I): every x in the maximal ideal of R is topologically nilpotent, because each open ideal contains a power of the maximal ideal; and, for a finite index type \sigma, a family x : \sigma \to R with all x_j in the maximal ideal satisfies Mathlib's MvPowerSeries.HasEval, so power series may be evaluated at it (the cofiniteness condition being vacuous for finite \sigma).
For a commutative ring \mathcal O and an index type \sigma, \mathrm{MvPowerSeries}\,\sigma\,\mathcal O carries the product topology over that of \mathcal O; it is compact when \mathcal O is. When \mathcal O is local, each variable X_j lies in the maximal ideal (its constant coefficient vanishes), the structure map \mathcal O \to \mathcal O[\![\sigma]\!] is a local homomorphism, and the residue field is reached from \mathcal O, since a power series is a unit modulo the maximal ideal precisely according to its constant term; if moreover \mathcal O is Noetherian with the adic topology and compact, the power series ring is pro-Artinian, all open quotients being finite. Combining these gives IsLocalProartinianAlgebra π (MvPowerSeries Ο π).
Finally, for \mathcal O local Noetherian with finite residue field and complete for the \mathfrak m-adic topology, mvPowerSeriesObj π n is the object of ProartinianCat π with carrier \mathcal O[\![X_1,\dots,X_n]\!] (n variables indexed by Fin n), and mvPowerSeriesObjX j denotes its j-th variable, shown to lie in the maximal ideal.
Relation to Mathlib
MvPowerSeries, its product (WithPiTopology) topology and the evaluation condition MvPowerSeries.HasEval are Mathlib's; the predicates IsProartinian, IsResidueAlgebra, IsLocalProartinianAlgebra and the category ProartinianCat are the project's own.
Where it is used
The objects \mathcal O[\![X_1,\dots,X_n]\!] are the free objects of the deformation category \mathcal{C}_{\mathcal O}: every object with finite-dimensional tangent space is a quotient of one of them, and power series rings in this form are the source of the presentations of deformation rings and of the power series ring over which the TaylorβWiles patching argument is run.
References
- B. Mazur, Deforming Galois representations, in: Galois Groups over \mathbb{Q}, Mathematical Sciences Research Institute Publications 16, Springer, 1989, 385β437
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1β154, Β§2
- M. Schlessinger, Functors of Artin rings, Transactions of the American Mathematical Society 130 (1968), 208β222
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 127 lines
- 11 declarations
- used in the statements of 1 theorems and imported by 2 proofs
- imports 1 definition modules
Source file: Definitions/Def_Deformations_MvPowerSeriesObj.lean
Imported by
- no other definition module
Declarations
- lemma
Deformation.ProartinianCat.isTopologicallyNilpotent_of_mem_maximalIdeal - lemma
Deformation.ProartinianCat.hasEval_of_forall_mem_maximalIdeal - lemma
Deformation.ProartinianCat.compactSpace_mvPowerSeries - lemma
Deformation.ProartinianCat.X_mem_maximalIdeal - lemma
Deformation.ProartinianCat.isProartinian_mvPowerSeries - lemma
Deformation.ProartinianCat.isLocalHom_algebraMap_mvPowerSeries - lemma
Deformation.ProartinianCat.isResidueAlgebra_mvPowerSeries - lemma
Deformation.ProartinianCat.isLocalProartinianAlgebra_mvPowerSeries - def
Deformation.ProartinianCat.mvPowerSeriesObj - def
Deformation.ProartinianCat.mvPowerSeriesObjX - lemma
Deformation.ProartinianCat.mvPowerSeriesObjX_mem_maximalIdeal
Source
import Mathlib import Definitions.Def_Deformations_ProartinianCat set_option autoImplicit false universe u namespace Deformation open CategoryTheory IsLocalRing MvPowerSeries local notation3:max "π΄" π:max => (IsLocalRing.ResidueField π) namespace ProartinianCat section Nilpotence variable {R : Type u} [CommRing R] [TopologicalSpace R] [IsTopologicalRing R] variable [IsLocalRing R] [IsProartinian R] lemma isTopologicallyNilpotent_of_mem_maximalIdeal {x : R} (hx : x β maximalIdeal R) : IsTopologicallyNilpotent x := by rw [IsTopologicallyNilpotent, (IsLinearTopology.hasBasis_open_ideal (R := R)).tendsto_right_iff] intro I hI obtain β¨N, hNβ© := exists_maximalIdeal_pow_le_of_isProartinian I hI filter_upwards [Filter.eventually_ge_atTop N] with n hn exact hN (Ideal.pow_le_pow_right hn (Ideal.pow_mem_pow hx n)) lemma hasEval_of_forall_mem_maximalIdeal {Ο : Type*} [Finite Ο] {x : Ο β R} (hx : β j, x j β maximalIdeal R) : MvPowerSeries.HasEval x where hpow j := isTopologicallyNilpotent_of_mem_maximalIdeal (hx j) tendsto_zero := by rw [Filter.cofinite_eq_bot] exact Filter.tendsto_bot end Nilpotence section Object open MvPowerSeries.WithPiTopology variable (π : Type u) [CommRing π] (Ο : Type) omit [CommRing π] in lemma compactSpace_mvPowerSeries [TopologicalSpace π] [CompactSpace π] : CompactSpace (MvPowerSeries Ο π) := inferInstanceAs (CompactSpace ((Ο ββ β) β π)) lemma X_mem_maximalIdeal [IsLocalRing π] (j : Ο) : MvPowerSeries.X j β maximalIdeal (MvPowerSeries Ο π) := by rw [mem_maximalIdeal, mem_nonunits_iff, MvPowerSeries.isUnit_iff_constantCoeff, MvPowerSeries.constantCoeff_X] exact fun h => h.ne_zero rfl lemma isProartinian_mvPowerSeries [IsLocalRing π] [IsNoetherianRing π] [TopologicalSpace π] [IsTopologicalRing π] [IsAdicTopology π] [CompactSpace π] : IsProartinian (MvPowerSeries Ο π) := by haveI : CompactSpace (MvPowerSeries Ο π) := compactSpace_mvPowerSeries π Ο exact { isArtinianRing_quotient := fun I hI => by have : Finite (MvPowerSeries Ο π β§Έ I) := AddSubgroup.quotient_finite_of_isOpen _ hI exact isArtinian_of_finite } lemma isLocalHom_algebraMap_mvPowerSeries [IsLocalRing π] : IsLocalHom (algebraMap π (MvPowerSeries Ο π)) := by constructor intro a ha rw [β MvPowerSeries.c_eq_algebraMap, MvPowerSeries.isUnit_iff_constantCoeff, MvPowerSeries.constantCoeff_C] at ha exact ha lemma isResidueAlgebra_mvPowerSeries [IsLocalRing π] : IsResidueAlgebra π (MvPowerSeries Ο π) := by constructor intro y obtain β¨f, rflβ© := Ideal.Quotient.mk_surjective y refine β¨MvPowerSeries.constantCoeff f, ?_β© show residue _ _ = residue _ _ rw [β sub_eq_zero, β map_sub, residue_eq_zero_iff, mem_maximalIdeal, mem_nonunits_iff, MvPowerSeries.isUnit_iff_constantCoeff] simp [β MvPowerSeries.c_eq_algebraMap] lemma isLocalProartinianAlgebra_mvPowerSeries [IsLocalRing π] [IsNoetherianRing π] [TopologicalSpace π] [IsTopologicalRing π] [IsAdicTopology π] [CompactSpace π] : IsLocalProartinianAlgebra π (MvPowerSeries Ο π) := by haveI : IsProartinian (MvPowerSeries Ο π) := isProartinian_mvPowerSeries π Ο haveI : IsLocalHom (algebraMap π (MvPowerSeries Ο π)) := isLocalHom_algebraMap_mvPowerSeries π Ο haveI : IsResidueAlgebra π (MvPowerSeries Ο π) := isResidueAlgebra_mvPowerSeries π Ο exact β¨β© end Object section Category variable (π : Type u) [CommRing π] [IsLocalRing π] [IsNoetherianRing π] variable [Finite (ResidueField π)] [IsAdicComplete (maximalIdeal π) π] noncomputable def mvPowerSeriesObj (n : β) : ProartinianCat π where carrier := MvPowerSeries (Fin n) π topologicalSpace := letI := (maximalIdeal π).adicTopology WithPiTopology.instTopologicalSpace π isLocalProartinianAlgebra := letI := (maximalIdeal π).adicTopology letI : IsTopologicalRing π := (RingSubgroupsBasis.toRingFilterBasis _).isTopologicalRing letI : IsAdicTopology π := β¨rflβ© letI : CompactSpace π := compactSpace_of_finite_residueField isLocalProartinianAlgebra_mvPowerSeries π (Fin n) variable {π} noncomputable def mvPowerSeriesObjX {n : β} (j : Fin n) : (mvPowerSeriesObj π n).carrier := MvPowerSeries.X j lemma mvPowerSeriesObjX_mem_maximalIdeal {n : β} (j : Fin n) : mvPowerSeriesObjX (π := π) j β maximalIdeal (mvPowerSeriesObj π n).carrier := X_mem_maximalIdeal π (Fin n) j end Category end ProartinianCat end Deformation