| int2bits(31) = boolvar + bits ∧ int2bits(31) ≠ [], ~2147483648 ≤ i, i < 0, false ∈ bits ⊦ band(j, 31) = 0, bits2int(sublist(0, # fillsgn(32, int2bits(i)), mklist(false, i→n(band(j, 31))) + fillsgn(32, int2bits(i)))) = bits2int(int2bits(2) + mklist(false, i→n(band(~(j + 1), 31)))) + (i i>> j) |
int2bits(31) = false ' + bits, false ∈ bits, i < 0, ~2147483648 ≤ i, false ∈ int2bits(31) ⊦ bits2int(sublist(0, # fillsgn(32, int2bits(i)), mklist(false, i→n(band(j, 31))) + fillsgn(32, int2bits(i)))) = bits2int(int2bits(2) + mklist(false, i→n(band(~(j + 1), 31)))) + (i i>> j), band(j, 31) = 0
Used simplifier rules: ⊦ boolvar ' + bits = bits0 → boolvar ∈ bits0; (forward)% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ int2bits(i) = boolvar ' + bits ∧ 0 ≤ i → ¬ boolvar; (forward)% ⊦ int2bits(j) ≠ [];% ⊦ boolvar + bits = boolvar ' + bits;