| mkempbuf(n)[m0 - # buf] = empty, m0 < # buf + n, # buf ≤ m0, ∀ buf, n. m0 ≤ # buf + n → datasize(buf + mkempbuf(n), m0) = datasize(buf, min(# buf, m0)) ⊦ datasize(buf + mkempbuf(n), m0) = datasize(buf, # buf), n = 0 |
mkempbuf(n)[n0] = empty, m0 = n0 + # buf, m0 < # buf + n, # buf ≤ m0, ∀ buf, n. m0 ≤ # buf + n → datasize(buf + mkempbuf(n), m0) = datasize(buf, min(# buf, m0)) ⊦ datasize(buf + mkempbuf(n), m0) = datasize(buf, # buf), n = 0
Used simplifier rules: n ≤ m ⊦ n0 = m - n ↔ m = n0 + n; (elim) Used terms: m0, # buf, n0