| sgn(boolvar ' + bits0) = boolvar0 ' + boolvar0 ', ∀ boolvar1. ¬ boolvar1 ∈ bits0 ∨ sgn(bits0) ≠ boolvar1 ' + boolvar1 ' ⊦ bits0.first ↔ boolvar, bits0 = [], ¬ boolvar0 ∈ bits0 ∧ ¬(boolvar0 ↔ boolvar) |
bits0 = boolvar2 + bits, sgn(boolvar ' + bits0) = boolvar0 ' + boolvar0 ', ∀ boolvar1. ¬ boolvar1 ∈ bits0 ∨ sgn(bits0) ≠ boolvar1 ' + boolvar1 ' ⊦ boolvar2 ↔ boolvar, bits0 = [], ¬ boolvar0 ∈ bits0 ∧ ¬(boolvar0 ↔ boolvar)
Used simplifier rules: bits ≠ [] ⊦ (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0; (elim) Used terms: bits0, boolvar2, bits