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