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