| ¬(bits0 ≠ [] ∧ (bits0.first ↔ boolvar)), sgn(boolvar ' + bits0) = boolvar0 ' + boolvar0 ', ∀ boolvar1. sgn(bits0) ≠ boolvar1 ' + boolvar1 ' ∨ ¬ boolvar1 ∈ sgn(bits0) ⊦ ¬ boolvar0 ∈ bits0 ∧ ¬(boolvar0 ↔ boolvar) |
sgn(boolvar ' + bits0) = boolvar0 ' + boolvar0 ', ∀ boolvar1. ¬ boolvar1 ∈ bits0 ∨ sgn(bits0) ≠ boolvar1 ' + boolvar1 ' ⊦ bits0.first ↔ boolvar, bits0 = [], ¬ boolvar0 ∈ bits0 ∧ ¬(boolvar0 ↔ boolvar)
Used simplifier rules: sgn-one: ⊦ sgn(boolvar ') = boolvar ';%sgn-in-01: ⊦ bits ≠ [] → (boolvar ∈ sgn(bits) ↔ boolvar ∈ bits);% ⊦ boolvar ' ≠ [];% ⊦ boolvar ' = boolvar0 ' + bits ↔ (boolvar ↔ boolvar0) ∧ bits = [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits + [] = bits;