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}
[Semiring R]
{p : Polynomial R}
{n : ℕ}
(hn : p.natDegree < n)
(x : R)
:
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)
:
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_lt
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
{f : R →+* S}
{p : Polynomial R}
(hp : f p.leadingCoeff = 0)
(hp₀ : p ≠ 0)
:
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.degree_map_eq_of_leadingCoeff_ne_zero
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
{p : Polynomial R}
(f : R →+* S)
(hf : f p.leadingCoeff ≠ 0)
:
theorem
Polynomial.natDegree_map_of_leadingCoeff_ne_zero
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
{p : Polynomial R}
(f : R →+* S)
(hf : f p.leadingCoeff ≠ 0)
:
theorem
Polynomial.leadingCoeff_map_of_leadingCoeff_ne_zero
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
{p : Polynomial R}
(f : R →+* S)
(hf : f p.leadingCoeff ≠ 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)
:
theorem
Polynomial.isUnit_of_isUnit_leadingCoeff_of_isUnit_map
{R : Type u}
{S : Type v}
[Semiring R]
[CommRing S]
[IsDomain S]
(φ : R →+* S)
{f : Polynomial R}
(hf : IsUnit f.leadingCoeff)
(H : IsUnit (map φ f))
:
IsUnit f