proposition: Lemma plus_apply : forall (p q : RX) x, (p[+]q) ! x [=] p ! x[+]q ! x.
proof: Proof. intros. pattern p, q in |- *; apply poly_double_comp_ind. intros. astepl (p1[+]q1) ! x. astepr (p1 ! x[+]q1 ! x). algebra. simpl in |- *. algebra. intros. astepl (c[+]d[+]x[*](p0[+]q0) ! x). astepr (c[+]x[*]p0 ! x[+](d[+]x[*]q0 ! x)). astepl (c[+]d[+]x[*](p0 ! x[+]q0 ! x)). astepl (c[+]d[+](x[*]p0 ! x[+]x[*]q0 ! x)). astepl (c[+](d[+](x[*]p0 ! x[+]x[*]q0 ! x))). astepr (c[+](x[*]p0 ! x[+](d[+]x[*]q0 ! x))). astepl (c[+](d[+]x[*]p0 ! x[+]x[*]q0 ! x)). astepr (c[+](x[*]p0 ! x[+]d[+]x[*]q0 ! x)). algebra. Qed.
imports: CoRN.algebra.CRing_Homomorphisms CoRN.tactics.Rational