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