| 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))) = bits2int(firstn(# int2bits((i - 1) / 2), mklist(true, i→n(abs(j) - 1)) + int2bits((i - 1) / 2))) |
⊦ n < # bits → firstn(n, bits) = firstn(n, bits.butlast)
¬ # int2bits((i - 1) / 2) + 1 < #(mklist(true, i→n(j)) + 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))) = bits2int(firstn(# int2bits((i - 1) / 2), mklist(true, i→n(abs(j) - 1)) + int2bits((i - 1) / 2)))
# int2bits((i - 1) / 2) + 1 < #(mklist(true, i→n(j)) + 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)))
Used terms: mklist(true, i→n(j)) + int2bits((i - 1) / 2) + int2bits(i % 2), # int2bits((i - 1) / 2) + 1