Local Open Scope logic.
Inductive repr : Z -> val -> Prop :=
| mk_repr : forall z, z >= 0 -> repr z (Vint (Int.repr z)).

(* Specifications: *)
Lemma repr0_not_odd z n :
repr z (Vint n) -> Int.eq n (Int.repr 0) = true -> Z.odd z = false.
Lemma repr0_even z n :
repr z (Vint n) -> Int.eq n (Int.repr 0) = true -> Z.even z = true.
Lemma repr_eq0_not0 z :
Int.eq (Int.repr z) (Int.repr 0) = false -> z <> 0.