| Constant | Type |
|---|---|
| w2i | :'a word -> int |
| i2w | :int -> 'a word |
| UINT_MAX | :'a itself -> int |
| INT_MIN | :'a itself -> int |
| INT_MAX | :'a itself -> int |
|- !i. i2w i = (if i < 0 then $- (n2w (Num ~i)) else n2w (Num i))
|- !w. w2i w = (if word_msb w then ~ & (w2n ($- w)) else & (w2n w))
|- UINT_MAX (:'a) = & (dimword (:'a)) - 1
|- INT_MAX (:'a) = & (INT_MIN (:'a)) - 1
|- INT_MIN (:'a) = ~INT_MAX (:'a) - 1
|- INT_MAX (:i32) = 2147483647
|- INT_MIN (:i32) = ~2147483648
|- UINT_MAX (:i32) = 4294967295
|- 1 <= 2 ** m
|- n < INT_MIN (:'a) ==> (w2i (n2w n) = & n)
|- INT_MIN (:'a) <= n /\ n < dimword (:'a) ==> (w2i (n2w n) = ~ & (dimword (:'a) - n))
|- i2w (w2i w) = w
|- INT_MIN (:'a) <= i /\ i <= INT_MAX (:'a) ==> (w2i (i2w i) = i)
|- word_msb (i2w i) = & (INT_MIN (:'a)) <= i % & (dimword (:'a))