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