| bits0 = boolvar0 + bits ∧ bits0 ≠ [], true ∈ bits0 → (∀ bits1. sgn(bits0 + false ' + bits1) = sgn(bits0) + false ' + bits1) ⊦ boolvar0 ↔ boolvar, sgn((boolvar ' + bits0) + false ' + bits1) = sgn(boolvar ' + bits0) + false ' + bits1, ¬ true ∈ bits0 ∧ ¬ boolvar |
true ∈ bits ∨ boolvar0 → (∀ bits0. sgn((boolvar0 ' + bits) + false ' + bits0) = sgn(boolvar0 ' + bits) + false ' + bits0) ⊦ boolvar0 ↔ boolvar, sgn(boolvar ' + (boolvar0 ' + bits) + false ' + bits1) = sgn(boolvar ' + boolvar0 ' + bits) + false ' + bits1, ¬ boolvar ∧ ¬ true ∈ bits ∧ ¬ boolvar0
Used simplifier rules: ⊦ boolvar ∈ boolvar0 ' ↔ boolvar ↔ boolvar0;% ⊦ boolvar ∈ bits + bits0 ↔ ¬ ¬(boolvar ∈ bits ∨ boolvar ∈ bits0);%⊦ ¬ boolvar ∈ boolvar0 ' + bits ↔ ¬(boolvar ↔ boolvar0) ∧ ¬ boolvar ∈ bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ' + bits ≠ [];% ⊦ boolvar + bits = boolvar ' + bits;