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