split. exact I.
intros. split. exact (add_OZ x). unfold addZ in |- *; reflexivity.
Qed.
(*************)
Definition oppZ (x : Z) :=
match x return Z with
| OZ =>
(* OZ *)  OZ (* pos n *)
| pos n => neg n
(* neg n *)
| neg n => pos n
end.

(* Specifications: *)
(*************)
Lemma opp_succZ : forall x : Z, oppZ (succZ x) = predZ (oppZ x).
simple destruct x.