intros a b nZb p q H' H'0 H'1; apply canonical_spminusf; auto.
apply canonical_imp_canonical with (a := a); auto.
apply canonical_imp_canonical with (a := b); auto.
Qed.
Hint Resolve canonical_spminusf_full.

(* Specifications: *)
Theorem canonical_spminusf_full_t :
forall (a b : Term A n) (nZb : ~ zeroP (A:=A) A0 eqA (n:=n) b)
(p q : list (Term A n)),
canonical A0 eqA ltM (pX a p) ->
canonical A0 eqA ltM (pX b q) ->
divP A A0 eqA multA divA n a b ->
canonical A0 eqA ltM (pX a (spminusf a b nZb p q)).