| sgn(mklist(boolvar, n - 1) + boolvar ' + boolvar0 ' + bits) = boolvar ' + boolvar0 ' + bits, bits0.first, # bits0 ≤ 2 + # bits ⊦ boolvar ↔ boolvar0, n = 0, lastn(n + 1 + # bits, fillsgn(n + 1 + # bits, bitsand(boolvar ' + boolvar0 ' + bits, bits0))) = lastn(n + 1 + # bits, fillsgn(n + 1 + # bits, (bits2 + mklist(boolvar, n - 1)) + bitsand(boolvar ' + boolvar0 ' + bits, bits0))), bits0 = [], boolvar ∧ boolvar0 |
n = m + 1, sgn(mklist(boolvar, m) + boolvar ' + boolvar0 ' + bits) = boolvar ' + boolvar0 ' + bits, bits0.first, # bits0 ≤ 2 + # bits ⊦ boolvar ↔ boolvar0, n = 0, lastn(n + 1 + # bits, fillsgn(n + 1 + # bits, bitsand(boolvar ' + boolvar0 ' + bits, bits0))) = lastn(n + 1 + # bits, fillsgn(n + 1 + # bits, (bits2 + mklist(boolvar, m)) + bitsand(boolvar ' + boolvar0 ' + bits, bits0))), bits0 = [], boolvar ∧ boolvar0
Used simplifier rules: n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: n, m