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