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