intros; elim n.
(* O *)
simpl in |- *; reflexivity.
(* S y *)
intros y H; rewrite (tech_mult_negZ y (pos m)); unfold oppZ in |- *;
rewrite H.
rewrite (tech_add_neg_negZ (y * m + (y + m)) m).
elim (technical_lemma y m); reflexivity.
Qed.

(* Specifications: *)
(**************************)
Theorem multZ_associativity : associativity Z multZ.
unfold associativity in |- *; intros; elim x.