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).