| # int2bits(i) ≤ 32, 2 * 2 ^ (31 - band(j, 31)) = 2 ^ (32 - band(j, 31)), ~2147483648 ≤ i, i < 0, band(j, 31) ≤ 31, 0 < band(j, 31) ⊦ band(j, 31) = 0, bits2int(sublist(0, # fillsgn(32, int2bits(i)), mklist(false, i→n(band(j, 31))) + fillsgn(32, int2bits(i)))) = bits2int(sublist(0, 32, mklist(int2bits(i).first, i→n(band(j, 31))) + fillsgn(32, int2bits(i)))) + 2 ^ (32 - band(j, 31)), false ∈ int2bits(31).rest |
2 * 2 ^ (31 - band(j, 31)) = 2 ^ (32 - band(j, 31)), # int2bits(i) ≤ 32, ~2147483648 ≤ i, i < 0, band(j, 31) ≤ 31, 0 < band(j, 31) ⊦ band(j, 31) = 0, bits2int(sublist(0, 32, mklist(false, i→n(band(j, 31))) + fillsgn(32, int2bits(i)))) = 2 ^ (32 - band(j, 31)) + bits2int(sublist(0, 32, mklist(true, i→n(band(j, 31))) + fillsgn(32, int2bits(i)))), false ∈ int2bits(31).rest
Used simplifier rules: band-commutativity: ⊦ band(i, j) = band(j, i);% ⊦ j < 0 → int2bits(j).first;% ⊦ # bits ≤ n → # fillsgn(n, bits) = n;