| LEB_SIZE = (n4 + n) + n0 + n2, avols[default-volid][m2] = mapped(buf0, n2), m2 < # avols[default-volid], ebm-cons(avols), ebm-vol-inv(abs(avols[default-volid])), is-aligned(n, EB_PAGE_SIZE), is-aligned(n0, EB_PAGE_SIZE), default-volid ∈ avols, n + n0 + n2 ≤ LEB_SIZE, n0 + n2 ≤ LEB_SIZE, n2 ≤ LEB_SIZE, n3 + n ≤ # buf, (n0 + n2) + n ≤ LEB_SIZE ⊦ subarray(buf0, 0, n2) + mkempbuf(n0) = subarray(buf0, 0, n0 + n2), n = 0 |
⊦ buf = buf0 ↔ # buf = # buf0 ∧ (∀ n. n < # buf → buf[n] = buf0[n])
LEB_SIZE = (n4 + n) + n0 + n2, avols[default-volid][m2] = mapped(buf0, n2), m2 < # avols[default-volid], ebm-cons(avols), ebm-vol-inv(abs(avols[default-volid])), is-aligned(n0, EB_PAGE_SIZE), is-aligned(n, EB_PAGE_SIZE), default-volid ∈ avols, (n0 + n2) + n ≤ LEB_SIZE, n3 + n ≤ # buf, n2 ≤ LEB_SIZE, n0 + n2 ≤ LEB_SIZE, n + n0 + n2 ≤ LEB_SIZE ⊦ n = 0, #(subarray(buf0, 0, n2) + mkempbuf(n0)) = # subarray(buf0, 0, n0 + n2) ∧ (∀ n. n < #(subarray(buf0, 0, n2) + mkempbuf(n0)) → (subarray(buf0, 0, n2) + mkempbuf(n0))[n] = subarray(buf0, 0, n0 + n2)[n])
Used terms: subarray(buf0, 0, n0 + n2), subarray(buf0, 0, n2) + mkempbuf(n0)