Renaming variables of power series #
This file establishes the rename operation on multivariate power series
under a map with finite fibers, which modifies the set of variables.
Unlike polynomials, renaming variables in power series requires a finiteness condition
on the map f : σ → τ between the index types. Specifically, we require that f has
finite fibers, which is formalized as Filter.TendstoCofinite f.
To see why this is necessary, consider a map from infinitely many variables to a single
variable sending each X_i to X. The sum X_0 + X_1 + ⋯ is a valid power series in
ℤ⟦X_0, X_1, ...⟧, but we cannot rename each X_i to X since its image X + X + ⋯
would have an infinite coefficient for X.
To avoid writing this assumption everywhere, we usually work with the typeclass assumption
Filter.TendstoCofinite f. Note that this holds automatically if f is injective
or if σ is finite.
This file is patterned after Mathlib/Algebra/MvPolynomial/Rename.lean.
Main declarations #
TODO #
- Show that under appropriate substitution,
MvPowerSeries.substAlgHomcoincides withMvPowerSeries.renamein theCommRingcase.
Implementation detail for rename. Use MvPowerSeries.rename instead.
Instances For
Rename all the variables in a multivariable power series by a map with finite fibers.
Equations
- MvPowerSeries.rename f = { toFun := MvPowerSeries.renameFun f, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
rename is an equivalence when the underlying map is an equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Implementation detail for killCompl. Use MvPowerSeries.killCompl instead.
Equations
- MvPowerSeries.killComplFun e p x = (MvPowerSeries.coeff (Finsupp.embDomain e x)) p
Instances For
Given an embedding e : σ ↪ τ, MvPowerSeries.killComplFun e is the function from
R⟦τ⟧ to R⟦σ⟧ that is left inverse to rename e.injective.fiberFinite : R⟦σ⟧ → R⟦τ⟧
and sends the variables in the complement of the range of e to 0.
Equations
- MvPowerSeries.killCompl e = { toFun := MvPowerSeries.killComplFun e, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯, commutes' := ⋯ }