| # lpt = # avol, avol[m3] = mapped(buf), avol[n] = mapped(buf0), m3 < # avol, n < # avol, # buf0 ≤ LEB_SIZE, bleb ≠ nobuffer → avol[bleb.leb].mapped? ∧ bleb.leb < # avol ∧ bleb.isbuf?, bleb ≠ nobuffer → bleb.leb < # avol ∧ avol[bleb.leb].mapped?, ∀ n. n < # avol ∧ avol[n].mapped? → # avol[n].data ≤ LEB_SIZE ∧ (buffered(n) ≠ bleb → is-aligned(# avol[n].data, EB_PAGE_SIZE)), bleb = nobuffer ∨ is-aligned(# avol[bleb.leb].data, EB_PAGE_SIZE) ⊦ n = m3, is-aligned(# buf0, EB_PAGE_SIZE) |
# lpt = # avol, avol[n] = mapped(buf0), avol[m3] = mapped(buf), n < # avol, m3 < # avol, # buf0 ≤ LEB_SIZE, bleb ≠ nobuffer → bleb.leb < # avol ∧ avol[bleb.leb].mapped?, bleb ≠ nobuffer → avol[bleb.leb].mapped? ∧ bleb.leb < # avol ∧ bleb.isbuf?, ∀ n. n < # avol ∧ avol[n].mapped? → # avol[n].data ≤ LEB_SIZE ∧ (buffered(n) ≠ bleb → is-aligned(# avol[n].data, EB_PAGE_SIZE)), bleb = nobuffer ∨ is-aligned(# avol[bleb.leb].data, EB_PAGE_SIZE) ⊦ n = m3, is-aligned(# buf0, EB_PAGE_SIZE)