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