intros a b c H' H'0 H'1 H'2.
apply
divP_eqTerm_comp
with
(a := plusTerm (A:=A) plusA (n:=n) a (invTerm (A:=A) invA (n:=n) b))
(1 := cs); auto.
apply divP_plusTerm with (1 := cs); auto.
apply (eqT_trans A n) with (1 := H'1); auto.
apply
nzeroP_comp_eqTerm with (1 := cs) (a := minusTerm (A:=A) minusA (n:=n) a b);
auto.
apply (eqTerm_sym _ _ _ _ _ _ _ _ _ cs n); auto.
Qed.
Hint Resolve divP_minusTerm_comp.

(* Specifications: *)
Theorem spminusf_minusTerm :
forall (a b c : Term A n) (nZc : ~ zeroP (A:=A) A0 eqA (n:=n) c)
(p q r : list (Term A n)),
canonical A0 eqA ltM p ->
canonical A0 eqA ltM q ->
canonical A0 eqA ltM r ->
divP A A0 eqA multA divA n a c ->
divP A A0 eqA multA divA n b c ->
eqT a b ->
~ zeroP (A:=A) A0 eqA (n:=n) (minusTerm (A:=A) minusA (n:=n) a b) ->
eqP A eqA n
(spminusf (minusTerm (A:=A) minusA (n:=n) a b) c nZc
(minuspf A A0 A1 eqA invA minusA multA eqA_dec n ltM ltM_dec p q) r)
(minuspf A A0 A1 eqA invA minusA multA eqA_dec n ltM ltM_dec
(spminusf a c nZc p r) (spminusf b c nZc q r)).