Documentation

Mathlib.Algebra.MvPolynomial.Expand

Expand multivariate polynomials #

Given a multivariate polynomial φ, one may replace every occurrence of X i by X i ^ n, for some natural number n. This operation is called MvPolynomial.expand and it is an algebra homomorphism.

Main declaration #

noncomputable def MvPolynomial.expand {σ : Type u_1} {R : Type u_3} [CommSemiring R] (p : ) :

Expand the polynomial by a factor of p, so ∑ aₙ xⁿ becomes ∑ aₙ xⁿᵖ.

See also Polynomial.expand.

Equations
Instances For
    theorem MvPolynomial.expand_C {σ : Type u_1} {R : Type u_3} [CommSemiring R] (p : ) (r : R) :
    (expand p) (C r) = C r
    @[simp]
    theorem MvPolynomial.expand_X {σ : Type u_1} {R : Type u_3} [CommSemiring R] (p : ) (i : σ) :
    (expand p) (X i) = X i ^ p
    @[simp]
    theorem MvPolynomial.expand_monomial {σ : Type u_1} {R : Type u_3} [CommSemiring R] (p : ) (d : σ →₀ ) (r : R) :
    (expand p) ((monomial d) r) = (monomial (p d)) r
    @[simp]
    theorem MvPolynomial.expand_zero {σ : Type u_1} {R : Type u_3} [CommSemiring R] :
    theorem MvPolynomial.expand_zero_apply {σ : Type u_1} {R : Type u_3} [CommSemiring R] (p : MvPolynomial σ R) :
    (expand 0) p = C ((eval 1) p)
    @[simp]
    theorem MvPolynomial.expand_one {σ : Type u_1} {R : Type u_3} [CommSemiring R] :
    theorem MvPolynomial.expand_one_apply {σ : Type u_1} {R : Type u_3} [CommSemiring R] (f : MvPolynomial σ R) :
    (expand 1) f = f
    theorem MvPolynomial.expand_comp_bind₁ {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] (p : ) (f : σMvPolynomial τ R) :
    (expand p).comp (bind₁ f) = bind₁ fun (i : σ) => (expand p) (f i)
    theorem MvPolynomial.expand_bind₁ {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] (p : ) (f : σMvPolynomial τ R) (φ : MvPolynomial σ R) :
    (expand p) ((bind₁ f) φ) = (bind₁ fun (i : σ) => (expand p) (f i)) φ
    @[simp]
    theorem MvPolynomial.map_expand {σ : Type u_1} {R : Type u_3} {S : Type u_4} [CommSemiring R] [CommSemiring S] (f : R →+* S) (p : ) (φ : MvPolynomial σ R) :
    (map f) ((expand p) φ) = (expand p) ((map f) φ)
    @[simp]
    theorem MvPolynomial.rename_comp_expand {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] (f : στ) (p : ) :
    (rename f).comp (expand p) = (expand p).comp (rename f)
    @[simp]
    theorem MvPolynomial.rename_expand {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] (f : στ) (p : ) (φ : MvPolynomial σ R) :
    (rename f) ((expand p) φ) = (expand p) ((rename f) φ)
    theorem MvPolynomial.eval₂Hom_comp_expand {σ : Type u_1} {R : Type u_3} {S : Type u_4} [CommSemiring R] [CommSemiring S] (f : R →+* S) (g : σS) (p : ) :
    (eval₂Hom f g).comp (expand p) = eval₂Hom f (g ^ p)
    @[simp]
    theorem MvPolynomial.eval₂_expand {σ : Type u_1} {R : Type u_3} {S : Type u_4} [CommSemiring R] [CommSemiring S] (f : R →+* S) (g : σS) (φ : MvPolynomial σ R) (p : ) :
    eval₂ f g ((expand p) φ) = eval₂ f (g ^ p) φ
    @[simp]
    theorem MvPolynomial.aeval_comp_expand {σ : Type u_1} {R : Type u_3} [CommSemiring R] {A : Type u_5} [CommSemiring A] [Algebra R A] (f : σA) (p : ) :
    (aeval f).comp (expand p) = aeval (f ^ p)
    @[simp]
    theorem MvPolynomial.aeval_expand {σ : Type u_1} {R : Type u_3} [CommSemiring R] {A : Type u_5} [CommSemiring A] [Algebra R A] (f : σA) (φ : MvPolynomial σ R) (p : ) :
    (aeval f) ((expand p) φ) = (aeval (f ^ p)) φ
    @[simp]
    theorem MvPolynomial.eval_expand {σ : Type u_1} {R : Type u_3} [CommSemiring R] (f : σR) (φ : MvPolynomial σ R) (p : ) :
    (eval f) ((expand p) φ) = (eval (f ^ p)) φ
    theorem MvPolynomial.expand_mul_eq_comp {σ : Type u_1} {R : Type u_3} [CommSemiring R] (p q : ) :
    expand (p * q) = (expand p).comp (expand q)
    theorem MvPolynomial.expand_mul {σ : Type u_1} {R : Type u_3} [CommSemiring R] (p q : ) (φ : MvPolynomial σ R) :
    (expand (p * q)) φ = (expand p) ((expand q) φ)
    @[simp]
    theorem MvPolynomial.coeff_expand_smul {σ : Type u_1} {R : Type u_3} [CommSemiring R] (φ : MvPolynomial σ R) {p : } (hp : p 0) (m : σ →₀ ) :
    coeff (p m) ((expand p) φ) = coeff m φ
    theorem MvPolynomial.support_expand_subset {σ : Type u_1} {R : Type u_3} [CommSemiring R] [DecidableEq σ] (φ : MvPolynomial σ R) (p : ) :
    ((expand p) φ).support Finset.image (fun (x : σ →₀ ) => p x) φ.support
    theorem MvPolynomial.coeff_expand_of_not_dvd {σ : Type u_1} {R : Type u_3} [CommSemiring R] (φ : MvPolynomial σ R) {p : } {m : σ →₀ } {i : σ} (h : ¬p m i) :
    coeff m ((expand p) φ) = 0
    theorem MvPolynomial.support_expand {σ : Type u_1} {R : Type u_3} [CommSemiring R] [DecidableEq σ] (φ : MvPolynomial σ R) {p : } (hp : p 0) :
    ((expand p) φ).support = Finset.image (fun (x : σ →₀ ) => p x) φ.support