| i < 0, i < ~1 ⊦ int2bits(i % 2).butlast = [], 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 = # bits0 ∧ (∀ n. n < # bits → (bits[n] ↔ bits0[n]))
i < 0, i < ~1 ⊦ # int2bits(i % 2).butlast = # [] ∧ (∀ n. n < # int2bits(i % 2).butlast → (int2bits(i % 2).butlast[n] ↔ ([])[n])), 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 terms: [], int2bits(i % 2).butlast