| # 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))) |
# int2bits(i) < n, 0 ≤ i ⊦ 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)))
Used simplifier rules: ⊦ m < n → m ≤ n;% ⊦ int2bits(j) ≠ [];% ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ int2bits(j).first ↔ j < 0;