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