Definition reducep (L : list (poly A0 eqA ltM)) (p q : poly A0 eqA ltM) :
  Prop :=
  reduce A A0 A1 eqA invA minusA multA divA eqA_dec n ltM ltM_dec L
    (s2p A A0 eqA n ltM p) (s2p A A0 eqA n ltM q).

Theorem reduceplus_divp_lem : forall (a b : list (Term A n)) (Q : list (poly A0 eqA ltM)), reduceplus A A0 A1 eqA invA minusA multA divA eqA_dec n ltM ltM_dec Q a b -> canonical A0 eqA ltM a -> forall x y : poly A0 eqA ltM, s2p A A0 eqA n ltM x = a -> s2p A A0 eqA n ltM y = b -> ~ zerop A A0 eqA n ltM x -> exists r : poly A0 eqA ltM, In r (y :: Q) /\ divp A A0 eqA multA divA n ltM x r /\ ~ zerop A A0 eqA n ltM r.