| bits ≠ [] ∧ # bits < m0 + 1, ∀ bits, boolvar. bits = [] ∨ fillsgn(m0 + 1, bits + boolvar ') = fillsgn(m0, bits) + boolvar ' ⊦ bits = [], fillsgn(2 + m0, bits + boolvar ') = (bits.first ' + fillsgn((m0 + 1)-1, bits)) + boolvar ' |
# 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 '
Used simplifier rules: ⊦ ¬ m < n ↔ n ≤ m;% ⊦ m < n + 1 ↔ ¬ n < m;% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ (m + 1)-1 = m;