| # bits ≤ m0, ∀ bits, boolvar. bits = [] ∨ fillsgn(m0 + 1, bits + boolvar ') = fillsgn(m0, bits) + boolvar ' ⊦ bits = [], fillsgn(2 + m0, bits + boolvar ') = bits.first ' + fillsgn(m0, bits) + boolvar ' |
bits = boolvar0 + bits0, # bits ≤ m0, ∀ bits, boolvar. bits = [] ∨ fillsgn(m0 + 1, bits + boolvar ') = fillsgn(m0, bits) + boolvar ' ⊦ bits = [], fillsgn(2 + m0, bits + boolvar ') = boolvar0 ' + fillsgn(m0, bits) + boolvar '
Used simplifier rules: bits ≠ [] ⊦ (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0; (elim) Used terms: bits, boolvar0, bits0