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