(* -> *)
case x.
(* OZ *)
reflexivity.
(* pos n *)
intros; exact (tech_add_pos_negZ n).
(* neg n *)
intros; exact (tech_add_neg_posZ n).
(* <- *)
case x.
(* OZ *)
reflexivity.
(* pos n *)
intros; exact (tech_add_neg_posZ n).
(* neg n *)
intros; exact (tech_add_pos_negZ n).
Qed.

(**************)
Theorem Z_group : is_group Z IdZ addZ OZ oppZ.
split.