| ⊦ datasize(buf + mkempbuf(n), # buf + n) = datasize(buf, # buf) |
⊦ m ≤ # buf + n → datasize(buf + mkempbuf(n), m) = datasize(buf, min(# buf, m))
m ≤ # buf0 ⊦ datasize(buf0 + buf1, m) = datasize(buf0, m)
Used simplifier rules: datasize-append-lower-h: m ≤ # buf0 ⊦ datasize(buf0 + buf1, m) = datasize(buf0, m);% ⊦ min(n0 + m, m) = m; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic%min-comm: ⊦ min(n0, n1) = min(n1, n0); from specification min-max% ⊦ m + m0 ≤ m ↔ m0 = 0; (s)% ⊦ m + n ≤ m + n0 ↔ n ≤ n0; (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)% ⊦ ¬ n < n; (s)%append-a: ⊦ (buf + buf0) + buf1 = buf + buf0 + buf1; from specification array-splice[buffer] Used terms: # buf + n, n, buf