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