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