| # buf = EB_PAGE_SIZE, # lpt = # avol, avol[m4] = mapped(buf0), m4 < # avol, ebm-vol-inv(avol), bleb ≠ nobuffer → bleb.leb < # avol ∧ wbuf-cons(mkwbuf(buf, m1, m2), avol[bleb.leb], false), bleb = nobuffer ∨ m2 = 0 ⊦ bleb = buffered(m4), is-aligned(# buf0, EB_PAGE_SIZE) |
⊦ ebm-vol-inv(avol) ↔ (∀ n. n < # avol ∧ avol[n].mapped? → # avol[n].data ≤ LEB_SIZE ∧ is-aligned(# avol[n].data, EB_PAGE_SIZE))
# lpt = # avol, # buf = EB_PAGE_SIZE, avol[m4] = mapped(buf0), m4 < # avol, bleb ≠ nobuffer → bleb.leb < # avol ∧ wbuf-cons(mkwbuf(buf, m1, m2), avol[bleb.leb], false), ∀ n. n < # avol ∧ avol[n].mapped? → # avol[n].data ≤ LEB_SIZE ∧ is-aligned(# avol[n].data, EB_PAGE_SIZE), bleb = nobuffer ∨ m2 = 0 ⊦ bleb = buffered(m4), is-aligned(# buf0, EB_PAGE_SIZE)
Used terms: avol