Skip to content

Commit 04b72bc

Browse files
feat(MvPowerSeries/Substitution): substitution of power series inside power series (#15158)
Define substitution of power series other power series. This is an application of evaluation, where the ground ring is given the discrete topology. The condition for being defined is that the constant coefficient is nilpotent (and, for infinitely many variables, that the family tends to 0). Co-authored-by: @mariainesdff
1 parent 56c6496 commit 04b72bc

File tree

9 files changed

+520
-3
lines changed

9 files changed

+520
-3
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5053,6 +5053,7 @@ import Mathlib.RingTheory.MvPowerSeries.LinearTopology
50535053
import Mathlib.RingTheory.MvPowerSeries.NoZeroDivisors
50545054
import Mathlib.RingTheory.MvPowerSeries.Order
50555055
import Mathlib.RingTheory.MvPowerSeries.PiTopology
5056+
import Mathlib.RingTheory.MvPowerSeries.Substitution
50565057
import Mathlib.RingTheory.MvPowerSeries.Trunc
50575058
import Mathlib.RingTheory.Nakayama
50585059
import Mathlib.RingTheory.Nilpotent.Basic

Mathlib/RingTheory/MvPowerSeries/Basic.lean

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,11 @@ theorem constantCoeff_one : constantCoeff σ R 1 = 1 :=
454454
theorem constantCoeff_X (s : σ) : constantCoeff σ R (X s) = 0 :=
455455
coeff_zero_X s
456456

457+
@[simp]
458+
theorem constantCoeff_smul {S : Type*} [Semiring S] [Module R S]
459+
(φ : MvPowerSeries σ S) (a : R) :
460+
constantCoeff σ S (a • φ) = a • constantCoeff σ S φ := rfl
461+
457462
/-- If a multivariate formal power series is invertible,
458463
then so is its constant coefficient. -/
459464
theorem isUnit_constantCoeff (φ : MvPowerSeries σ R) (h : IsUnit φ) :
@@ -673,9 +678,9 @@ theorem coeff_pow [DecidableEq σ] (f : MvPowerSeries σ R) {n : ℕ} (d : σ
673678
/-- Vanishing of coefficients of powers of multivariate power series
674679
when the constant coefficient is nilpotent
675680
[N. Bourbaki, *Algebra {II}*, Chapter 4, §4, n°2, proposition 3][bourbaki1981] -/
676-
theorem coeff_eq_zero_of_constantCoeff_nilpotent
677-
{f : MvPowerSeries σ R} {m : ℕ} (hf : constantCoeff σ R f ^ m = 0)
678-
{d : σ →₀ ℕ} {n : ℕ} (hn : m + degree d ≤ n) : coeff R d (f ^ n) = 0 := by
681+
theorem coeff_eq_zero_of_constantCoeff_nilpotent {f : MvPowerSeries σ R} {m : ℕ}
682+
(hf : constantCoeff σ R f ^ m = 0) {d : σ →₀ ℕ} {n : ℕ} (hn : m + degree d ≤ n) :
683+
coeff R d (f ^ n) = 0 := by
679684
classical
680685
rw [coeff_pow]
681686
apply sum_eq_zero

Mathlib/RingTheory/MvPowerSeries/Evaluation.lean

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@ structure HasEval (a : σ → S) : Prop where
6464
hpow : ∀ s, IsTopologicallyNilpotent (a s)
6565
tendsto_zero : Tendsto a cofinite (𝓝 0)
6666

67+
theorem HasEval.mono {S : Type*} [CommRing S] {a : σ → S}
68+
{t u : TopologicalSpace S} (h : t ≤ u) (ha : @HasEval _ _ _ t a) :
69+
@HasEval _ _ _ u a :=
70+
fun s ↦ Filter.Tendsto.mono_right (@HasEval.hpow _ _ _ t a ha s) (nhds_mono h),
71+
Filter.Tendsto.mono_right (@HasEval.tendsto_zero σ _ _ t a ha) (nhds_mono h)⟩
72+
6773
theorem HasEval.zero : HasEval (0 : σ → S) where
6874
hpow _ := .zero
6975
tendsto_zero := tendsto_const_nhds

Mathlib/RingTheory/MvPowerSeries/PiTopology.lean

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ variable (R) in
6666
scoped instance : TopologicalSpace (MvPowerSeries σ R) :=
6767
Pi.topologicalSpace
6868

69+
theorem instTopologicalSpace_mono (σ : Type*) {R : Type*} {t u : TopologicalSpace R} (htu : t ≤ u) :
70+
@instTopologicalSpace σ R t ≤ @instTopologicalSpace σ R u := by
71+
simp only [instTopologicalSpace, Pi.topologicalSpace, ge_iff_le, le_iInf_iff]
72+
exact fun i ↦ le_trans (iInf_le _ i) (induced_mono htu)
73+
6974
/-- `MvPowerSeries` on a `T0Space` form a `T0Space` -/
7075
@[scoped instance]
7176
theorem instT0Space [T0Space R] : T0Space (MvPowerSeries σ R) := Pi.instT0Space
@@ -127,6 +132,12 @@ theorem continuous_C [Semiring R] :
127132
· exact tendsto_id
128133
· exact tendsto_const_nhds
129134

135+
/-- Scalar multiplication on `MvPowerSeries` is continous -/
136+
instance {S : Type*} [Semiring S] [TopologicalSpace S]
137+
[CommSemiring R] [Algebra R S] [ContinuousSMul R S] :
138+
ContinuousSMul R (MvPowerSeries σ S) :=
139+
instContinuousSMulForall
140+
130141
theorem variables_tendsto_zero [Semiring R] :
131142
Tendsto (X · : σ → MvPowerSeries σ R) cofinite (nhds 0) := by
132143
classical

0 commit comments

Comments
 (0)