(* This code is copyrighted by its authors; it is distributed under  *)
(* the terms of the LGPL license (see LICENSE and description files) *)
(****************************************************************************  Buchberger : reduction  star  Laurent Thery May 97 (revised April 01)  ****************************************************************************)
Require Export Preduceplus.
Unset Standard Proposition Elimination Names.
Section Preducestar.
Load "hCoefStructure".
Load "hOrderStructure".
Load "hReduceplus".
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.