Definition spolyp : poly A0 eqA ltM -> poly A0 eqA ltM -> poly A0 eqA ltM.

(* Specifications: *)
Theorem red_com : forall (a b : poly A0 eqA ltM) (aL : list (poly A0 eqA ltM)), red (spolyp a b) aL -> red (spolyp b a) aL.
Theorem rstar_rtopO : forall (Q : list (poly A0 eqA ltM)) (p : list (Term A n)), canonical A0 eqA ltM p -> reduceplus A A0 A1 eqA invA minusA multA divA eqA_dec n ltM ltM_dec Q p (pO A n) -> reducestar A A0 A1 eqA invA minusA multA divA eqA_dec n ltM ltM_dec Q p (pO A n).