mathlib documentation

ring_theory.polynomial.homogeneous

Homogeneous polynomials

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

Main definitions/lemmas

def mv_polynomial.is_homogeneous {σ : Type u_1} {R : Type u_3} [comm_semiring R] (φ : mv_polynomial σ R) (n : ) :
Prop

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

Equations
theorem mv_polynomial.is_homogeneous_monomial {σ : Type u_1} {R : Type u_3} [comm_semiring R] (d : σ →₀ ) (r : R) (n : ) (hn : ∑ (i : σ) in d.support, d i = n) :

theorem mv_polynomial.is_homogeneous_C (σ : Type u_1) {R : Type u_3} [comm_semiring R] (r : R) :

theorem mv_polynomial.is_homogeneous_zero (σ : Type u_1) (R : Type u_3) [comm_semiring R] (n : ) :

theorem mv_polynomial.is_homogeneous_one (σ : Type u_1) (R : Type u_3) [comm_semiring R] :

theorem mv_polynomial.is_homogeneous_X {σ : Type u_1} (R : Type u_3) [comm_semiring R] (i : σ) :

theorem mv_polynomial.is_homogeneous.coeff_eq_zero {σ : Type u_1} {R : Type u_3} [comm_semiring R] {φ : mv_polynomial σ R} {n : } (hφ : φ.is_homogeneous n) (d : σ →₀ ) (hd : ∑ (i : σ) in d.support, d i n) :

theorem mv_polynomial.is_homogeneous.inj_right {σ : Type u_1} {R : Type u_3} [comm_semiring R] {φ : mv_polynomial σ R} {m n : } (hm : φ.is_homogeneous m) (hn : φ.is_homogeneous n) (hφ : φ 0) :
m = n

theorem mv_polynomial.is_homogeneous.add {σ : Type u_1} {R : Type u_3} [comm_semiring R] {φ ψ : mv_polynomial σ R} {n : } (hφ : φ.is_homogeneous n) (hψ : ψ.is_homogeneous n) :
+ ψ).is_homogeneous n

theorem mv_polynomial.is_homogeneous.sum {σ : Type u_1} {R : Type u_3} [comm_semiring R] {ι : Type u_2} (s : finset ι) (φ : ι → mv_polynomial σ R) (n : ) (h : ∀ (i : ι), i s(φ i).is_homogeneous n) :
(∑ (i : ι) in s, φ i).is_homogeneous n

theorem mv_polynomial.is_homogeneous.mul {σ : Type u_1} {R : Type u_3} [comm_semiring R] {φ ψ : mv_polynomial σ R} {m n : } (hφ : φ.is_homogeneous m) (hψ : ψ.is_homogeneous n) :
* ψ).is_homogeneous (m + n)

theorem mv_polynomial.is_homogeneous.prod {σ : Type u_1} {R : Type u_3} [comm_semiring R] {ι : Type u_2} (s : finset ι) (φ : ι → mv_polynomial σ R) (n : ι → ) (h : ∀ (i : ι), i s(φ i).is_homogeneous (n i)) :
(∏ (i : ι) in s, φ i).is_homogeneous (∑ (i : ι) in s, n i)

theorem mv_polynomial.is_homogeneous.total_degree {σ : Type u_1} {R : Type u_3} [comm_semiring R] {φ : mv_polynomial σ R} {n : } (hφ : φ.is_homogeneous n) (h : φ 0) :

def mv_polynomial.homogeneous_component {σ : Type u_1} {R : Type u_3} [comm_semiring R] (n : ) :

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

Equations
theorem mv_polynomial.coeff_homogeneous_component {σ : Type u_1} {R : Type u_3} [comm_semiring R] (n : ) (φ : mv_polynomial σ R) (d : σ →₀ ) :

theorem mv_polynomial.homogeneous_component_apply {σ : Type u_1} {R : Type u_3} [comm_semiring R] (n : ) (φ : mv_polynomial σ R) :
(mv_polynomial.homogeneous_component n) φ = ∑ (d : σ →₀ ) in finset.filter (λ (d : σ →₀ ), ∑ (i : σ) in d.support, d i = n) φ.support, mv_polynomial.monomial d (mv_polynomial.coeff d φ)

theorem mv_polynomial.homogeneous_component_eq_zero' {σ : Type u_1} {R : Type u_3} [comm_semiring R] (n : ) (φ : mv_polynomial σ R) (h : ∀ (d : σ →₀ ), d φ.support∑ (i : σ) in d.support, d i n) :

theorem mv_polynomial.homogeneous_component_eq_zero {σ : Type u_1} {R : Type u_3} [comm_semiring R] (n : ) (φ : mv_polynomial σ R) (h : φ.total_degree < n) :

theorem mv_polynomial.sum_homogeneous_component {σ : Type u_1} {R : Type u_3} [comm_semiring R] (φ : mv_polynomial σ R) :