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