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