| sgn(mklist(boolvar, m) + boolvar ' + boolvar0 ' + bits) = boolvar ' + boolvar0 ' + bits, bits0.first, # bits0 ≤ 2 + # bits, # bits0 ≤ (2 + # bits) + # bits2 ⊦ boolvar ↔ boolvar0, lastn(2 + # bits + m, fillsgn(2 + # bits + m, bitsand(boolvar ' + boolvar0 ' + bits, bits0))) = lastn(2 + # bits + m, (bits2 + mklist(boolvar, m)) + bitsand(boolvar ' + boolvar0 ' + bits, bits0)), bits0 = [], boolvar ∧ boolvar0 |
⊦ (bits + bits0) + bits1 = bits + bits0 + bits1
sgn(mklist(boolvar, m) + boolvar ' + boolvar0 ' + bits) = boolvar ' + boolvar0 ' + bits, bits0.first, # bits0 ≤ 2 + # bits, # bits0 ≤ (2 + # bits) + # bits2 ⊦ boolvar ↔ boolvar0, lastn(2 + # bits + m, fillsgn(2 + # bits + m, bitsand(boolvar ' + boolvar0 ' + bits, bits0))) = lastn(2 + # bits + m, bits2 + mklist(boolvar, m) + bitsand(boolvar ' + boolvar0 ' + bits, bits0)), bits0 = [], boolvar ∧ boolvar0
Used terms: bitsand(boolvar ' + boolvar0 ' + bits, bits0), mklist(boolvar, m), bits2