| # avol0 = # avol1, # lpt0 = # avol1, # buf = EB_PAGE_SIZE, adr = adr0, avol = avol1, bleb = bleb0, lpt = lpt0, m = m1, m0 = m4, ns = ns0, plog = plog0, m4 < # avol1, abs(avol1, bleb0, mkwbuf(buf, m3, m2), avol0, rofs), awbuf-inv(avol1, bleb0), ebm-vol-inv(avol0), synced(avol1), bleb0 ≠ nobuffer → bleb0.leb < # avol1 ∧ wbuf-cons(mkwbuf(buf, m3, m2), avol0[bleb0.leb], rofs) ⊦ ⟨if synced(avol) ∧ m0 < # avol ∧ buffered(m0) ≠ bleb then avol[m0] := unmapped else abort⟩ abs(avol, bleb0, mkwbuf(buf, m3, m2), avol0[m4, unmapped], rofs), buffered(m4) = bleb0 |
# buf = EB_PAGE_SIZE, # lpt0 = # avol1, # avol0 = # avol1, adr = adr0, avol = avol1, bleb = bleb0, lpt = lpt0, m = m1, m0 = m4, ns = ns0, plog = plog0, m4 < # avol1, abs(avol1, bleb0, mkwbuf(buf, m3, m2), avol0, rofs), awbuf-inv(avol1, bleb0), ebm-vol-inv(avol0), synced(avol1), bleb0 ≠ nobuffer → bleb0.leb < # avol1 ∧ wbuf-cons(mkwbuf(buf, m3, m2), avol0[bleb0.leb], rofs) ⊦ ⟨avol[m0] := unmapped⟩ abs(avol, bleb0, mkwbuf(buf, m3, m2), avol0[m4, unmapped], rofs), buffered(m4) = bleb0