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 p
ifp ≠ 0
theorem
Polynomial.supp_subset_range
{R : Type u}
{m : ℕ}
[Semiring R]
{p : Polynomial R}
(h : p.natDegree < m)
:
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 : ℕ)
(w : 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 : ℕ)
(w : 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)
: