| # lpt = # avol, ebm-vol-inv(avol), wbuf-cons(bleb, wbuf, avol, rofs), ¬ rofs → bleb = buffered(m) ∨ (bleb = nobuffer ∨ wbuf.nbytes = 0) ∧ m < # avol ∧ avol[m].mapped? ∧ m0 = # avol[m].data ⊦ ⟪wbuf_move_buf#(m, m0, rofs, avol; bleb, wbuf; err)⟫ wbuf-cons(bleb, wbuf, avol, rofs) |
# lpt = # avol, # wbuf.content = EB_PAGE_SIZE, ebm-vol-inv(avol), ¬ rofs → bleb = buffered(m) ∨ (bleb = nobuffer ∨ wbuf.nbytes = 0) ∧ m < # avol ∧ avol[m].mapped? ∧ m0 = # avol[m].data, bleb ≠ nobuffer → bleb.leb < # avol ∧ wbuf-cons(wbuf, avol[bleb.leb], rofs) ⊦ ⟪wbuf_move_buf#(m, m0, rofs, avol; bleb, wbuf; err)⟫ (# wbuf.content = EB_PAGE_SIZE ∧ (bleb ≠ nobuffer → bleb.leb < # avol ∧ wbuf-cons(wbuf, avol[bleb.leb], rofs)))
Used simplifier rules: ⊦ wbuf-cons(bleb, wbuf, avol, rofs) ↔ # wbuf.content = EB_PAGE_SIZE ∧ ( bleb ≠ nobuffer → bleb.leb < # avol ∧ wbuf-cons(wbuf, avol[bleb.leb], rofs)); (s)