| mklist(false, i→n(i0)) ≠ [], # int2bits(i / 2) = m + 1, 0 < i, 1 < i, 0 ≤ i0, 0 ≤ i, i0 < 31, mklist(false, i→n(i0)).first ⊦ m = 0, mklist(false, i→n(i0)) + int2bits(i / 2) = [], bits2uint(true ' + sublist(0, m - 1, (mklist(false, i→n(i0)) + int2bits(i / 2)).rest) + (mklist(false, i→n(i0)) + int2bits(i / 2))[m] ') = bits2int(true ' + sublist(0, m - 1, (mklist(false, i→n(i0)) + int2bits(i / 2)).rest) + (mklist(false, i→n(i0)) + int2bits(i / 2))[m] ') |
# int2bits(i / 2) = m + 1, 0 ≤ i, i0 < 31, mklist(false, i→n(i0)).first, 0 < i, 1 < i, 0 < i0 ⊦ m = 0, mklist(false, i→n(i0)) + int2bits(i / 2) = [], bits2uint(true ' + sublist(0, m - 1, mklist(false, i→n(i0)).rest + int2bits(i / 2)) + (mklist(false, i→n(i0)) + int2bits(i / 2))[m] ') = bits2int(true ' + sublist(0, m - 1, mklist(false, i→n(i0)).rest + int2bits(i / 2)) + (mklist(false, i→n(i0)) + int2bits(i / 2))[m] '), i0 = 0
Used simplifier rules: ⊦ i < j ∧ 0 ≤ i → 0 < j; (forward)% ⊦ i ≠ j → (i ≤ j ↔ i < j);% ⊦ i→n(i) = 0 ↔ i = 0;% ⊦ mklist(boolvar, m) = [] ↔ m = 0;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits ≠ [] → (bits + bits0).rest = bits.rest + bits0;