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