| int2bits(i % 2).butlast = [], abs(j) = 1, i < ~1, i < 0 ⊦ i→n(1) + # int2bits(i % 2) = 0, int2bits((i - 1) / 2) + int2bits(i % 2) = [], j = 0, bits2int(true ' + firstn(# int2bits((i - 1) / 2), mklist(true, i→n(1) - 1) + int2bits((i - 1) / 2))) = (i - 1) / 2 |
int2bits(i % 2).butlast = [], abs(j) = 1, i < ~1, i < 0 ⊦ int2bits((i - 1) / 2) + int2bits(i % 2) = [], j = 0, bits2int(true ' + int2bits((i - 1) / 2)) = (i - 1) / 2
Used simplifier rules: ⊦ firstn(# bits, bits) = bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ [] + bits = bits;% ⊦ mklist(boolvar, 0) = [];% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + 1 ≠ 0;