Evaluation of polynomials #
This file contains results on the interaction of Polynomial.eval
and Polynomial.coeff
@[simp]
theorem
Polynomial.eval₂_at_zero
{R : Type u}
{S : Type v}
[Semiring R]
{p : Polynomial R}
[Semiring S]
(f : R →+* S)
:
@[simp]
theorem
Polynomial.zero_isRoot_of_coeff_zero_eq_zero
{R : Type u}
[Semiring R]
{p : Polynomial R}
(hp : p.coeff 0 = 0)
:
p.IsRoot 0
@[simp]
def
Polynomial.piEquiv
{ι : Type u_2}
[Finite ι]
(R : ι → Type u_1)
[(i : ι) → Semiring (R i)]
:
Polynomial ((i : ι) → R i) ≃+* ((i : ι) → Polynomial (R i))
The polynomial ring over a finite product of rings is isomorphic to the product of polynomial rings over individual rings.
Equations
- Polynomial.piEquiv R = RingEquiv.ofBijective (Pi.ringHom fun (i : ι) => Polynomial.mapRingHom (Pi.evalRingHom R i)) ⋯
Instances For
theorem
Polynomial.map_injective
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
(f : R →+* S)
(hf : Function.Injective ⇑f)
:
theorem
Polynomial.map_surjective
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
(f : R →+* S)
(hf : Function.Surjective ⇑f)
:
theorem
Polynomial.map_eq_zero_iff
{R : Type u}
{S : Type v}
[Semiring R]
{p : Polynomial R}
[Semiring S]
{f : R →+* S}
(hf : Function.Injective ⇑f)
:
theorem
Polynomial.map_ne_zero_iff
{R : Type u}
{S : Type v}
[Semiring R]
{p : Polynomial R}
[Semiring S]
{f : R →+* S}
(hf : Function.Injective ⇑f)
:
@[simp]
theorem
Polynomial.mapRingHom_id
{R : Type u}
[Semiring R]
:
mapRingHom (RingHom.id R) = RingHom.id (Polynomial R)
@[simp]
theorem
Polynomial.mapRingHom_comp
{R : Type u}
{S : Type v}
{T : Type w}
[Semiring R]
[Semiring S]
[Semiring T]
(f : S →+* T)
(g : R →+* S)
:
(mapRingHom f).comp (mapRingHom g) = mapRingHom (f.comp g)
@[deprecated Polynomial.eval_natCast_map (since := "2024-04-17")]
theorem
Polynomial.eval_nat_cast_map
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
(f : R →+* S)
(p : Polynomial R)
(n : ℕ)
:
Alias of Polynomial.eval_natCast_map
.
@[deprecated Polynomial.eval_intCast_map (since := "2024-04-17")]
theorem
Polynomial.eval_int_cast_map
{R : Type u_1}
{S : Type u_2}
[Ring R]
[Ring S]
(f : R →+* S)
(p : Polynomial R)
(i : ℤ)
:
Alias of Polynomial.eval_intCast_map
.
theorem
Polynomial.support_map_subset
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
(f : R →+* S)
(p : Polynomial R)
:
theorem
Polynomial.support_map_of_injective
{R : Type u}
{S : Type v}
[Semiring R]
[Semiring S]
(p : Polynomial R)
{f : R →+* S}
(hf : Function.Injective ⇑f)
:
theorem
Polynomial.IsRoot.map
{R : Type u}
{S : Type v}
[CommSemiring R]
[CommSemiring S]
{f : R →+* S}
{x : R}
{p : Polynomial R}
(h : p.IsRoot x)
:
(Polynomial.map f p).IsRoot (f x)
theorem
Polynomial.IsRoot.of_map
{S : Type v}
[CommSemiring S]
{R : Type u_1}
[CommRing R]
{f : R →+* S}
{x : R}
{p : Polynomial R}
(h : (Polynomial.map f p).IsRoot (f x))
(hf : Function.Injective ⇑f)
:
p.IsRoot x
theorem
Polynomial.isRoot_map_iff
{S : Type v}
[CommSemiring S]
{R : Type u_1}
[CommRing R]
{f : R →+* S}
{x : R}
{p : Polynomial R}
(hf : Function.Injective ⇑f)
: