| bits0 = boolvar0 + bits ∧ bits0 ≠ [], false ∈ bits0 ∧ true ∈ bits0 → (∀ bits1. sgn(bits0 + bits1) = sgn(bits0) + bits1) ⊦ boolvar0 ↔ boolvar, sgn((boolvar ' + bits0) + bits1) = sgn(boolvar ' + bits0) + bits1, ¬ true ∈ bits0 ∧ ¬ boolvar, ¬ false ∈ bits0 ∧ boolvar |
(false ∈ bits ∨ ¬ boolvar0) ∧ (true ∈ bits ∨ boolvar0) → (∀ bits0. sgn((boolvar0 ' + bits) + bits0) = sgn(boolvar0 ' + bits) + bits0) ⊦ boolvar0 ↔ boolvar, sgn(boolvar ' + (boolvar0 ' + bits) + bits1) = sgn(boolvar ' + boolvar0 ' + bits) + bits1, ¬ boolvar ∧ ¬ true ∈ bits ∧ ¬ boolvar0, boolvar ∧ ¬ false ∈ 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;