intros r; elim r; simpl in |- *; auto.
intros a l nZa p q a0 H'0 H'1 H'2 H'3.
cut (canonical A0 eqA ltM l);
[ idtac | apply canonical_imp_canonical with (a := a); auto ];
auto.
cut (~ zeroP (A:=A) A0 eqA (n:=n) a);
[ idtac | apply canonical_nzeroP with (ltM := ltM) (p := l) ];
auto.
Qed.
Hint Resolve canonical_Rminus.

(* Specifications: *)
Theorem Rminus_in :
forall (r p q : list (Term A n)) (a b : Term A n)
(nZb : ~ zeroP (A:=A) A0 eqA (n:=n) b),
divPp b r ->
In a p ->
canonical A0 eqA ltM p ->
canonical A0 eqA ltM (pX b q) ->
canonical A0 eqA ltM (pX a r) -> In a (Rminus b nZb p (pX b q) r).