| 2 + # bits + m = # fillsgn(2 + # bits + m, mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits)), # bits1 = 2 + # bits, # bits3 < m ⊦ bits1 = [], bits3 = [], bits3 + bits1 = [], bits2 + mklist(false, m) = [], mklist(false, m) + bitsand(bits1, false ' + true ' + bits) = fillsgn(2 + # bits + m, mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits)), # bits3 = m, bits3.first |
⊦ # bits ≤ n ∧ bits ≠ [] → fillsgn(n, bits) = mklist(bits.first, n - # bits) + bits
¬ ( #(mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits)) ≤ 2 + # bits + m ∧ mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits) ≠ []), 2 + # bits + m = # fillsgn(2 + # bits + m, mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits)), # bits1 = 2 + # bits, # bits3 < m ⊦ bits1 = [], bits3 = [], bits3 + bits1 = [], bits2 + mklist(false, m) = [], mklist(false, m) + bitsand(bits1, false ' + true ' + bits) = fillsgn(2 + # bits + m, mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits)), # bits3 = m, bits3.first
#(mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits)) ≤ 2 + # bits + m ∧ mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits) ≠ [], 2 + # bits + m = # ( mklist ((mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits)).first, 2 + # bits + m - #(mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits))) + mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits)), # bits1 = 2 + # bits, # bits3 < m ⊦ bits1 = [], bits3 = [], bits3 + bits1 = [], bits2 + mklist(false, m) = [], mklist(false, m) + bitsand(bits1, false ' + true ' + bits) = mklist ((mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits)).first, 2 + # bits + m - #(mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits))) + mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits), # bits3 = m, bits3.first
Used terms: mklist(false, # bits3) + bitsand(bits1, false ' + true ' + bits), 2 + # bits + m