| m ≤ # buf + n ⊦ datasize(buf + mkempbuf(n), m) = datasize(buf, min(# buf, m)) |
m ≤ # buf0 ⊦ datasize(buf0 + buf1, m) = datasize(buf0, m)
⊦ datasize(buf, 0) = 0
m0 +1 ≤ # buf + n, ∀ buf, n. m0 ≤ # buf + n → datasize(buf + mkempbuf(n), m0) = datasize(buf, min(# buf, m0)) ⊦ datasize(buf + mkempbuf(n), m0 +1) = datasize(buf, min(# buf, m0 +1))
Used simplifier rules: datasize-append-lower-h: m ≤ # buf0 ⊦ datasize(buf0 + buf1, m) = datasize(buf0, m);%datasize-base: ⊦ datasize(buf, 0) = 0;%nat freely generated by 0, +1;;% ⊦ 0 ≤ m; (s)%append-a: ⊦ (buf + buf0) + buf1 = buf + buf0 + buf1; from specification array-splice[buffer]% ⊦ min(n, 0) = 0; (s)