intros x n; case x; simpl in |- *; auto with zarith.
replace 0%Z with (Z_of_nat 0); auto with zarith.
intros p; rewrite <- (inject_nat_convert (Zpos p) p); auto with zarith.
case n; simpl in |- *; intros; red in |- *; simpl in |- *; auto.
Qed.

(* Specifications: *)
Theorem inj_pred :
forall n : nat, n <> 0 -> Z_of_nat (pred n) = Zpred (Z_of_nat n).