| datasize(copy(buf0, 0, buf, m, n), m0) < datasize(buf, m0), m + n ≤ # buf, n ≤ # buf0, m0 ≤ # buf ⊦ m < datasize(buf) |
⊦ datasize(buf) = datasize(buf, # buf)
datasize(copy(buf0, 0, buf, m, n), m0) < datasize(buf, m0), datasize(buf, # buf) ≤ m, m + n ≤ # buf, n ≤ # buf0, m0 ≤ # buf ⊦
Used simplifier rules: datasize: ⊦ datasize(buf) = datasize(buf, # buf);% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m < n ↔ ¬ n ≤ m; (ss)