intros.
elim (tech_opp_pos_negZ q); intros; elim H2.
elim (tech_opp_pos_negZ n); intros; elim H3.
rewrite (mult_opp_opp Z IdZ addZ multZ OZ oppZ Z_ring (pos n) (neg q) I I).
apply (tech_div3 n0 n q r H H0).
Qed.

(* Specifications: *)
(****************)
Lemma inversibleZ :
forall x : Z, inversible Z multZ IZ x -> x = IZ \/ x = oppZ IZ.