proposition: Lemma in_qpoly_comp_horner (p q : {poly R}) : in_qpoly h (p \Po q) = (map_poly (qpolyC h) p).[in_qpoly h q].
proof: Proof. have hQM := monic_mk_monic h. rewrite comp_polyE /map_poly poly_def horner_sum /=. apply: val_inj. rewrite /= rmodp_sum // poly_of_qpoly_sum. apply: eq_bigr => i _. rewrite !hornerE /in_qpoly /=. rewrite mul_polyC // !rmodpZ //=. by rewrite poly_of_qpolyX /= rmodp_id // rmodpX // rmodp_id. Qed.
imports: HB(structures) mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat seq choice fintype tuple) mathcomp(div bigop binomial finset finfun ssralg countalg finalg) mathcomp(poly polydiv qpoly perm fingroup falgebra fieldext finfield galois) mathcomp(finalg zmodp matrix vector)