| # sgn(bits) ≤ # bits ∧ sgn(bits) ≠ [] ⊦ mklist(sgn(bits).first, # bits - # sgn(bits)) + sgn(bits) = bits |
# sgn(bits) ≤ # bits ⊦ bits = [], mklist(bits.first, # bits - # sgn(bits)) + sgn(bits) = bits
Used simplifier rules: sgn-empty-01: ⊦ sgn(bits) = [] ↔ bits = [];%sgn-first-01: ⊦ bits ≠ [] → (sgn(bits).first ↔ bits.first);