| # sgn(bits) ≤ # bits ⊦ bits = [], mklist(bits.first, # bits - # sgn(bits)) + sgn(bits) = bits |
bits = boolvar + bits0, # sgn(bits) ≤ # bits ⊦ bits = [], mklist(boolvar, # bits - # sgn(bits)) + sgn(bits) = bits
Used simplifier rules: bits ≠ [] ⊦ (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0; (elim) Used terms: bits, boolvar, bits0