Evaluating a polynomial #
Main definitions #
Polynomial.eval₂
: evaluatep : R[X]
inS
given a ring homf : R →+* S
andx : S
.Polynomial.eval
: evaluatep : R[X]
givenx : R
.Polynomial.IsRoot
:x : R
is a root ofp : R[X]
.Polynomial.comp
: compose two polynomialsp q : R[X]
by evaluatingp
atq
.Polynomial.map
: applyf : R →+* S
to the coefficients ofp : R[X]
.
We also provide the following bundled versions:
Polynomial.eval₂AddMonoidHom
,Polynomial.eval₂RingHom
Polynomial.evalRingHom
Polynomial.compRingHom
Polynomial.mapRingHom
We include results on applying the definitions to C
, X
and ring operations.
Evaluate a polynomial p
given a ring hom f
from the scalar ring
to the target and a value x
for the variable in the target
Equations
- Polynomial.eval₂ f x p = p.sum fun (e : ℕ) (a : R) => f a * x ^ e
Instances For
eval₂AddMonoidHom (f : R →+* S) (x : S)
is the AddMonoidHom
from
R[X]
to S
obtained by evaluating the pushforward of p
along f
at x
.
Equations
- Polynomial.eval₂AddMonoidHom f x = { toFun := Polynomial.eval₂ f x, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Alias of Polynomial.eval₂_natCast
.
eval₂
as a RingHom
for noncommutative rings
Equations
- Polynomial.eval₂RingHom' f x hf = { toFun := Polynomial.eval₂ f x, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
We next prove that eval₂ is multiplicative as long as target ring is commutative (even if the source ring is not).
Equations
- Polynomial.eval₂RingHom f x = { toFun := (↑(Polynomial.eval₂AddMonoidHom f x)).toFun, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
eval x p
is the evaluation of the polynomial p
at x
Equations
- Polynomial.eval = Polynomial.eval₂ (RingHom.id R)
Instances For
Alias of Polynomial.eval₂_at_natCast
.
Alias of Polynomial.eval_natCast
.
Alias of Polynomial.eval_natCast_mul
.
IsRoot p x
implies x
is a root of p
. The evaluation of p
at x
is zero
Equations
- p.IsRoot a = (Polynomial.eval a p = 0)
Instances For
The composition of polynomials as a polynomial.
Equations
- p.comp q = Polynomial.eval₂ Polynomial.C q p
Instances For
Alias of Polynomial.natCast_comp
.
Alias of Polynomial.natCast_mul_comp
.
Alias of Polynomial.mul_X_add_natCast_comp
.
map f p
maps a polynomial p
across a ring hom f
Equations
- Polynomial.map f = Polynomial.eval₂ (Polynomial.C.comp f) Polynomial.X
Instances For
Polynomial.map
as a RingHom
.
Equations
- Polynomial.mapRingHom f = { toFun := Polynomial.map f, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Alias of map_natCast
.
eval r
, regarded as a ring homomorphism from R[X]
to R
.
Equations
- Polynomial.evalRingHom = Polynomial.eval₂RingHom (RingHom.id R)
Instances For
comp p
, regarded as a ring homomorphism from R[X]
to itself.
Equations
- Polynomial.compRingHom = Polynomial.eval₂RingHom Polynomial.C
Instances For
Polynomial evaluation commutes with List.prod
Polynomial evaluation commutes with Multiset.prod
Polynomial evaluation commutes with Finset.prod
Alias of map_intCast
.
Alias of Polynomial.eval_intCast
.
Alias of Polynomial.intCast_comp
.
Alias of Polynomial.eval₂_at_intCast
.
Alias of Polynomial.mul_X_sub_intCast_comp
.