| i < 0, j < 32, 0 < j ⊦ j = 0, i = ~1, bits2int(true ' + sublist(0, # int2bits((i - 1) / 2), (mklist(true, i→n(j) - 1) + int2bits((i - 1) / 2)) + (i % 2 ≠ 0)')) = bits2int(sublist(0, # int2bits((i - 1) / 2), mklist(true, i→n(j - 1)) + int2bits((i - 1) / 2))) |
⊦ n + m ≤ # bits → sublist(n, m, bits + bits0) = sublist(n, m, bits)
0 + # int2bits((i - 1) / 2) ≤ #(mklist(true, i→n(j) - 1) + int2bits((i - 1) / 2)), i < 0, j < 32, 0 < j ⊦ j = 0, i = ~1, bits2int(true ' + sublist(0, # int2bits((i - 1) / 2), mklist(true, i→n(j) - 1) + int2bits((i - 1) / 2))) = bits2int(sublist(0, # int2bits((i - 1) / 2), mklist(true, i→n(j - 1)) + int2bits((i - 1) / 2)))
Used simplifier rules: ⊦ 0 + m = m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m;% ⊦ #(bits + bits0) = # bits + # bits0;% ⊦ # mklist(boolvar, n) = n;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ ¬ m ≤ n ↔ n < m;% ⊦ ¬ m + n < m; Used terms: (i % 2 ≠ 0)', mklist(true, i→n(j) - 1) + int2bits((i - 1) / 2), # int2bits((i - 1) / 2), 0