| 0 ≤ 2, ~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(uint2bits(2) + mklist(false, 31 - i→n(band(j, 31)))) + (i i>> j), false ∈ int2bits(31).rest |
~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)))) = (i i>> j) + bits2uint(true ' + false ' + mklist(false, 31 - i→n(band(j, 31)))), false ∈ int2bits(31).rest
Used simplifier rules: band-commutativity: ⊦ band(i, j) = band(j, i);% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits2int(false ' + bits) = bits2uint(bits);% ⊦ bits + boolvar = bits + boolvar ';% ⊦ boolvar + boolvar0 = boolvar ' + boolvar0 ';% ⊦ uint2bits(1) = false + true;%1 < i ⊦ uint2bits((* i)) = uint2bits(i / 2) + (i % 2 = 1);