| bits0 = [] ∨ fillsgn(# bits0, sgn(bits0)) = bits0 ⊦ boolvar + bits0 = [], fillsgn(#(boolvar + bits0), sgn(boolvar + bits0)) = boolvar + bits0 |
fillsgn(# bits0, sgn(bits0)) = bits0 ⊦ fillsgn(1 + # bits0, sgn(boolvar ' + bits0)) = boolvar ' + bits0, bits0 = []
Used simplifier rules: sgn-one: ⊦ sgn(boolvar ') = boolvar ';%fill-one: ⊦ fillsgn(1, boolvar ') = boolvar ';% ⊦ boolvar ' = boolvar0 ' ↔ boolvar ↔ boolvar0;% ⊦ bits + [] = bits;% ⊦ # [] = 0;% ⊦ # boolvar ' = 0 +1;% ⊦ #(bits + bits0) = # bits + # bits0;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ' + bits ≠ [];% ⊦ boolvar + bits = boolvar ' + bits;