| 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) ⊦ 32 - i→n(band(j, 31)) = 0, band(j, 31) = 0, bits2uint(firstn(32 - i→n(band(j, 31)), fillsgn(32, int2bits(i)))) = bits2int(true ' + firstn(32 - i→n(band(j, 31)), fillsgn(32, int2bits(i)))) + 2 ^ (32 - band(j, 31)), false ∈ int2bits(31).rest, firstn(32 - i→n(band(j, 31)), fillsgn(32, int2bits(i))).first |
⊦ n ≠ 0 ∧ bits ≠ [] → (firstn(n, bits).first ↔ bits.first)
Used simplifier rules: band-commutativity: ⊦ band(i, j) = band(j, i);%band-commutativity: ⊦ band(i, j) = band(j, i);% ⊦ int2bits(j) ≠ [];% ⊦ fillsgn(n, bits) = [] ↔ bits = [] ∧ n = 0;% ⊦ fillsgn(n, int2bits(j)).first ↔ int2bits(j).first;% ⊦ j < 0 → int2bits(j).first; Used terms: fillsgn(32, int2bits(i)), 32 - i→n(band(j, 31))