Documentation

Mathlib.RingTheory.MvPolynomial.Homogeneous

Homogeneous polynomials #

A multivariate polynomial φ is homogeneous of degree n if all monomials occurring in φ have degree n.

Main definitions/lemmas #

def MvPolynomial.IsHomogeneous {σ : Type u_1} {R : Type u_3} [CommSemiring R] (φ : MvPolynomial σ R) (n : ) :

A multivariate polynomial φ is homogeneous of degree n if all monomials occurring in φ have degree n.

Equations
Instances For

    The submodule of homogeneous MvPolynomials of degree n.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem MvPolynomial.homogeneousSubmodule_eq_finsupp_supported (σ : Type u_1) (R : Type u_3) [CommSemiring R] (n : ) :
      MvPolynomial.homogeneousSubmodule σ R n = Finsupp.supported R R {d | (Finset.sum d.support fun i => d i) = n}

      While equal, the former has a convenient definitional reduction.

      theorem MvPolynomial.isHomogeneous_monomial {σ : Type u_1} {R : Type u_3} [CommSemiring R] (d : σ →₀ ) (r : R) (n : ) (hn : (Finset.sum d.support fun i => d i) = n) :
      theorem MvPolynomial.isHomogeneous_C (σ : Type u_1) {R : Type u_3} [CommSemiring R] (r : R) :
      MvPolynomial.IsHomogeneous (MvPolynomial.C r) 0
      theorem MvPolynomial.IsHomogeneous.coeff_eq_zero {σ : Type u_1} {R : Type u_3} [CommSemiring R] {φ : MvPolynomial σ R} {n : } (hφ : MvPolynomial.IsHomogeneous φ n) (d : σ →₀ ) (hd : (Finset.sum d.support fun i => d i) n) :
      theorem MvPolynomial.IsHomogeneous.inj_right {σ : Type u_1} {R : Type u_3} [CommSemiring R] {φ : MvPolynomial σ R} {m : } {n : } (hm : MvPolynomial.IsHomogeneous φ m) (hn : MvPolynomial.IsHomogeneous φ n) (hφ : φ 0) :
      m = n
      theorem MvPolynomial.IsHomogeneous.add {σ : Type u_1} {R : Type u_3} [CommSemiring R] {φ : MvPolynomial σ R} {ψ : MvPolynomial σ R} {n : } (hφ : MvPolynomial.IsHomogeneous φ n) (hψ : MvPolynomial.IsHomogeneous ψ n) :
      theorem MvPolynomial.IsHomogeneous.sum {σ : Type u_1} {R : Type u_3} [CommSemiring R] {ι : Type u_5} (s : Finset ι) (φ : ιMvPolynomial σ R) (n : ) (h : ∀ (i : ι), i sMvPolynomial.IsHomogeneous (φ i) n) :
      theorem MvPolynomial.IsHomogeneous.mul {σ : Type u_1} {R : Type u_3} [CommSemiring R] {φ : MvPolynomial σ R} {ψ : MvPolynomial σ R} {m : } {n : } (hφ : MvPolynomial.IsHomogeneous φ m) (hψ : MvPolynomial.IsHomogeneous ψ n) :
      theorem MvPolynomial.IsHomogeneous.prod {σ : Type u_1} {R : Type u_3} [CommSemiring R] {ι : Type u_5} (s : Finset ι) (φ : ιMvPolynomial σ R) (n : ι) (h : ∀ (i : ι), i sMvPolynomial.IsHomogeneous (φ i) (n i)) :
      MvPolynomial.IsHomogeneous (Finset.prod s fun i => φ i) (Finset.sum s fun i => n i)
      theorem MvPolynomial.IsHomogeneous.totalDegree {σ : Type u_1} {R : Type u_3} [CommSemiring R] {φ : MvPolynomial σ R} {n : } (hφ : MvPolynomial.IsHomogeneous φ n) (h : φ 0) :

      homogeneousComponent n φ is the part of φ that is homogeneous of degree n. See sum_homogeneousComponent for the statement that φ is equal to the sum of all its homogeneous components.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem MvPolynomial.coeff_homogeneousComponent {σ : Type u_1} {R : Type u_3} [CommSemiring R] (n : ) (φ : MvPolynomial σ R) (d : σ →₀ ) :
        MvPolynomial.coeff d (↑(MvPolynomial.homogeneousComponent n) φ) = if (Finset.sum d.support fun i => d i) = n then MvPolynomial.coeff d φ else 0
        theorem MvPolynomial.homogeneousComponent_apply {σ : Type u_1} {R : Type u_3} [CommSemiring R] (n : ) (φ : MvPolynomial σ R) :
        ↑(MvPolynomial.homogeneousComponent n) φ = Finset.sum (Finset.filter (fun d => (Finset.sum d.support fun i => d i) = n) (MvPolynomial.support φ)) fun d => ↑(MvPolynomial.monomial d) (MvPolynomial.coeff d φ)
        @[simp]
        theorem MvPolynomial.homogeneousComponent_zero {σ : Type u_1} {R : Type u_3} [CommSemiring R] (φ : MvPolynomial σ R) :
        ↑(MvPolynomial.homogeneousComponent 0) φ = MvPolynomial.C (MvPolynomial.coeff 0 φ)
        @[simp]
        theorem MvPolynomial.homogeneousComponent_C_mul {σ : Type u_1} {R : Type u_3} [CommSemiring R] (φ : MvPolynomial σ R) (n : ) (r : R) :
        ↑(MvPolynomial.homogeneousComponent n) (MvPolynomial.C r * φ) = MvPolynomial.C r * ↑(MvPolynomial.homogeneousComponent n) φ
        theorem MvPolynomial.homogeneousComponent_eq_zero' {σ : Type u_1} {R : Type u_3} [CommSemiring R] (n : ) (φ : MvPolynomial σ R) (h : ∀ (d : σ →₀ ), d MvPolynomial.support φ(Finset.sum d.support fun i => d i) n) :