| 0 ≤ i ⊦ int2bits(~(2 ^ i)) = true ' + mklist(false, i→n(i)) |
⊦ i < 0 → int2bits(i) = sgn(bitsinvert(uint2bits(abs(i))) +1)
Used simplifier rules: uint2bits-2pot: 0 ≤ i ⊦ uint2bits(2 ^ i) = false ' + true ' + mklist(false, i→n(i));% ⊦ 0 < i → (0 < i ^ j ↔ i = 1 ∨ 0 ≤ j);% ⊦ ~ i < 0 ↔ 0 < i;% ⊦ abs(~ i) = abs(i);% ⊦ abs(2 ^ i) = 2 ^ i;% ⊦ i ≤ j → (¬ ¬ j < i ↔ false);% ⊦ ¬ i ≤ j ↔ j < i;% ⊦ bitsinvert(false ' + bits) = true + bitsinvert(bits);% ⊦ bitsinvert(true ' + bits) = false + bitsinvert(bits);% ⊦ bitsinvert(mklist(boolvar, n)) = mklist(¬ boolvar, n);% ⊦ boolvar + bits = boolvar ' + bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ (bits + false ' + bits0)+1 = bits + (false ' + bits0)+1;% ⊦ (false ' + mklist(true, n))+1 = true ' + mklist(false, n);% ⊦ sgn(boolvar ' + boolvar ' + bits) = sgn(boolvar ' + bits);% ⊦ sgn(true ' + mklist(false, n)) = true ' + mklist(false, n);% ⊦ bits + bits0 = bits + bits1 ↔ bits0 = bits1; Used terms: ~(2 ^ i)