intros a b Q H' H'0.
apply
reduceplus_divp_lem
with (a := s2p A A0 eqA n ltM a) (b := s2p A A0 eqA n ltM b);
auto.
apply canonical_s2p; auto.
Qed.

(* Specifications: *)
Theorem reducestar_divp :
forall (a b : poly A0 eqA ltM) (Q : list (poly A0 eqA ltM)),
reducestar A A0 A1 eqA invA minusA multA divA eqA_dec n ltM ltM_dec Q
(s2p A A0 eqA n ltM a) (s2p A A0 eqA n ltM b) ->
~ zerop A A0 eqA n ltM a ->
exists r : poly A0 eqA ltM,
In r (b :: Q) /\
divp A A0 eqA multA divA n ltM a r /\ ~ zerop A A0 eqA n ltM r.