88public import Mathlib.Algebra.Lie.OfAssociative
99public import Mathlib.RingTheory.AdicCompletion.Exactness
1010public import Mathlib.RingTheory.Finiteness.Ideal
11+ public import Mathlib.RingTheory.MvPowerSeries.Equiv
12+ public import Mathlib.RingTheory.PowerSeries.Basic
13+
14+ import Mathlib.RingTheory.AdicCompletion.Topology
1115
1216/-!
1317# Completeness of the Adic Completion for Finitely Generated Ideals
@@ -32,6 +36,9 @@ when the ideal `I` is finitely generated.
3236* `AdicCompletion.isAdicComplete`: `AdicCompletion I M` is `I`-adically complete if `I` is
3337 finitely generated.
3438
39+ * `MvPowerSeries.isAdicComplete`: Multivariate power series is adic complete with respect to
40+ the ideal spanned by all variables when the index is finite.
41+
3542 -/
3643
3744public section
@@ -188,3 +195,27 @@ theorem isAdicComplete (h : I.FG) : IsAdicComplete I (AdicCompletion I M) where
188195 simp [L]
189196
190197end AdicCompletion
198+
199+ namespace MvPowerSeries
200+
201+ instance {σ : Type*} [Finite σ] :
202+ IsAdicComplete (.span (.range X) : Ideal (MvPowerSeries σ R)) (MvPowerSeries σ R) := by
203+ have : Ideal.map (toAdicCompletionAlgEquiv σ R).toRingEquiv (Ideal.span (Set.range X)) =
204+ (MvPolynomial.idealOfVars σ R).map (algebraMap ..):= by
205+ simp_rw [Ideal.map_span, ← Set.range_comp]
206+ congr 2 ; ext1
207+ simp [AdicCompletion.algebraMap_apply, ← MvPolynomial.coe_X, toAdicCompletion_coe]
208+ rw [← IsAdicComplete.congr_ringEquiv _ (toAdicCompletionAlgEquiv σ R).toRingEquiv, this,
209+ IsAdicComplete.map_algebraMap_iff]
210+ exact AdicCompletion.isAdicComplete (MvPolynomial.idealOfVars_fg σ R)
211+
212+ end MvPowerSeries
213+
214+ namespace PowerSeries
215+
216+ instance : IsAdicComplete (.span {X} : Ideal (PowerSeries R)) (PowerSeries R) := by
217+ have : IsAdicComplete (.span (.range MvPowerSeries.X) : Ideal (MvPowerSeries Unit R))
218+ (MvPowerSeries Unit R) := inferInstance
219+ rwa [Set.range_unique] at this
220+
221+ end PowerSeries
0 commit comments