| # fillsgn(m + 1, bits0).rest < m, # bits0 ≤ m ⊦ lastn(m, bits + fillsgn(m + 1, bits0).rest) = fillsgn(m, bits0) |
⊦ bits ≠ [] → # bits.rest = (# bits)-1
fillsgn(m + 1, bits0) ≠ [], (# fillsgn(m + 1, bits0))-1 < m, # bits0 ≤ m ⊦ lastn(m, bits + fillsgn(m + 1, bits0).rest) = fillsgn(m, bits0)
Used simplifier rules: fill-empty: ⊦ fillsgn(n, bits) = [] ↔ bits = [] ∧ n = 0;% ⊦ m + 1 ≠ 0;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m; Used terms: fillsgn(m + 1, bits0)