| # bits = i→n(i) + 1, int2bits(j) = bits0 + bits, i→n(i) < # bits, 0 < i, i→n(i) < # bits0 + # bits ⊦ bits2int(bitsand(bits, false ' + mklist(true, i→n(i)))) = bits2uint(lastn(i→n(i), bits0 + bits)), i→n(i) = # bits0 + # bits, bits = [] |
⊦ n ≤ # bits → lastn(n, bits0 + bits) = lastn(n, bits)
i→n(i) ≤ # bits, # bits = i→n(i) + 1, int2bits(j) = bits0 + bits, i→n(i) < # bits, 0 < i, i→n(i) < # bits0 + # bits ⊦ bits2int(bitsand(bits, false ' + mklist(true, i→n(i)))) = bits2uint(lastn(i→n(i), bits)), i→n(i) = # bits0 + # bits, bits = []
Used simplifier rules: ⊦ ¬ m ≤ n ↔ n < m;% ⊦ m < n → ¬ n < m; Used terms: bits, bits0, i→n(i)