| bits2int(sublist(0, # int2bits(i + 1), mklist(int2bits(i + 1).first, i→n(0)) + int2bits(i + 1))) = i + 1 ⊦ i = i >> 0 |
⊦ i = i >> 0
Used simplifier rules: ⊦ i + j = i + i0 ↔ j = i0;% ⊦ bits2int(int2bits(i)) = i;% ⊦ sublist(0, # bits, bits) = bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ [] + bits = bits;% ⊦ mklist(boolvar, 0) = [];% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + (* j) < (* j0) ↔ i < j0 - j;% ⊦ int2bits(j).first ↔ j < 0;