intros Q p q H'; elim H'; auto.
intros x y z H'0 H'1 H'2 H'3; left; try assumption.
elim H'2;
[ intros H'5; try exact H'5; clear H'2 | intros H'5; clear H'2 | clear H'2 ].
apply ltP_trans with (y := y); auto.
apply ltP_reduce with (1 := cs) (3 := H'0); auto.
apply (ltp_eqp_comp A A0 eqA) with (p := y) (q := x); auto.
apply ltP_reduce with (1 := cs) (3 := H'0); auto.
apply canonical_reduce with (1 := cs) (3 := H'0); auto.
apply canonical_reduce with (1 := cs) (3 := H'0); auto.
Qed.

Theorem reduceplus_skip :
forall (Q : list (poly A0 eqA ltM)) (a b : Term A n) (p q : list (Term A n)),
reduceplus Q p q ->
canonical A0 eqA ltM (pX a p) ->
eqTerm (A:=A) eqA (n:=n) a b -> reduceplus Q (pX a p) (pX b q).