| ¬ i < ~1, 2 * 2 ^ (31 - band(j, 31)) = 2 ^ (32 - band(j, 31)), 32 < # int2bits(i), 0 < band(j, 31), band(j, 31) ≤ 31, i < 0, ~2147483648 ≤ i ⊦ bits2int(sublist(0, # fillsgn(32, int2bits(i)), mklist(false, i→n(band(j, 31))) + fillsgn(32, int2bits(i)))) = (i i>> j) + 2 ^ (32 - band(j, 31)), band(j, 31) = 0, false ∈ int2bits(31).rest |
2 * 2 ^ (31 - band(j, 31)) = 2 ^ (32 - band(j, 31)), 32 < # int2bits(~1), 0 < band(j, 31), band(j, 31) ≤ 31 ⊦ bits2int(sublist(0, # fillsgn(32, int2bits(~1)), mklist(false, i→n(band(j, 31))) + fillsgn(32, int2bits(~1)))) = (~1 i>> j) + 2 ^ (32 - band(j, 31)), band(j, 31) = 0, false ∈ int2bits(31).rest
Used simplifier rules: band-commutativity: ⊦ band(i, j) = band(j, i);% ⊦ int2bits(j) ≠ [];% ⊦ # bits = 0 ↔ bits = [];% ⊦ m < n → n ≠ 0; (forward)% ⊦ i < 0 → (~1 ≤ i ↔ i = ~1);% ⊦ ¬ i < j ↔ j ≤ i;