| # bits1 = 2 + # bits, sgn(mklist(boolvar, n - 1) + boolvar ' + boolvar0 ' + bits) = boolvar ' + boolvar0 ' + bits ⊦ bits3 = [], lastn(n + 1 + # bits, fillsgn(n + 1 + # bits, bitsand(bits3 + bits1, boolvar ' + boolvar0 ' + bits))) = lastn(n + 1 + # bits, fillsgn(n + 1 + # bits, bitsand((bits2 + mklist(boolvar, n - 1)) + boolvar ' + boolvar0 ' + bits, bits3 + bits1))), n = 0, boolvar ↔ boolvar0, bits3 + bits1 = [], boolvar ∧ boolvar0 |
⊦ # bits1 ≤ # bits0 ∧ bits1 ≠ [] ∧ ¬ bits1.first → bitsand(bits + bits0, bits1) = bitsand(bits0, bits1)
¬(#(boolvar ' + boolvar0 ' + bits) ≤ # bits1 ∧ boolvar ' + boolvar0 ' + bits ≠ [] ∧ ¬ (boolvar ' + boolvar0 ' + bits).first), # bits1 = 2 + # bits, sgn(mklist(boolvar, n - 1) + boolvar ' + boolvar0 ' + bits) = boolvar ' + boolvar0 ' + bits ⊦ bits3 = [], lastn(n + 1 + # bits, fillsgn(n + 1 + # bits, bitsand(bits3 + bits1, boolvar ' + boolvar0 ' + bits))) = lastn(n + 1 + # bits, fillsgn(n + 1 + # bits, bitsand((bits2 + mklist(boolvar, n - 1)) + boolvar ' + boolvar0 ' + bits, bits3 + bits1))), n = 0, boolvar ↔ boolvar0, bits3 + bits1 = [], boolvar ∧ boolvar0
#(boolvar ' + boolvar0 ' + bits) ≤ # bits1 ∧ boolvar ' + boolvar0 ' + bits ≠ [] ∧ ¬ (boolvar ' + boolvar0 ' + bits).first, # bits1 = 2 + # bits, sgn(mklist(boolvar, n - 1) + boolvar ' + boolvar0 ' + bits) = boolvar ' + boolvar0 ' + bits ⊦ bits3 = [], lastn(n + 1 + # bits, fillsgn(n + 1 + # bits, bitsand(bits1, boolvar ' + boolvar0 ' + bits))) = lastn(n + 1 + # bits, fillsgn(n + 1 + # bits, bitsand((bits2 + mklist(boolvar, n - 1)) + boolvar ' + boolvar0 ' + bits, bits3 + bits1))), n = 0, boolvar ↔ boolvar0, bits3 + bits1 = [], boolvar ∧ boolvar0
Used terms: boolvar ' + boolvar0 ' + bits, bits1, bits3