| is-aligned(n, EB_PAGE_SIZE), n ≤ # buf ⊦ datasize(buf, align↑(datasize(buf, n), EB_PAGE_SIZE)) = datasize(buf, n) |
⊦ n0 ≤ # buf ∧ n0 ≤ n1 → (datasize(buf, n0) = datasize(buf, n1) ↔ (∀ n. n0 ≤ n ∧ n < n1 → buf[n] = empty))
is-aligned(n, EB_PAGE_SIZE), n ≤ # buf ⊦ datasize(buf, align↑(datasize(buf, n), EB_PAGE_SIZE)) = datasize(buf, n), align↑(datasize(buf, n), EB_PAGE_SIZE) ≤ # buf ∧ align↑(datasize(buf, n), EB_PAGE_SIZE) ≤ n
is-aligned(n, EB_PAGE_SIZE), n ≤ # buf, align↑(datasize(buf, n), EB_PAGE_SIZE) ≤ # buf, align↑(datasize(buf, n), EB_PAGE_SIZE) ≤ n ⊦ ∀ n2. align↑(datasize(buf, n), EB_PAGE_SIZE) ≤ n2 ∧ n2 < n → buf[n2] = empty
Used terms: n, align↑(datasize(buf, n), EB_PAGE_SIZE), buf