Theory of univariate polynomials #
The main defs here are eval₂
, eval
, and map
.
We give several lemmas about their interaction with each other and with module 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
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 = { toZeroHom := { toFun := Polynomial.eval₂ f x, map_zero' := ⋯ }, map_add' := ⋯ }
Instances For
eval₂
as a RingHom
for noncommutative rings
Equations
- Polynomial.eval₂RingHom' f x hf = { toMonoidHom := { toOneHom := { 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
- One or more equations did not get rendered due to their size.
Instances For
eval x p
is the evaluation of the polynomial p
at x
Equations
- Polynomial.eval = Polynomial.eval₂ (RingHom.id R)
Instances For
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}.$$
Polynomial.eval
as linear map
Equations
- Polynomial.leval r = { toAddHom := { toFun := fun (f : Polynomial R) => Polynomial.eval r f, map_add' := ⋯ }, map_smul' := ⋯ }
Instances For
IsRoot p x
implies x
is a root of p
. The evaluation of p
at x
is zero
Equations
- Polynomial.IsRoot p a = (Polynomial.eval a p = 0)
Instances For
The composition of polynomials as a polynomial.
Equations
- Polynomial.comp p q = Polynomial.eval₂ Polynomial.C q p
Instances For
map f p
maps a polynomial p
across a ring hom f
Equations
- Polynomial.map f = Polynomial.eval₂ (RingHom.comp Polynomial.C f) Polynomial.X
Instances For
Polynomial.map
as a RingHom
.
Equations
- Polynomial.mapRingHom f = { toMonoidHom := { toOneHom := { toFun := Polynomial.map f, map_one' := ⋯ }, map_mul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }
Instances For
If R
and S
are isomorphic, then so are their polynomial rings.
Equations
Instances For
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
we have made eval₂
irreducible from the start.
Perhaps we can make also eval
, comp
, and map
irreducible too?
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