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

(* Specifications: *)
Theorem multTerm_eqTerm_inv :
forall a b c : Term A n,
eqTerm (A:=A) eqA (n:=n) (multTerm (A:=A) multA (n:=n) a b)
(multTerm (A:=A) multA (n:=n) a c) ->
~ zeroP (A:=A) A0 eqA (n:=n) a -> eqTerm (A:=A) eqA (n:=n) b c.