| datasize(copy(buf0, 0, buf, m, n), m0) < datasize(buf, m0), datasize(buf, # buf) ≤ m, m + n ≤ # buf, n ≤ # buf0, m0 ≤ # buf ⊦ |
⊦ datasize(buf, 0) = 0
datasize(copy(buf0, 0, buf, m, n), m1 +1) < datasize(buf, m1 +1), m1 +1 ≤ # buf, n ≤ # buf0, m + n ≤ # buf, datasize(buf, # buf) ≤ m, ∀ buf0, buf, m, n. ¬ (datasize(copy(buf0, 0, buf, m, n), m1) < datasize(buf, m1) ∧ datasize(buf, # buf) ≤ m ∧ m + n ≤ # buf ∧ n ≤ # buf0 ∧ m1 ≤ # buf) ⊦
Used simplifier rules: datasize-base: ⊦ datasize(buf, 0) = 0;%nat freely generated by 0, +1;;% ⊦ 0 ≤ m; (s)