| i < ~1, i < 0 ⊦ j = 0, bits2int(firstn(# int2bits((i - 1) / 2) + 1, (mklist(true, i→n(j)) + int2bits((i - 1) / 2) + int2bits(i % 2)).butlast)) = bits2int(firstn(# int2bits((i - 1) / 2), mklist(true, i→n(abs(j) - 1)) + int2bits((i - 1) / 2))), i→n(j) + # int2bits(i % 2) = 0 |
⊦ bits ≠ [] → (bits0 + bits).butlast = bits0 + bits.butlast
int2bits((i - 1) / 2) + int2bits(i % 2) ≠ [], i < ~1, i < 0 ⊦ j = 0, bits2int(firstn(# int2bits((i - 1) / 2) + 1, mklist(true, i→n(j)) + (int2bits((i - 1) / 2) + int2bits(i % 2)).butlast)) = bits2int(firstn(# int2bits((i - 1) / 2), mklist(true, i→n(abs(j) - 1)) + int2bits((i - 1) / 2))), i→n(j) + # int2bits(i % 2) = 0
Used simplifier rules: ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ int2bits(j) ≠ [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1; Used terms: int2bits((i - 1) / 2) + int2bits(i % 2), mklist(true, i→n(j))