Documentation

Mathlib.RingTheory.MvPowerSeries.Basic

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.

Main definitions #

Note #

This file sets up the (semi)ring structure on multivariate power series: additional results are in:

In Mathlib/RingTheory/PowerSeries/Basic.lean, 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.

def MvPowerSeries (σ : Type u_1) (R : Type u_2) :
Type (max u_2 u_1)

Multivariate formal power series, where σ is the index set of the variables and R is the coefficient ring.

Equations
    Instances For
      instance MvPowerSeries.instInhabited {σ : Type u_1} {R : Type u_2} [Inhabited R] :
      Equations
        instance MvPowerSeries.instZero {σ : Type u_1} {R : Type u_2} [Zero R] :
        Equations
          instance MvPowerSeries.instAddMonoid {σ : Type u_1} {R : Type u_2} [AddMonoid R] :
          Equations
            instance MvPowerSeries.instAddGroup {σ : Type u_1} {R : Type u_2} [AddGroup R] :
            Equations
              Equations
                Equations
                  instance MvPowerSeries.instModule {σ : Type u_1} {R : Type u_2} {A : Type u_3} [Semiring R] [AddCommMonoid A] [Module R A] :
                  Equations
                    instance MvPowerSeries.instIsScalarTower {σ : Type u_1} {R : Type u_2} {A : Type u_3} {S : Type u_4} [Semiring R] [Semiring S] [AddCommMonoid A] [Module R A] [Module S A] [SMul R S] [IsScalarTower R S A] :
                    def MvPowerSeries.monomial {σ : Type u_1} (R : Type u_2) [Semiring R] (n : σ →₀ ) :

                    The nth 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
                      Instances For
                        def MvPowerSeries.coeff {σ : Type u_1} (R : Type u_2) [Semiring R] (n : σ →₀ ) :

                        The nth coefficient of a multivariate formal power series.

                        Equations
                          Instances For
                            theorem MvPowerSeries.coeff_apply {σ : Type u_1} (R : Type u_2) [Semiring R] (f : MvPowerSeries σ R) (d : σ →₀ ) :
                            (coeff R d) f = f d
                            theorem MvPowerSeries.ext {σ : Type u_1} {R : Type u_2} [Semiring R] {φ ψ : MvPowerSeries σ R} (h : ∀ (n : σ →₀ ), (coeff R n) φ = (coeff R n) ψ) :
                            φ = ψ

                            Two multivariate formal power series are equal if all their coefficients are equal.

                            theorem MvPowerSeries.ext_iff {σ : Type u_1} {R : Type u_2} [Semiring R] {φ ψ : MvPowerSeries σ R} :
                            φ = ψ ∀ (n : σ →₀ ), (coeff R n) φ = (coeff R n) ψ

                            Two multivariate formal power series are equal if and only if all their coefficients are equal.

                            theorem MvPowerSeries.monomial_def {σ : Type u_1} {R : Type u_2} [Semiring R] [DecidableEq σ] (n : σ →₀ ) :
                            monomial R n = LinearMap.single R (fun (x : σ →₀ ) => R) n
                            theorem MvPowerSeries.coeff_monomial {σ : Type u_1} {R : Type u_2} [Semiring R] [DecidableEq σ] (m n : σ →₀ ) (a : R) :
                            (coeff R m) ((monomial R n) a) = if m = n then a else 0
                            @[simp]
                            theorem MvPowerSeries.coeff_monomial_same {σ : Type u_1} {R : Type u_2} [Semiring R] (n : σ →₀ ) (a : R) :
                            (coeff R n) ((monomial R n) a) = a
                            theorem MvPowerSeries.coeff_monomial_ne {σ : Type u_1} {R : Type u_2} [Semiring R] {m n : σ →₀ } (h : m n) (a : R) :
                            (coeff R m) ((monomial R n) a) = 0
                            theorem MvPowerSeries.eq_of_coeff_monomial_ne_zero {σ : Type u_1} {R : Type u_2} [Semiring R] {m n : σ →₀ } {a : R} (h : (coeff R m) ((monomial R n) a) 0) :
                            m = n
                            @[simp]
                            theorem MvPowerSeries.coeff_comp_monomial {σ : Type u_1} {R : Type u_2} [Semiring R] (n : σ →₀ ) :
                            @[simp]
                            theorem MvPowerSeries.coeff_zero {σ : Type u_1} {R : Type u_2} [Semiring R] (n : σ →₀ ) :
                            (coeff R n) 0 = 0
                            theorem MvPowerSeries.eq_zero_iff_forall_coeff_zero {σ : Type u_1} {R : Type u_2} [Semiring R] {f : MvPowerSeries σ R} :
                            f = 0 ∀ (d : σ →₀ ), (coeff R d) f = 0
                            theorem MvPowerSeries.ne_zero_iff_exists_coeff_ne_zero {σ : Type u_1} {R : Type u_2} [Semiring R] (f : MvPowerSeries σ R) :
                            f 0 ∃ (d : σ →₀ ), (coeff R d) f 0
                            instance MvPowerSeries.instOne {σ : Type u_1} {R : Type u_2} [Semiring R] :
                            Equations
                              theorem MvPowerSeries.coeff_one {σ : Type u_1} {R : Type u_2} [Semiring R] (n : σ →₀ ) [DecidableEq σ] :
                              (coeff R n) 1 = if n = 0 then 1 else 0
                              theorem MvPowerSeries.coeff_zero_one {σ : Type u_1} {R : Type u_2} [Semiring R] :
                              (coeff R 0) 1 = 1
                              theorem MvPowerSeries.monomial_zero_one {σ : Type u_1} {R : Type u_2} [Semiring R] :
                              (monomial R 0) 1 = 1
                              instance MvPowerSeries.instMul {σ : Type u_1} {R : Type u_2} [Semiring R] :
                              Equations
                                theorem MvPowerSeries.coeff_mul {σ : Type u_1} {R : Type u_2} [Semiring R] (n : σ →₀ ) (φ ψ : MvPowerSeries σ R) [DecidableEq σ] :
                                (coeff R n) (φ * ψ) = pFinset.antidiagonal n, (coeff R p.1) φ * (coeff R p.2) ψ
                                theorem MvPowerSeries.zero_mul {σ : Type u_1} {R : Type u_2} [Semiring R] (φ : MvPowerSeries σ R) :
                                0 * φ = 0
                                theorem MvPowerSeries.mul_zero {σ : Type u_1} {R : Type u_2} [Semiring R] (φ : MvPowerSeries σ R) :
                                φ * 0 = 0
                                theorem MvPowerSeries.coeff_monomial_mul {σ : Type u_1} {R : Type u_2} [Semiring R] (m n : σ →₀ ) (φ : MvPowerSeries σ R) (a : R) :
                                (coeff R m) ((monomial R n) a * φ) = if n m then a * (coeff R (m - n)) φ else 0
                                theorem MvPowerSeries.coeff_mul_monomial {σ : Type u_1} {R : Type u_2} [Semiring R] (m n : σ →₀ ) (φ : MvPowerSeries σ R) (a : R) :
                                (coeff R m) (φ * (monomial R n) a) = if n m then (coeff R (m - n)) φ * a else 0
                                theorem MvPowerSeries.coeff_add_monomial_mul {σ : Type u_1} {R : Type u_2} [Semiring R] (m n : σ →₀ ) (φ : MvPowerSeries σ R) (a : R) :
                                (coeff R (m + n)) ((monomial R m) a * φ) = a * (coeff R n) φ
                                theorem MvPowerSeries.coeff_add_mul_monomial {σ : Type u_1} {R : Type u_2} [Semiring R] (m n : σ →₀ ) (φ : MvPowerSeries σ R) (a : R) :
                                (coeff R (m + n)) (φ * (monomial R n) a) = (coeff R m) φ * a
                                @[simp]
                                theorem MvPowerSeries.commute_monomial {σ : Type u_1} {R : Type u_2} [Semiring R] (φ : MvPowerSeries σ R) {a : R} {n : σ →₀ } :
                                Commute φ ((monomial R n) a) ∀ (m : σ →₀ ), Commute ((coeff R m) φ) a
                                theorem MvPowerSeries.one_mul {σ : Type u_1} {R : Type u_2} [Semiring R] (φ : MvPowerSeries σ R) :
                                1 * φ = φ
                                theorem MvPowerSeries.mul_one {σ : Type u_1} {R : Type u_2} [Semiring R] (φ : MvPowerSeries σ R) :
                                φ * 1 = φ
                                theorem MvPowerSeries.mul_add {σ : Type u_1} {R : Type u_2} [Semiring R] (φ₁ φ₂ φ₃ : MvPowerSeries σ R) :
                                φ₁ * (φ₂ + φ₃) = φ₁ * φ₂ + φ₁ * φ₃
                                theorem MvPowerSeries.add_mul {σ : Type u_1} {R : Type u_2} [Semiring R] (φ₁ φ₂ φ₃ : MvPowerSeries σ R) :
                                (φ₁ + φ₂) * φ₃ = φ₁ * φ₃ + φ₂ * φ₃
                                theorem MvPowerSeries.mul_assoc {σ : Type u_1} {R : Type u_2} [Semiring R] (φ₁ φ₂ φ₃ : MvPowerSeries σ R) :
                                φ₁ * φ₂ * φ₃ = φ₁ * (φ₂ * φ₃)
                                instance MvPowerSeries.instSemiring {σ : Type u_1} {R : Type u_2} [Semiring R] :
                                Equations
                                  Equations
                                    instance MvPowerSeries.instRing {σ : Type u_1} {R : Type u_2} [Ring R] :
                                    Equations
                                      instance MvPowerSeries.instCommRing {σ : Type u_1} {R : Type u_2} [CommRing R] :
                                      Equations
                                        theorem MvPowerSeries.monomial_mul_monomial {σ : Type u_1} {R : Type u_2} [Semiring R] (m n : σ →₀ ) (a b : R) :
                                        (monomial R m) a * (monomial R n) b = (monomial R (m + n)) (a * b)
                                        def MvPowerSeries.C (σ : Type u_1) (R : Type u_2) [Semiring R] :

                                        The constant multivariate formal power series.

                                        Equations
                                          Instances For
                                            @[simp]
                                            theorem MvPowerSeries.monomial_zero_eq_C {σ : Type u_1} {R : Type u_2} [Semiring R] :
                                            (monomial R 0) = (C σ R)
                                            theorem MvPowerSeries.monomial_zero_eq_C_apply {σ : Type u_1} {R : Type u_2} [Semiring R] (a : R) :
                                            (monomial R 0) a = (C σ R) a
                                            theorem MvPowerSeries.coeff_C {σ : Type u_1} {R : Type u_2} [Semiring R] [DecidableEq σ] (n : σ →₀ ) (a : R) :
                                            (coeff R n) ((C σ R) a) = if n = 0 then a else 0
                                            theorem MvPowerSeries.coeff_zero_C {σ : Type u_1} {R : Type u_2} [Semiring R] (a : R) :
                                            (coeff R 0) ((C σ R) a) = a
                                            def MvPowerSeries.X {σ : Type u_1} {R : Type u_2} [Semiring R] (s : σ) :

                                            The variables of the multivariate formal power series ring.

                                            Equations
                                              Instances For
                                                theorem MvPowerSeries.coeff_X {σ : Type u_1} {R : Type u_2} [Semiring R] [DecidableEq σ] (n : σ →₀ ) (s : σ) :
                                                (coeff R n) (X s) = if n = Finsupp.single s 1 then 1 else 0
                                                theorem MvPowerSeries.coeff_index_single_X {σ : Type u_1} {R : Type u_2} [Semiring R] [DecidableEq σ] (s t : σ) :
                                                (coeff R (Finsupp.single t 1)) (X s) = if t = s then 1 else 0
                                                @[simp]
                                                theorem MvPowerSeries.coeff_index_single_self_X {σ : Type u_1} {R : Type u_2} [Semiring R] (s : σ) :
                                                (coeff R (Finsupp.single s 1)) (X s) = 1
                                                theorem MvPowerSeries.coeff_zero_X {σ : Type u_1} {R : Type u_2} [Semiring R] (s : σ) :
                                                (coeff R 0) (X s) = 0
                                                theorem MvPowerSeries.commute_X {σ : Type u_1} {R : Type u_2} [Semiring R] (φ : MvPowerSeries σ R) (s : σ) :
                                                Commute φ (X s)
                                                theorem MvPowerSeries.X_mul {σ : Type u_1} {R : Type u_2} [Semiring R] {φ : MvPowerSeries σ R} {s : σ} :
                                                X s * φ = φ * X s
                                                theorem MvPowerSeries.commute_X_pow {σ : Type u_1} {R : Type u_2} [Semiring R] (φ : MvPowerSeries σ R) (s : σ) (n : ) :
                                                Commute φ (X s ^ n)
                                                theorem MvPowerSeries.X_pow_mul {σ : Type u_1} {R : Type u_2} [Semiring R] {φ : MvPowerSeries σ R} {s : σ} {n : } :
                                                X s ^ n * φ = φ * X s ^ n
                                                theorem MvPowerSeries.X_def {σ : Type u_1} {R : Type u_2} [Semiring R] (s : σ) :
                                                X s = (monomial R (Finsupp.single s 1)) 1
                                                theorem MvPowerSeries.X_pow_eq {σ : Type u_1} {R : Type u_2} [Semiring R] (s : σ) (n : ) :
                                                X s ^ n = (monomial R (Finsupp.single s n)) 1
                                                theorem MvPowerSeries.coeff_X_pow {σ : Type u_1} {R : Type u_2} [Semiring R] [DecidableEq σ] (m : σ →₀ ) (s : σ) (n : ) :
                                                (coeff R m) (X s ^ n) = if m = Finsupp.single s n then 1 else 0
                                                @[simp]
                                                theorem MvPowerSeries.coeff_mul_C {σ : Type u_1} {R : Type u_2} [Semiring R] (n : σ →₀ ) (φ : MvPowerSeries σ R) (a : R) :
                                                (coeff R n) (φ * (C σ R) a) = (coeff R n) φ * a
                                                @[simp]
                                                theorem MvPowerSeries.coeff_C_mul {σ : Type u_1} {R : Type u_2} [Semiring R] (n : σ →₀ ) (φ : MvPowerSeries σ R) (a : R) :
                                                (coeff R n) ((C σ R) a * φ) = a * (coeff R n) φ
                                                theorem MvPowerSeries.coeff_zero_mul_X {σ : Type u_1} {R : Type u_2} [Semiring R] (φ : MvPowerSeries σ R) (s : σ) :
                                                (coeff R 0) (φ * X s) = 0
                                                theorem MvPowerSeries.coeff_zero_X_mul {σ : Type u_1} {R : Type u_2} [Semiring R] (φ : MvPowerSeries σ R) (s : σ) :
                                                (coeff R 0) (X s * φ) = 0
                                                def MvPowerSeries.constantCoeff (σ : Type u_1) (R : Type u_2) [Semiring R] :

                                                The constant coefficient of a formal power series.

                                                Equations
                                                  Instances For
                                                    @[simp]
                                                    theorem MvPowerSeries.coeff_zero_eq_constantCoeff {σ : Type u_1} {R : Type u_2} [Semiring R] :
                                                    (coeff R 0) = (constantCoeff σ R)
                                                    theorem MvPowerSeries.coeff_zero_eq_constantCoeff_apply {σ : Type u_1} {R : Type u_2} [Semiring R] (φ : MvPowerSeries σ R) :
                                                    (coeff R 0) φ = (constantCoeff σ R) φ
                                                    @[simp]
                                                    theorem MvPowerSeries.constantCoeff_C {σ : Type u_1} {R : Type u_2} [Semiring R] (a : R) :
                                                    (constantCoeff σ R) ((C σ R) a) = a
                                                    @[simp]
                                                    theorem MvPowerSeries.constantCoeff_comp_C {σ : Type u_1} {R : Type u_2} [Semiring R] :
                                                    (constantCoeff σ R).comp (C σ R) = RingHom.id R
                                                    @[simp]
                                                    theorem MvPowerSeries.constantCoeff_zero {σ : Type u_1} {R : Type u_2} [Semiring R] :
                                                    (constantCoeff σ R) 0 = 0
                                                    @[simp]
                                                    theorem MvPowerSeries.constantCoeff_one {σ : Type u_1} {R : Type u_2} [Semiring R] :
                                                    (constantCoeff σ R) 1 = 1
                                                    @[simp]
                                                    theorem MvPowerSeries.constantCoeff_X {σ : Type u_1} {R : Type u_2} [Semiring R] (s : σ) :
                                                    (constantCoeff σ R) (X s) = 0
                                                    @[simp]
                                                    theorem MvPowerSeries.constantCoeff_smul {σ : Type u_1} {R : Type u_2} [Semiring R] {S : Type u_3} [Semiring S] [Module R S] (φ : MvPowerSeries σ S) (a : R) :
                                                    (constantCoeff σ S) (a φ) = a (constantCoeff σ S) φ
                                                    theorem MvPowerSeries.isUnit_constantCoeff {σ : Type u_1} {R : Type u_2} [Semiring R] (φ : MvPowerSeries σ R) (h : IsUnit φ) :
                                                    IsUnit ((constantCoeff σ R) φ)

                                                    If a multivariate formal power series is invertible, then so is its constant coefficient.

                                                    @[simp]
                                                    theorem MvPowerSeries.coeff_smul {σ : Type u_1} {R : Type u_2} [Semiring R] (f : MvPowerSeries σ R) (n : σ →₀ ) (a : R) :
                                                    (coeff R n) (a f) = a * (coeff R n) f
                                                    theorem MvPowerSeries.smul_eq_C_mul {σ : Type u_1} {R : Type u_2} [Semiring R] (f : MvPowerSeries σ R) (a : R) :
                                                    a f = (C σ R) a * f
                                                    theorem MvPowerSeries.X_inj {σ : Type u_1} {R : Type u_2} [Semiring R] [Nontrivial R] {s t : σ} :
                                                    X s = X t s = t
                                                    def MvPowerSeries.map (σ : Type u_1) {R : Type u_2} {S : Type u_3} [Semiring R] [Semiring S] (f : R →+* S) :

                                                    The map between multivariate formal power series induced by a map on the coefficients.

                                                    Equations
                                                      Instances For
                                                        @[simp]
                                                        theorem MvPowerSeries.map_id {σ : Type u_1} {R : Type u_2} [Semiring R] :
                                                        theorem MvPowerSeries.map_comp {σ : Type u_1} {R : Type u_2} {S : Type u_3} {T : Type u_4} [Semiring R] [Semiring S] [Semiring T] (f : R →+* S) (g : S →+* T) :
                                                        map σ (g.comp f) = (map σ g).comp (map σ f)
                                                        @[simp]
                                                        theorem MvPowerSeries.coeff_map {σ : Type u_1} {R : Type u_2} {S : Type u_3} [Semiring R] [Semiring S] (f : R →+* S) (n : σ →₀ ) (φ : MvPowerSeries σ R) :
                                                        (coeff S n) ((map σ f) φ) = f ((coeff R n) φ)
                                                        @[simp]
                                                        theorem MvPowerSeries.constantCoeff_map {σ : Type u_1} {R : Type u_2} {S : Type u_3} [Semiring R] [Semiring S] (f : R →+* S) (φ : MvPowerSeries σ R) :
                                                        (constantCoeff σ S) ((map σ f) φ) = f ((constantCoeff σ R) φ)
                                                        @[simp]
                                                        theorem MvPowerSeries.map_monomial {σ : Type u_1} {R : Type u_2} {S : Type u_3} [Semiring R] [Semiring S] (f : R →+* S) (n : σ →₀ ) (a : R) :
                                                        (map σ f) ((monomial R n) a) = (monomial S n) (f a)
                                                        @[simp]
                                                        theorem MvPowerSeries.map_C {σ : Type u_1} {R : Type u_2} {S : Type u_3} [Semiring R] [Semiring S] (f : R →+* S) (a : R) :
                                                        (map σ f) ((C σ R) a) = (C σ S) (f a)
                                                        @[simp]
                                                        theorem MvPowerSeries.map_X {σ : Type u_1} {R : Type u_2} {S : Type u_3} [Semiring R] [Semiring S] (f : R →+* S) (s : σ) :
                                                        (map σ f) (X s) = X s
                                                        @[simp]
                                                        theorem MvPowerSeries.map_eq_zero {σ : Type u_1} {R : Type u_2} {S : Type u_3} [DivisionSemiring R] [Semiring S] [Nontrivial S] (φ : MvPowerSeries σ R) (f : R →+* S) :
                                                        (map σ f) φ = 0 φ = 0
                                                        theorem MvPowerSeries.X_pow_dvd_iff {σ : Type u_1} {R : Type u_2} [Semiring R] {s : σ} {n : } {φ : MvPowerSeries σ R} :
                                                        X s ^ n φ ∀ (m : σ →₀ ), m s < n(coeff R m) φ = 0
                                                        theorem MvPowerSeries.X_dvd_iff {σ : Type u_1} {R : Type u_2} [Semiring R] {s : σ} {φ : MvPowerSeries σ R} :
                                                        X s φ ∀ (m : σ →₀ ), m s = 0(coeff R m) φ = 0
                                                        theorem MvPowerSeries.coeff_prod {σ : Type u_1} {R : Type u_3} [CommSemiring R] {ι : Type u_4} [DecidableEq ι] [DecidableEq σ] (f : ιMvPowerSeries σ R) (d : σ →₀ ) (s : Finset ι) :
                                                        (coeff R d) (∏ js, f j) = ls.finsuppAntidiag d, is, (coeff R (l i)) (f i)

                                                        Coefficients of a product of power series

                                                        theorem MvPowerSeries.coeff_pow {σ : Type u_1} {R : Type u_3} [CommSemiring R] [DecidableEq σ] (f : MvPowerSeries σ R) {n : } (d : σ →₀ ) :
                                                        (coeff R d) (f ^ n) = l(Finset.range n).finsuppAntidiag d, iFinset.range n, (coeff R (l i)) f

                                                        The dth coefficient of a power of a multivariate power series is the sum, indexed by finsuppAntidiag (Finset.range n) d, of products of coefficients

                                                        theorem MvPowerSeries.coeff_eq_zero_of_constantCoeff_nilpotent {σ : Type u_1} {R : Type u_3} [CommSemiring R] {f : MvPowerSeries σ R} {m : } (hf : (constantCoeff σ R) f ^ m = 0) {d : σ →₀ } {n : } (hn : m + d.degree n) :
                                                        (coeff R d) (f ^ n) = 0

                                                        Vanishing of coefficients of powers of multivariate power series when the constant coefficient is nilpotent [N. Bourbaki, Algebra {II}, Chapter 4, §4, n°2, proposition 3][bourbaki1981]

                                                        instance MvPowerSeries.instAlgebra {σ : Type u_1} {R : Type u_2} {A : Type u_3} [CommSemiring R] [Semiring A] [Algebra R A] :
                                                        Equations
                                                          theorem MvPowerSeries.c_eq_algebraMap {σ : Type u_1} {R : Type u_2} [CommSemiring R] :
                                                          C σ R = algebraMap R (MvPowerSeries σ R)
                                                          theorem MvPowerSeries.algebraMap_apply {σ : Type u_1} {R : Type u_2} {A : Type u_3} [CommSemiring R] [Semiring A] [Algebra R A] {r : R} :
                                                          (algebraMap R (MvPowerSeries σ A)) r = (C σ A) ((algebraMap R A) r)
                                                          def MvPowerSeries.mapAlgHom {σ : Type u_1} {R : Type u_2} {A : Type u_3} [CommSemiring R] [Semiring A] [Algebra R A] {B : Type u_4} [Semiring B] [Algebra R B] (φ : A →ₐ[R] B) :

                                                          Change of coefficients in mv power series, as an AlgHom

                                                          Equations
                                                            Instances For
                                                              theorem MvPowerSeries.mapAlgHom_apply {σ : Type u_1} {R : Type u_2} {A : Type u_3} [CommSemiring R] [Semiring A] [Algebra R A] {B : Type u_4} [Semiring B] [Algebra R B] (φ : A →ₐ[R] B) (f : MvPowerSeries σ A) :
                                                              (mapAlgHom φ) f = (map σ φ) f
                                                              def MvPolynomial.toMvPowerSeries {σ : Type u_1} {R : Type u_2} [CommSemiring R] :

                                                              The natural inclusion from multivariate polynomials into multivariate formal power series.

                                                              Equations
                                                                Instances For
                                                                  instance MvPolynomial.coeToMvPowerSeries {σ : Type u_1} {R : Type u_2} [CommSemiring R] :

                                                                  The natural inclusion from multivariate polynomials into multivariate formal power series.

                                                                  Equations
                                                                    theorem MvPolynomial.coe_def {σ : Type u_1} {R : Type u_2} [CommSemiring R] (φ : MvPolynomial σ R) :
                                                                    φ = fun (n : σ →₀ ) => coeff n φ
                                                                    @[simp]
                                                                    theorem MvPolynomial.coeff_coe {σ : Type u_1} {R : Type u_2} [CommSemiring R] (φ : MvPolynomial σ R) (n : σ →₀ ) :
                                                                    (MvPowerSeries.coeff R n) φ = coeff n φ
                                                                    @[simp]
                                                                    theorem MvPolynomial.coe_monomial {σ : Type u_1} {R : Type u_2} [CommSemiring R] (n : σ →₀ ) (a : R) :
                                                                    ((monomial n) a) = (MvPowerSeries.monomial R n) a
                                                                    @[simp]
                                                                    theorem MvPolynomial.coe_zero {σ : Type u_1} {R : Type u_2} [CommSemiring R] :
                                                                    0 = 0
                                                                    @[simp]
                                                                    theorem MvPolynomial.coe_one {σ : Type u_1} {R : Type u_2} [CommSemiring R] :
                                                                    1 = 1
                                                                    @[simp]
                                                                    theorem MvPolynomial.coe_add {σ : Type u_1} {R : Type u_2} [CommSemiring R] (φ ψ : MvPolynomial σ R) :
                                                                    ↑(φ + ψ) = φ + ψ
                                                                    @[simp]
                                                                    theorem MvPolynomial.coe_mul {σ : Type u_1} {R : Type u_2} [CommSemiring R] (φ ψ : MvPolynomial σ R) :
                                                                    ↑(φ * ψ) = φ * ψ
                                                                    @[simp]
                                                                    theorem MvPolynomial.coe_C {σ : Type u_1} {R : Type u_2} [CommSemiring R] (a : R) :
                                                                    (C a) = (MvPowerSeries.C σ R) a
                                                                    @[simp]
                                                                    theorem MvPolynomial.coe_X {σ : Type u_1} {R : Type u_2} [CommSemiring R] (s : σ) :
                                                                    @[simp]
                                                                    theorem MvPolynomial.coe_inj {σ : Type u_1} {R : Type u_2} [CommSemiring R] {φ ψ : MvPolynomial σ R} :
                                                                    φ = ψ φ = ψ
                                                                    @[simp]
                                                                    theorem MvPolynomial.coe_eq_zero_iff {σ : Type u_1} {R : Type u_2} [CommSemiring R] {φ : MvPolynomial σ R} :
                                                                    φ = 0 φ = 0
                                                                    @[simp]
                                                                    theorem MvPolynomial.coe_eq_one_iff {σ : Type u_1} {R : Type u_2} [CommSemiring R] {φ : MvPolynomial σ R} :
                                                                    φ = 1 φ = 1

                                                                    The coercion from multivariate polynomials to multivariate power series as a ring homomorphism.

                                                                    Equations
                                                                      Instances For
                                                                        @[simp]
                                                                        theorem MvPolynomial.coe_pow {σ : Type u_1} {R : Type u_2} [CommSemiring R] {φ : MvPolynomial σ R} (n : ) :
                                                                        ↑(φ ^ n) = φ ^ n
                                                                        @[simp]
                                                                        theorem MvPolynomial.coeToMvPowerSeries.ringHom_apply {σ : Type u_1} {R : Type u_2} [CommSemiring R] (φ : MvPolynomial σ R) :
                                                                        ringHom φ = φ
                                                                        theorem MvPowerSeries.monomial_one_eq {σ : Type u_1} {R : Type u_2} [CommSemiring R] (e : σ →₀ ) :
                                                                        (monomial R e) 1 = e.prod fun (s : σ) (n : ) => X s ^ n

                                                                        The coercion from multivariate polynomials to multivariate power series as an algebra homomorphism.

                                                                        Equations
                                                                          Instances For
                                                                            @[simp]
                                                                            theorem MvPolynomial.coeToMvPowerSeries.algHom_apply {σ : Type u_1} {R : Type u_2} [CommSemiring R] (φ : MvPolynomial σ R) (A : Type u_3) [CommSemiring A] [Algebra R A] :
                                                                            (algHom A) φ = (MvPowerSeries.map σ (algebraMap R A)) φ
                                                                            theorem MvPowerSeries.prod_smul_X_eq_smul_monomial_one {σ : Type u_1} {R : Type u_2} [CommSemiring R] {A : Type u_4} [CommSemiring A] [Algebra A R] (e : σ →₀ ) (a : σA) :
                                                                            (e.prod fun (s : σ) (n : ) => (a s X s) ^ n) = (e.prod fun (s : σ) (n : ) => a s ^ n) (monomial R e) 1
                                                                            theorem MvPowerSeries.monomial_eq {σ : Type u_1} {R : Type u_2} [CommSemiring R] (e : σ →₀ ) (r : σR) :
                                                                            (monomial R e) (e.prod fun (s : σ) (n : ) => r s ^ n) = e.prod fun (s : σ) (e : ) => (r s X s) ^ e
                                                                            theorem MvPowerSeries.monomial_smul_const {σ : Type u_4} {R : Type u_5} [CommSemiring R] (e : σ →₀ ) (r : R) :
                                                                            (monomial R e) (r ^ e.sum fun (x : σ) (n : ) => n) = e.prod fun (s : σ) (e : ) => (r X s) ^ e
                                                                            instance MvPowerSeries.algebraMvPolynomial {σ : Type u_1} {R : Type u_2} {A : Type u_3} [CommSemiring R] [CommSemiring A] [Algebra R A] :
                                                                            Equations
                                                                              instance MvPowerSeries.algebraMvPowerSeries {σ : Type u_1} {R : Type u_2} {A : Type u_3} [CommSemiring R] [CommSemiring A] [Algebra R A] :
                                                                              Equations
                                                                                theorem MvPowerSeries.algebraMap_apply' {σ : Type u_1} {R : Type u_2} (A : Type u_3) [CommSemiring R] [CommSemiring A] [Algebra R A] (p : MvPolynomial σ R) :
                                                                                (algebraMap (MvPolynomial σ R) (MvPowerSeries σ A)) p = (map σ (algebraMap R A)) p
                                                                                theorem MvPowerSeries.algebraMap_apply'' {σ : Type u_1} {R : Type u_2} (A : Type u_3) [CommSemiring R] [CommSemiring A] [Algebra R A] (f : MvPowerSeries σ R) :
                                                                                (algebraMap (MvPowerSeries σ R) (MvPowerSeries σ A)) f = (map σ (algebraMap R A)) f