intros a b c H' H'1.
apply
(eqTerm_trans _ _ _ _ _ _ _ _ _ cs n)
with (y := multTerm (A:=A) multA (n:=n) b (divTerm a H'1));
auto.
apply
(eqTerm_trans _ _ _ _ _ _ _ _ _ cs n)
with (y := divTerm (multTerm (A:=A) multA (n:=n) b a) H'1);
auto.
apply (eqTerm_sym _ _ _ _ _ _ _ _ _ cs n); auto.
apply
(eqTerm_trans _ _ _ _ _ _ _ _ _ cs n)
with (y := divTerm (multTerm (A:=A) multA (n:=n) a b) H'1);
auto.
apply
(eqTerm_trans _ _ _ _ _ _ _ _ _ cs n)
with (y := multTerm (A:=A) multA (n:=n) c (divTerm a H'1));
auto.
apply
(eqTerm_trans _ _ _ _ _ _ _ _ _ cs n)
with (y := divTerm (multTerm (A:=A) multA (n:=n) c a) H'1);
auto.
apply
(eqTerm_trans _ _ _ _ _ _ _ _ _ cs n)
with (y := divTerm (multTerm (A:=A) multA (n:=n) a c) H'1);
auto.
apply
(eqTerm_trans _ _ _ _ _ _ _ _ _ cs n)
with (y := multTerm (A:=A) multA (n:=n) c (T1 A1 n));
auto.
apply (eqTerm_sym _ _ _ _ _ _ _ _ _ cs n); auto.
Qed.

(* Specifications: *)
Theorem eqT_nzero_divP :
forall (a b : Term A n) (nZb : ~ zeroP (A:=A) A0 eqA (n:=n) b),
eqT a (multTerm (A:=A) multA (n:=n) (divTerm a nZb) b) ->
~ zeroP (A:=A) A0 eqA (n:=n) a -> divP a b.