| bits0 = [] ∨ # sgn(bitsinvert(bits0)) = # sgn(bits0) ⊦ boolvar + bits0 = [], # sgn(bitsinvert(boolvar + bits0)) = # sgn(boolvar + bits0) |
# sgn(bitsinvert(bits0)) = # sgn(bits0) ⊦ # sgn((¬ boolvar)' + bitsinvert(bits0)) = # sgn(boolvar ' + bits0), bits0 = []
Used simplifier rules: inv-append: ⊦ bitsinvert(bits + bits0) = bitsinvert(bits) + bitsinvert(bits0);%inv-one: ⊦ bitsinvert(boolvar ') = (¬ boolvar)';%invert-base: ⊦ bitsinvert([]) = [];%sgn-one: ⊦ sgn(boolvar ') = boolvar ';% ⊦ # boolvar ' = 0 +1;% ⊦ bits + [] = bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ' + bits ≠ [];% ⊦ boolvar + bits = boolvar ' + bits;