Variables (iR : ringType) (f : {additive aR -> rR}).
Local Notation "p ^f" := (map_poly (GRing.Additive.apply f) p) : ring_scope.

(* Specifications: *)
Lemma coef_map p i : p^f`_i = f p`_i.
Canonical map_poly_rmorphism := RMorphism map_poly_is_rmorphism.
Lemma map_polyZ c p : (c *: p)^f = f c *: p^f.
Lemma horner_map p x : p^f.[f x] = f p.[x].
Lemma map_comm_poly p x : comm_poly p x -> comm_poly p^f (f x).
Section HornerMorph.