| true ∈ bits ∧ false ∈ bits → (∃ boolvar, n, boolvar0, bits0. bits = mklist(boolvar, n) + (boolvar0 + bits0) ∧ sgn(bits) = boolvar + boolvar0 + bits0 ∧ ¬(boolvar ↔ boolvar0) ∧ n ≠ 0), n = # fillsgn(n, bits), # bits < n ⊦ lastn(n, fillsgn(n, bitsand(sgn(bits), bits0))) = lastn(n, fillsgn(n, bitsand(bits, bits0))), bits = [], bits0 = [] |
n = # fillsgn(n, bits), # bits < n, true ∈ bits ∧ false ∈ bits → bits = mklist(boolvar, n0) + boolvar0 ' + bits1 ∧ sgn(mklist(boolvar, n0) + boolvar0 ' + bits1) = boolvar ' + boolvar0 ' + bits1 ∧ ¬(boolvar ↔ boolvar0) ∧ n0 ≠ 0 ⊦ lastn(n, fillsgn(n, bitsand(sgn(bits), bits0))) = lastn(n, fillsgn(n, bitsand(bits, bits0))), bits = [], bits0 = []
Used simplifier rules: ⊦ boolvar + bits = boolvar ' + bits;