Inductive reducestar (Q : list (poly A0 eqA ltM)) :
list (Term A n) -> list (Term A n) -> Prop :=
    reducestar0 :
      forall p q : list (Term A n),
      reduceplus A A0 A1 eqA invA minusA multA divA eqA_dec n ltM ltM_dec Q p
        q ->
      irreducible A A0 A1 eqA invA minusA multA divA eqA_dec n ltM ltM_dec Q
        q -> reducestar Q p q.Inductive reducestar (Q : list (poly A0 eqA ltM)) :
list (Term A n) -> list (Term A n) -> Prop :=
    reducestar0 :
      forall p q : list (Term A n),
      reduceplus A A0 A1 eqA invA minusA multA divA eqA_dec n ltM ltM_dec Q p
        q ->
      irreducible A A0 A1 eqA invA minusA multA divA eqA_dec n ltM ltM_dec Q
        q -> reducestar Q p q.

Theorem reducestar_eqp_com : forall (Q : list (poly A0 eqA ltM)) (p q r s : list (Term A n)), reducestar Q p q -> canonical A0 eqA ltM p -> eqP A eqA n p r -> eqP A eqA n q s -> reducestar Q r s.