| ¬(¬(∃ i. j = ~(2 ^ i)) ∧ j < 0), j < 0, # int2bits(j) < # int2bits(~ j) ⊦ j + 2 ^ n→i(# int2bits(j) - 1) = 0, j = 0, band(j, 2 ^ n→i(# int2bits(j)) - 1) = bits2uint(int2bits(j)) |
2 ^ i + j = 0, j < 0, # int2bits(j) < # int2bits(~ j) ⊦ j + 2 ^ n→i(# int2bits(j) - 1) = 0, j = 0, band(j, 2 ^ n→i(# int2bits(j)) - 1) = bits2uint(int2bits(j))
Used simplifier rules: ⊦ i < j → ¬ j < i;% ⊦ i ≠ j → (i ≤ j ↔ i < j);% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ ~ i = j ↔ i + j = 0;