| # int2bits(i) < i→n(j), 0 ≤ i, # int2bits(i) < n ⊦ bits2int(firstn(n, mklist(false, i→n(j)) + mklist(false, n - # int2bits(i)) + int2bits(i))) = bits2int(firstn(# int2bits(i), mklist(false, i→n(j)) + int2bits(i))), j = 0 |
⊦ m ≤ # bits → firstn(m, bits + bits0) = firstn(m, bits)
# int2bits(i) ≤ # mklist(false, i→n(j)), # int2bits(i) < i→n(j), 0 ≤ i, # int2bits(i) < n ⊦ bits2int(firstn(n, mklist(false, i→n(j)) + mklist(false, n - # int2bits(i)) + int2bits(i))) = bits2int(firstn(# int2bits(i), mklist(false, i→n(j)))), j = 0
Used simplifier rules: ⊦ # mklist(boolvar, n) = n;% ⊦ ¬ m ≤ n ↔ n < m;% ⊦ m < n → ¬ n < m; Used terms: int2bits(i), mklist(false, i→n(j)), # int2bits(i)