Formal (multivariate) power series #
This file defines multivariate formal power series and develops the basic properties of these objects.
A formal power series is to a polynomial like an infinite sum is to a finite sum.
We provide the natural inclusion from multivariate polynomials to multivariate formal power series.
Note #
This file sets up the (semi)ring structure on multivariate power series: additional results are in:
Mathlib.RingTheory.MvPowerSeries.Inverse
: invertibility, formal power series over a local ring form a local ring;Mathlib.RingTheory.MvPowerSeries.Trunc
: truncation of power series.
In Mathlib.RingTheory.PowerSeries.Basic
, formal power series in one variable
will be obtained as a particular case, defined by
PowerSeries R := MvPowerSeries Unit R
.
See that file for a specific description.
Implementation notes #
In this file we define multivariate formal power series with
variables indexed by σ
and coefficients in R
as
MvPowerSeries σ R := (σ →₀ ℕ) → R
.
Unfortunately there is not yet enough API to show that they are the completion
of the ring of multivariate polynomials. However, we provide most of the infrastructure
that is needed to do this. Once I-adic completion (topological or algebraic) is available
it should not be hard to fill in the details.
Multivariate formal power series, where σ
is the index set of the variables
and R
is the coefficient ring.
Equations
- MvPowerSeries σ R = ((σ →₀ ℕ) → R)
Instances For
Equations
- MvPowerSeries.instZeroMvPowerSeries = Pi.instZero
Equations
- MvPowerSeries.instAddMonoidMvPowerSeries = Pi.addMonoid
Equations
- MvPowerSeries.instAddGroupMvPowerSeries = Pi.addGroup
Equations
- MvPowerSeries.instAddCommMonoidMvPowerSeries = Pi.addCommMonoid
Equations
- MvPowerSeries.instAddCommGroupMvPowerSeries = Pi.addCommGroup
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The n
th monomial as multivariate formal power series:
it is defined as the R
-linear map from R
to the semi-ring
of multivariate formal power series associating to each a
the map sending n : σ →₀ ℕ
to the value a
and sending all other x : σ →₀ ℕ
different from n
to 0
.
Equations
- MvPowerSeries.monomial R n = LinearMap.stdBasis R (fun (x : σ →₀ ℕ) => R) n
Instances For
The n
th coefficient of a multivariate formal power series.
Equations
Instances For
Two multivariate formal power series are equal if all their coefficients are equal.
Two multivariate formal power series are equal if and only if all their coefficients are equal.
Equations
- MvPowerSeries.instOneMvPowerSeries = { one := (MvPowerSeries.monomial R 0) 1 }
Equations
- MvPowerSeries.instAddMonoidWithOneMvPowerSeries = let __src := let_fun this := inferInstance; this; AddMonoidWithOne.mk ⋯ ⋯
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- MvPowerSeries.instCommSemiringMvPowerSeries = let __src := let_fun this := inferInstance; this; CommSemiring.mk ⋯
Equations
- One or more equations did not get rendered due to their size.
Equations
- MvPowerSeries.instCommRingMvPowerSeries = let __src := inferInstanceAs (CommSemiring (MvPowerSeries σ R)); let __src_1 := inferInstanceAs (AddCommGroup (MvPowerSeries σ R)); CommRing.mk ⋯
The constant multivariate formal power series.
Equations
- MvPowerSeries.C σ R = let __src := MvPowerSeries.monomial R 0; { toMonoidHom := { toOneHom := { toFun := __src.toFun, map_one' := ⋯ }, map_mul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The variables of the multivariate formal power series ring.
Equations
- MvPowerSeries.X s = (MvPowerSeries.monomial R (Finsupp.single s 1)) 1
Instances For
The constant coefficient of a formal power series.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If a multivariate formal power series is invertible, then so is its constant coefficient.
The map between multivariate formal power series induced by a map on the coefficients.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Coefficients of a product of power series
Equations
- One or more equations did not get rendered due to their size.
Equations
- ⋯ = ⋯
The natural inclusion from multivariate polynomials into multivariate formal power series.
Equations
- ↑φ n = MvPolynomial.coeff n φ
Instances For
The natural inclusion from multivariate polynomials into multivariate formal power series.
Equations
- MvPolynomial.coeToMvPowerSeries = { coe := MvPolynomial.toMvPowerSeries }
The coercion from multivariate polynomials to multivariate power series as a ring homomorphism.
Equations
- MvPolynomial.coeToMvPowerSeries.ringHom = { toMonoidHom := { toOneHom := { toFun := Coe.coe, map_one' := ⋯ }, map_mul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The coercion from multivariate polynomials to multivariate power series as an algebra homomorphism.
Equations
- MvPolynomial.coeToMvPowerSeries.algHom A = let __src := RingHom.comp (MvPowerSeries.map σ (algebraMap R A)) MvPolynomial.coeToMvPowerSeries.ringHom; { toRingHom := __src, commutes' := ⋯ }
Instances For
Equations
- MvPowerSeries.algebraMvPolynomial = RingHom.toAlgebra (MvPolynomial.coeToMvPowerSeries.algHom A).toRingHom
Equations
- MvPowerSeries.algebraMvPowerSeries = RingHom.toAlgebra (MvPowerSeries.map σ (algebraMap R A))