| avol[n, mapped(buf)][n0] = mapped(buf0), n0 < # avol, ∀ n. n < # avol ∧ avol[n].mapped? → is-aligned(# avol[n].data, EB_PAGE_SIZE), # avol ≤ n ∨ is-aligned(# buf, EB_PAGE_SIZE) ⊦ n0 = n, is-aligned(# buf0, EB_PAGE_SIZE) |
avol[n0] = mapped(buf0), n0 < # avol, ∀ n. n < # avol ∧ avol[n].mapped? → is-aligned(# avol[n].data, EB_PAGE_SIZE), # avol ≤ n ∨ is-aligned(# buf, EB_PAGE_SIZE) ⊦ n0 = n, is-aligned(# buf0, EB_PAGE_SIZE)
Used simplifier rules: ⊦ m ≠ n → avol[n, aleb][m] = avol[m]; (s)