Definition usize := Int.size.Definition ssize (i: int) := Int.size (if Int.lt i Int.zero then Int.not i else i) + 1.

(* Specifications: *)
Lemma is_uns_usize: forall i, is_uns (usize i) i.
Lemma is_sgn_ssize: forall i, is_sgn (ssize i) i.
Lemma is_uns_zero_ext: forall n i, is_uns n i <-> Int.zero_ext n i = i.
Lemma is_sgn_sign_ext: forall n i, 0 < n -> (is_sgn n i <-> Int.sign_ext n i = i).
Lemma is_zero_ext_uns: forall i n m, is_uns m i \/ n <= m -> is_uns m (Int.zero_ext n i).
Lemma is_zero_ext_sgn: forall i n m, n < m -> is_sgn m (Int.zero_ext n i).
Lemma is_sign_ext_uns: forall i n m, 0 <= m < n -> is_uns m i -> is_uns m (Int.sign_ext n i).
Lemma is_sign_ext_sgn: forall i n m, 0 < n -> 0 < m -> is_sgn m i \/ n <= m -> is_sgn m (Int.sign_ext n i).
Lemma is_uns_1: forall n, is_uns 1 n -> n = Int.zero \/ n = Int.one.