| # buf4 = m0 + n0, # avol0 = # avol1, # lpt0 = # avol1, # buf2 = EB_PAGE_SIZE, n0 + n5 + n1 = # buf3, n1 + n5 = n4 + min(n1, n2), LEB_SIZE = n3 + n2 + m0 + n0, avol0[m2] = mapped(buf4), avol1[m2] = mapped(buf4 + subarray(buf2, 0, n2)), n2 < EB_PAGE_SIZE, m2 < # avol1, awbuf-inv(avol1, buffered(m2)), ebm-vol-inv(avol0), is-aligned(m0 + n0, EB_PAGE_SIZE), min(n1, n2) ≤ n1 + n5, m0 ≤ LEB_SIZE, n1 ≤ n2 + n3, min(n1, n2) ≤ EB_PAGE_SIZE, n0 ≤ # buf3 ⊦ subarray(buf4, m0, n0) + subarray(buf2, 0, min(n1, n2)) + subarray(subarray(buf4 + mkempbuf(n3 + n2), m0, n1 + n0) + subarray(buf3, n1 + n0, n5), n0 + min(n1, n2), n4) = subarray(buf4 + subarray(buf2, 0, n2) + mkempbuf(n3), m0, n1 + n0) + subarray(buf3, n1 + n0, n5) |
⊦ # buf = n0 + n1 ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ # buf0 = n0 ∧ # buf1 = n1)
# buf2 = EB_PAGE_SIZE, # lpt0 = # avol1, # avol0 = # avol1, n1 + n5 = n4 + min(n1, n2), n0 + n5 + n1 = # buf3, LEB_SIZE = n3 + n2 + m0 + n0, avol1[m2] = mapped(buf4 + subarray(buf2, 0, n2)), avol0[m2] = mapped(buf4), m2 < # avol1, n2 < EB_PAGE_SIZE, awbuf-inv(avol1, buffered(m2)), ebm-vol-inv(avol0), is-aligned(m0 + n0, EB_PAGE_SIZE), n0 ≤ # buf3, min(n1, n2) ≤ EB_PAGE_SIZE, n1 ≤ n2 + n3, m0 ≤ LEB_SIZE, min(n1, n2) ≤ n1 + n5, ∃ buf0, buf1. buf4 = buf0 + buf1 ∧ # buf0 = m0 ∧ # buf1 = n0 ⊦ subarray(buf4, m0, n0) + subarray(buf2, 0, min(n1, n2)) + subarray(subarray(buf4 + mkempbuf(n3 + n2), m0, n1 + n0) + subarray(buf3, n1 + n0, n5), n0 + min(n1, n2), n4) = subarray(buf4 + subarray(buf2, 0, n2) + mkempbuf(n3), m0, n1 + n0) + subarray(buf3, n1 + n0, n5)
Used terms: n0, m0, buf4