| # bits = 2 + # bits1, sgn(mklist(true, n0 - 1) + true ' + false ' + bits1) = true ' + false ' + bits1, n = # fillsgn(n, mklist(true, n0 - 1) + true ' + false ' + bits1), n0 + 1 + # bits1 < n ⊦ bits2 = [], lastn(n, fillsgn(n, bits2 + bitsand(bits, true ' + false ' + bits1))) = lastn(n, fillsgn(n, bitsand(bits2 + bits, mklist(true, n0 - 1) + true ' + false ' + bits1))), n0 = 0, bits2 + bits = [] |
⊦ # bits = # bits1 ∧ bits0 ≠ [] ∧ bits2 ≠ [] ∧ bits ≠ [] → bitsand(bits0 + bits, bits2 + bits1) = bitsand(bits0, bits2) + bitsand(bits, bits1)
¬(# bits = #(true ' + false ' + bits1) ∧ bits2 ≠ [] ∧ mklist(true, n0 - 1) ≠ [] ∧ bits ≠ []), # bits = 2 + # bits1, sgn(mklist(true, n0 - 1) + true ' + false ' + bits1) = true ' + false ' + bits1, n = # fillsgn(n, mklist(true, n0 - 1) + true ' + false ' + bits1), n0 + 1 + # bits1 < n ⊦ bits2 = [], lastn(n, fillsgn(n, bits2 + bitsand(bits, true ' + false ' + bits1))) = lastn(n, fillsgn(n, bitsand(bits2 + bits, mklist(true, n0 - 1) + true ' + false ' + bits1))), n0 = 0, bits2 + bits = []
# bits = #(true ' + false ' + bits1) ∧ bits2 ≠ [] ∧ mklist(true, n0 - 1) ≠ [] ∧ bits ≠ [], # bits = 2 + # bits1, sgn(mklist(true, n0 - 1) + true ' + false ' + bits1) = true ' + false ' + bits1, n = # fillsgn(n, mklist(true, n0 - 1) + true ' + false ' + bits1), n0 + 1 + # bits1 < n ⊦ bits2 = [], lastn(n, fillsgn(n, bits2 + bitsand(bits, true ' + false ' + bits1))) = lastn(n, fillsgn(n, bitsand(bits2, mklist(true, n0 - 1)) + bitsand(bits, true ' + false ' + bits1))), n0 = 0, bits2 + bits = []
Used terms: true ' + false ' + bits1, mklist(true, n0 - 1), bits, bits2