| # buf = PEB_SIZE, PEB_SIZE = n0 + m, pebs[n] = mkpeb(buf, m, false), n < # pebs, is-aligned(m, EB_PAGE_SIZE), range=(buf, m, emptypeb, m, n0), m ≤ PEB_SIZE, m ≤ m0, m0 + m1 ≤ PEB_SIZE ⊦ subarray(buf, m0, m1) = mkempbuf(m1) |
⊦ buf = buf0 ↔ # buf = # buf0 ∧ (∀ n. n < # buf → buf[n] = buf0[n])
# buf = PEB_SIZE, PEB_SIZE = n0 + m, pebs[n] = mkpeb(buf, m, false), n < # pebs, is-aligned(m, EB_PAGE_SIZE), range=(buf, m, emptypeb, m, n0), m0 + m1 ≤ PEB_SIZE, m ≤ m0, m ≤ PEB_SIZE ⊦ # subarray(buf, m0, m1) = # mkempbuf(m1) ∧ (∀ n. n < # subarray(buf, m0, m1) → subarray(buf, m0, m1)[n] = mkempbuf(m1)[n])
Used terms: mkempbuf(m1), subarray(buf, m0, m1)