| # mklist(¬ 0 ≤ i, n1) ≤ n0, 32 = n0 + i→n(band(j, 31)), 32 = n1 + # int2bits(i), n1 < n0, band(j, 31) ≤ 32, # int2bits(i) ≤ 32 ⊦ bits2int(sublist(0, # int2bits(i), mklist(¬ 0 ≤ i, i→n(band(j, 31))) + int2bits(i))) = bits2int((¬ 0 ≤ i)' + mklist(¬ 0 ≤ i, n1) + sublist(0, n0 - # mklist(¬ 0 ≤ i, n1), int2bits(i))), band(j, 31) = 0 |
32 = n0 + i→n(band(j, 31)), 32 = n1 + # int2bits(i), n1 < n0, band(j, 31) ≤ 32, # int2bits(i) ≤ 32 ⊦ band(j, 31) = 0, bits2int(sublist(0, # int2bits(i), mklist(¬ 0 ≤ i, i→n(band(j, 31))) + int2bits(i))) = bits2int((¬ 0 ≤ i)' + sublist(0, n0 - n1, int2bits(i)))
Used simplifier rules: lels-03: ⊦ m < n → m ≤ n; from specification nat%a: ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1; from specification list[bitlista]%bits2int-mklist-01: ⊦ bits2int(boolvar ' + mklist(boolvar, n) + bits) = bits2int(boolvar ' + bits); from specification int2bits%mk-len: ⊦ # mklist(boolvar, n) = n; from specification list-last[bitlista]