| i < 0, i < ~1 ⊦ int2bits((i - 1) / 2) + int2bits(i % 2) = [], i→n(j) + # int2bits(i % 2) = 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))), j = 0 |
⊦ bits ≠ [] → (bits0 + bits).butlast = bits0 + bits.butlast
int2bits(i % 2) ≠ [], i < 0, i < ~1 ⊦ int2bits((i - 1) / 2) + int2bits(i % 2) = [], i→n(j) + # int2bits(i % 2) = 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))), j = 0
Used simplifier rules: ⊦ int2bits(j) ≠ []; Used terms: int2bits(i % 2), int2bits((i - 1) / 2)