Qed.
Hint Resolve Z_O_1: zarith.
Definition Z_eq_bool a b :=
match a, b with
| Z0, Z0 => true
| Zpos a', Zpos b' => pos_eq_bool a' b'
| Zneg a', Zneg b' => pos_eq_bool a' b'
| _, _ => false
end.

Theorem Z_eq_bool_correct :
forall p q : Z,
match Z_eq_bool p q with
| true => p = q
| false => p <> q
end.