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