proposition: Lemma horner_sub p q x : horner tt (sub tt p q) x = (horner tt p x - horner tt q x)%R.
proof: Proof. rewrite !(@hornerE_wide (maxn (size p) (size q))). rewrite /Rminus. rewrite (big_endo Ropp); first last. by rewrite Ropp_0. exact: Ropp_plus_distr. rewrite -big_split; apply: eq_bigr => i _ /=. by rewrite -/(Rminus _ _) nth_sub Rmult_minus_distr_r. exact: leq_maxr. exact: leq_maxl. by rewrite size_sub. Qed.
imports: Coq(ZArith Reals) Coquelicot(Coquelicot) mathcomp.ssreflect(ssreflect ssrfun ssrbool eqtype ssrnat seq fintype bigop) Flocq(Core) Stdlib MathComp Interval Xreal Basic_rec