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