| ~1 = (2 ^ n→i(# int2bits(~ j)) + j) % 2, 2 ^ n→i(# int2bits(~ j)) + j < 0, j < 0 ⊦ ~1 = 2 ^ n→i(# int2bits(~ j)) + j, true ∈ uint2bits(~((2 ^ n→i(# int2bits(~ j)) + j) / 2)) |
⊦ 0 < j → true ∈ uint2bits(j)
Used simplifier rules: ⊦ 0 < ~ i ↔ i < 0;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ 0 ≤ i / 2 ↔ ~1 ≤ i;% ⊦ i < 0 → (~1 ≤ i ↔ i = ~1); Used terms: ~((2 ^ n→i(# int2bits(~ j)) + j) / 2)