| 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, boolvar ' + mklist(boolvar0, n) + boolvar1 ' + bits = mklist(boolvar0, n + 1) + boolvar1 ' + bits ∧ sgn(mklist(boolvar0, n + 1) + boolvar1 ' + bits) = boolvar0 ' + boolvar1 ' + bits ∧ ¬(boolvar0 ↔ boolvar1) ∧ n + 1 ≠ 0, ∃ 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 |
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) ∧ sgn(boolvar0 ' + boolvar1 ' + bits) = boolvar0 ' + boolvar1 ' + bits
Used simplifier rules: sgn-mklist-04: ⊦ sgn(boolvar ' + mklist(boolvar, n) + bits0) = sgn(boolvar ' + bits0);% ⊦ m + 1 ≠ 0;% ⊦ boolvar ' = boolvar0 ' ↔ boolvar ↔ boolvar0;% ⊦ bits + bits0 = bits1 + bits0 ↔ bits = bits1;% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ mklist(boolvar, n) + boolvar ' = boolvar ' + mklist(boolvar, n);% ⊦ mklist(boolvar, 1) = boolvar ';% ⊦ mklist(boolvar, m + n) = mklist(boolvar, m) + mklist(boolvar, n);