Evaluation of polynomials and degrees #
This file contains results on the interaction of Polynomial.eval
and Polynomial.degree
.
theorem
Polynomial.eval₂_eq_sum_range
{R : Type u}
{S : Type v}
[Semiring R]
{p : Polynomial R}
[Semiring S]
(f : R →+* S)
(x : S)
:
theorem
Polynomial.eval₂_eq_sum_range'
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
(f : R →+* S)
{p : Polynomial R}
{n : ℕ}
(hn : p.natDegree < n)
(x : S)
:
eval₂ f x p = ∑ i ∈ Finset.range n, f (p.coeff i) * x ^ i
theorem
Polynomial.eval_eq_sum_range'
{R : Type u}
[Semiring R]
{p : Polynomial R}
{n : ℕ}
(hn : p.natDegree < n)
(x : R)
:
eval x p = ∑ i ∈ Finset.range n, p.coeff i * x ^ i
A reformulation of the expansion of (1 + y)^d: $$(d + 1) (1 + y)^d - (d + 1)y^d = \sum_{i = 0}^d {d + 1 \choose i} \cdot i \cdot y^{i - 1}.$$
theorem
Polynomial.coeff_comp_degree_mul_degree
{R : Type u}
[Semiring R]
{p q : Polynomial R}
(hqd0 : q.natDegree ≠ 0)
:
theorem
Polynomial.comp_C_mul_X_eq_zero_iff
{R : Type u}
[Semiring R]
{p : Polynomial R}
{r : R}
(hr : r ∈ nonZeroDivisors R)
:
def
Polynomial.mapEquiv
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
(e : R ≃+* S)
:
Polynomial R ≃+* Polynomial S
If R
and S
are isomorphic, then so are their polynomial rings.
Equations
- Polynomial.mapEquiv e = RingEquiv.ofHomInv (Polynomial.mapRingHom ↑e) (Polynomial.mapRingHom ↑e.symm) ⋯ ⋯
Instances For
theorem
Polynomial.map_monic_ne_zero
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
{f : R →+* S}
{p : Polynomial R}
(hp : p.Monic)
[Nontrivial S]
:
theorem
Polynomial.degree_map_le
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
{f : R →+* S}
{p : Polynomial R}
:
theorem
Polynomial.natDegree_map_le
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
{f : R →+* S}
{p : Polynomial R}
:
theorem
Polynomial.natDegree_map_lt'
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
{f : R →+* S}
{p : Polynomial R}
(hp : f p.leadingCoeff = 0)
(hp₀ : 0 < p.natDegree)
:
Variant of natDegree_map_lt
that assumes 0 < natDegree p
instead of map f p ≠ 0
.
theorem
Polynomial.eval₂_comp
{R : Type u}
{S : Type v}
[Semiring R]
{p q : Polynomial R}
[CommSemiring S]
(f : R →+* S)
{x : S}
:
@[simp]
theorem
Polynomial.iterate_comp_eval
{R : Type u}
[CommSemiring R]
{p q : Polynomial R}
(k : ℕ)
(t : R)
: