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 Zle_Zpred_inv : forall z1 z2 : Z, (z1 <= Zpred z2)%Z -> (z1 < z2)%Z.