Degree and support of univariate polynomials #
Main results #
Polynomial.as_sum_support: writep : R[X]as a sum over its supportPolynomial.as_sum_range: writep : R[X]as a sum over{0, ..., natDegree p}Polynomial.natDegree_mem_support_of_nonzero:natDegree p ∈ support pifp ≠ 0
theorem Polynomial.supp_subset_range {R : Type u} {m : ℕ} [Semiring R] {p : Polynomial R} (h : p.natDegree < m) :
p.support ⊆ Finset.range m
theorem Polynomial.supp_subset_range_natDegree_succ {R : Type u} [Semiring R] {p : Polynomial R} :
p.support ⊆ Finset.range (p.natDegree + 1)
theorem Polynomial.sum_over_range' {R : Type u} {S : Type v} [Semiring R] [AddCommMonoid S] (p : Polynomial R) {f : ℕ → R → S} (h : ∀ (n : ℕ), f n 0 = 0) (n : ℕ) (hn : p.natDegree < n) :
We can reexpress a sum over p.support as a sum over range n,
for any n satisfying p.natDegree < n.
theorem Polynomial.sum_over_range {R : Type u} {S : Type v} [Semiring R] [AddCommMonoid S] (p : Polynomial R) {f : ℕ → R → S} (h : ∀ (n : ℕ), f n 0 = 0) :
We can reexpress a sum over p.support as a sum over range (p.natDegree + 1).
theorem Polynomial.as_sum_range' {R : Type u} [Semiring R] (p : Polynomial R) (n : ℕ) (hn : p.natDegree < n) :
theorem Polynomial.as_sum_range_C_mul_X_pow' {R : Type u} [Semiring R] (p : Polynomial R) {n : ℕ} (hn : p.natDegree < n) :
theorem Polynomial.natDegree_mem_support_of_nonzero {R : Type u} [Semiring R] {p : Polynomial R} (H : p ≠ 0) :
theorem Polynomial.natDegree_eq_support_max' {R : Type u} [Semiring R] {p : Polynomial R} (h : p ≠ 0) :