| 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))) |
n0 = n2 + n1 ∧ n1 ≤ n0, 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, n2, int2bits(i)))
Used simplifier rules: lels-01: ⊦ ¬ m ≤ n ↔ n < m; from specification nat%ls-02: ⊦ m < n → ¬ n < m; from specification nat-basic1%n ≤ m ⊦ n0 = m - n ↔ m = n0 + n; (elim) Used terms: n0, n1, n