| bitsinvert(bits0) = boolvar0 + bits ∧ bitsinvert(bits0) ≠ [], boolvar0 ↔ ¬ boolvar, # sgn(bitsinvert(bits0)) = # sgn(bits0) ⊦ # sgn(bits0) = # sgn(boolvar ' + bits0), bits0 = [] |
bitsinvert(bits0) = (¬ boolvar)' + bits, # sgn(bitsinvert(bits0)) = # sgn(bits0), boolvar ∈ bits0 ⊦ bits0 = [], # sgn(bits0) = # sgn(boolvar ' + bits0)
Used simplifier rules: inv-empty: ⊦ bitsinvert(bits) = [] ↔ bits = [];%inv-in: ⊦ boolvar ∈ bitsinvert(bits) ↔ (¬ boolvar) ∈ bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ' + bits = bits0 → boolvar ∈ bits0; (forward)% ⊦ boolvar + bits = boolvar ' + bits;