| # int2bits(i) < n, 0 ≤ i ⊦ bits2int(firstn(n, mklist(false, i→n(j)) + fillsgn(n, int2bits(i)))) = bits2int(firstn(# int2bits(i), mklist(false, i→n(j)) + int2bits(i))) |
⊦ # bits ≤ n ∧ bits ≠ [] → fillsgn(n, bits) = mklist(bits.first, n - # bits) + bits
# int2bits(i) ≤ n ∧ int2bits(i) ≠ [], # int2bits(i) < n, 0 ≤ i ⊦ bits2int(firstn(n, mklist(false, i→n(j)) + mklist(int2bits(i).first, n - # int2bits(i)) + int2bits(i))) = bits2int(firstn(# int2bits(i), mklist(false, i→n(j)) + int2bits(i)))
Used simplifier rules: ⊦ ¬ m ≤ n ↔ n < m;% ⊦ m < n → ¬ n < m;% ⊦ int2bits(j) ≠ []; Used terms: int2bits(i), n