| # bits = i→n(j), int2bits(i) = bits0 + bits, bitsxor(bits0 + bits, (false ' + true ') + mklist(false, i→n(j))) = bitsxor(bits0, false ' + true ') + bitsxor(bits, mklist(false, i→n(j))), bits0 = bits0.first ', 0 ≤ j, 0 ≤ i, 2 ^ j * 2 < i ⊦ bits = [], bits0 = [], bitsxor(bits0, false ' + true ') + bitsxor(bits, mklist(false, i→n(j))) = [], (sgn(bitsxor(bits0, false ' + true ') + bitsxor(bits, mklist(false, i→n(j))))[0] ↔ ¬ bits0.first) ∧ sgn(bitsxor(bits0, false ' + true ') + bitsxor(bits, mklist(false, i→n(j))))[0, bits0.first] = bits0 + bits |
bits0 = boolvar + bits1, # bits = i→n(j), int2bits(i) = bits0 + bits, bitsxor(bits0 + bits, (false ' + true ') + mklist(false, i→n(j))) = bitsxor(bits0, false ' + true ') + bitsxor(bits, mklist(false, i→n(j))), bits0 = boolvar ', 0 ≤ j, 0 ≤ i, 2 ^ j * 2 < i ⊦ bits = [], bits0 = [], bitsxor(bits0, false ' + true ') + bitsxor(bits, mklist(false, i→n(j))) = [], (sgn(bitsxor(bits0, false ' + true ') + bitsxor(bits, mklist(false, i→n(j))))[0] ↔ ¬ boolvar) ∧ sgn(bitsxor(bits0, false ' + true ') + bitsxor(bits, mklist(false, i→n(j))))[0, boolvar] = bits0 + bits
Used simplifier rules: ⊦ bits ≠ [] → ( (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0); (elim) Used terms: bits0, boolvar, bits1