C, eval₂, and coefficient-mapping as ring homomorphisms #
CPolynomial.C, CPolynomial.eval₂ and coefficient-mapping bundled as RingHoms, plus a
ring-hom extensionality principle transported from Mathlib's Polynomial.ringHom_ext.
CHom and eval₂Hom are computable; toPolyRingHom is the noncomputable bundling of
toPoly (it is CPolynomial.ringEquiv), used in proofs only. These are the bundled-map
building blocks behind the computable finSuccEquivNth construction for CMvPolynomial.
toPoly is injective — it is the forward map of CPolynomial.ringEquiv.
CPolynomial.eval is the identity-coefficient case of eval₂.
CPolynomial.C bundled as a ring homomorphism. Computable.
Instances For
toPoly bundled as a ring homomorphism (it is CPolynomial.ringEquiv). Noncomputable;
used in proofs only, e.g. to bring MvPolynomial.eval₂_comp_left to bear.
Instances For
Two ring homomorphisms out of CPolynomial R are equal once they agree on the constants and
on X.
CPolynomial.eval₂ bundled as a ring homomorphism (the coefficient map f and the point x
are fixed). Computable when S's ring operations are.
Instances For
Map the coefficients of a computable univariate polynomial along a ring homomorphism. Computable.
Instances For
Evaluating a coefficient-mapped polynomial: eval x (mapRingHom f p) = eval₂ f x p.
toPoly commutes with coefficient-mapping.
Coefficient-mapping does not increase the degree.