| true ∈ uint2bits(~ j).rest.rest, j < 0 ⊦ bits2uint(bitsinvert(uint2bits(~ j)) +1) = 2 ^ n→i(# bitsinvert(uint2bits(~ j)) +1) + j |
0 < i ⊦ bits2uint(bitsinvert(uint2bits(i)) +1) = 2 ^ n→i(# uint2bits(i)) - i
0 < ~ j, true ∈ uint2bits(~ j).rest.rest, j < 0 ⊦ 2 ^ n→i(# uint2bits(~ j)) - ~ j = 2 ^ n→i(# bitsinvert(uint2bits(~ j)) +1) + j
Used simplifier rules: ⊦ 0 < ~ i ↔ i < 0;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i < j → (¬ ¬ j ≤ i ↔ false); Used terms: ~ j