| m0 ≤ m, m ≤ # buf, m0 ≤ # buf ⊦ datasize(subarray(buf, 0, m), m0) = datasize(buf, m0) |
⊦ datasize(buf, 0) = 0
m1 +1 ≤ # buf, m ≤ # buf, m1 +1 ≤ m, ∀ m, buf. m1 ≤ m ∧ m ≤ # buf ∧ m1 ≤ # buf → datasize(subarray(buf, 0, m), m1) = datasize(buf, m1) ⊦ datasize(subarray(buf, 0, m), m1 +1) = datasize(buf, m1 +1)
Used simplifier rules: datasize-base: ⊦ datasize(buf, 0) = 0;%nat freely generated by 0, +1;;