| fillsgn(1 + # bits, sgn(boolvar0 ' + bits)) = boolvar0 ' + bits ⊦ boolvar0 ↔ boolvar, fillsgn(2 + # bits, sgn(boolvar ' + boolvar0 ' + bits)) = boolvar ' + boolvar0 ' + bits |
⊦ bits ≠ [] ∧ (bits.first ↔ ¬ boolvar) → sgn(boolvar ' + bits) = boolvar ' + bits
boolvar0 ' + bits ≠ [] ∧ ((boolvar0 ' + bits).first ↔ ¬ boolvar), fillsgn(1 + # bits, sgn(boolvar0 ' + bits)) = boolvar0 ' + bits ⊦ boolvar0 ↔ boolvar, fillsgn(2 + # bits, boolvar ' + boolvar0 ' + bits) = boolvar ' + boolvar0 ' + bits
Used simplifier rules: ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ boolvar ' ≠ [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ (boolvar ' + bits).first ↔ boolvar; Used terms: boolvar0 ' + bits, boolvar