(* OZ *)
reflexivity.
(* pos n *)
simple induction n.
(* pos O *)
reflexivity.
(* pos (S y) *)
intros y H; rewrite (tech_mult_posZ y IZ); rewrite H.
rewrite (add_IZ_succZ (pos y)); reflexivity.
(* neg n *)
simple induction n.
(* neg O *)
reflexivity.
(* neg (S y) *)
intros y H; rewrite (tech_mult_negZ y IZ); rewrite H; unfold IZ in |- *;
unfold oppZ in |- *.
rewrite (add_mIZ_predZ (neg y)); reflexivity.
Qed.

(* Specifications: *)
(*************)
Lemma mult_mIZ : forall x : Z, multZ x (neg 0) = oppZ x.
simple destruct x.