| # buf = EB_PAGE_SIZE, # lpt1 = # avol2, # avol1 = # avol2, # avol0 = # avol2, avol1[n] = mapped(buf1), avol2[n] = mapped(buf2), mapped(buf1) = avol0[n], n < # avol2, m3 < EB_PAGE_SIZE, ebm-vol-inv(avol0), is-aligned(m2, EB_PAGE_SIZE), # buf2 ≤ LEB_SIZE, m2 ≤ # buf1, rofs0 → m2 = # buf1 ∧ buf2 = buf1 + subarray(buf, 0, m3) ∨ m2 < # buf1 ∧ m2 + m3 < # buf1 ∧ buf2 = buf1 ∧ subarray(buf, 0, m3) = subarray(buf1, m2, m3), ¬ rofs0 → buf2 = buf1 + subarray(buf, 0, m3), ¬ rofs0 → # buf1 = m2 ⊦ buf1 = buf2.align↓ |
# avol0 = # avol2, # avol1 = # avol2, # lpt1 = # avol2, # buf = EB_PAGE_SIZE, avol2[n] = mapped(buf2), avol1[n] = mapped(buf1), mapped(buf1) = avol0[n], m3 < EB_PAGE_SIZE, n < # avol2, ebm-vol-inv(avol0), is-aligned(m2, EB_PAGE_SIZE), m2 ≤ # buf1, # buf2 ≤ LEB_SIZE, ¬ rofs0 → # buf1 = m2, ¬ rofs0 → buf2 = buf1 + subarray(buf, 0, m3), rofs0 → m2 = # buf1 ∧ buf2 = buf1 + subarray(buf, 0, m3) ∨ m2 < # buf1 ∧ m2 + m3 < # buf1 ∧ buf2 = buf1 ∧ subarray(buf, 0, m3) = subarray(buf1, m2, m3) ⊦ buf1 = buf2.align↓