| boolvar1 ' + bits ≠ [] ∧ ((boolvar1 ' + bits).first ↔ ¬ boolvar0), sgn(mklist(boolvar0, n) + boolvar1 ' + bits) = boolvar0 ' + boolvar1 ' + bits ⊦ n = 0, boolvar0 ↔ boolvar1, ¬ false ∈ mklist(boolvar0, n) ∧ boolvar1 ∧ ¬ false ∈ bits, ¬ true ∈ mklist(boolvar0, n) ∧ ¬ boolvar1 ∧ ¬ true ∈ bits, ∃ boolvar2, n0, boolvar3, bits1. boolvar ' + mklist(boolvar0, n) + boolvar1 ' + bits = mklist(boolvar2, n0) + boolvar3 ' + bits1 ∧ sgn(mklist(boolvar2, n0) + boolvar3 ' + bits1) = boolvar2 ' + boolvar3 ' + bits1 ∧ ¬(boolvar2 ↔ boolvar3) ∧ n0 ≠ 0, (boolvar ↔ boolvar0) ∧ boolvar0 ' + boolvar1 ' + bits = boolvar0 ' + boolvar1 ' + bits |
sgn(mklist(boolvar0, n) + boolvar1 ' + bits) = boolvar0 ' + boolvar1 ' + bits, ¬ boolvar0 → boolvar1 ⊦ n = 0, boolvar0 ↔ boolvar1, boolvar ↔ boolvar0, ¬ false ∈ mklist(boolvar0, n) ∧ boolvar1 ∧ ¬ false ∈ bits, ¬ true ∈ mklist(boolvar0, n) ∧ ¬ boolvar1 ∧ ¬ true ∈ bits, ∃ boolvar2, n0, boolvar3, bits1. boolvar ' + mklist(boolvar0, n) + boolvar1 ' + bits = mklist(boolvar2, n0) + boolvar3 ' + bits1 ∧ sgn(mklist(boolvar2, n0) + boolvar3 ' + bits1) = boolvar2 ' + boolvar3 ' + bits1 ∧ ¬(boolvar2 ↔ boolvar3) ∧ n0 ≠ 0
Used simplifier rules: ⊦ boolvar ' + bits ≠ [];% ⊦ (boolvar ' + bits).first ↔ boolvar;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;