| # buf = EB_PAGE_SIZE, # lpt1 = # avol, # avol0 = # avol, # lpt = # avol, rofs0 ↔ rofs, adr = adr0, lpt0 = lpt1, m = m0, ns = ns0, ns1 = ns2, plog = plog0, wbuf = mkwbuf(buf, m1, m2), abs(avol, bleb, wbuf, avol0, rofs), awbuf-inv(avol, bleb), ebm-vol-inv(avol0), synced(avol), bleb ≠ nobuffer → bleb.leb < # avol ∧ wbuf-cons(wbuf, avol0[bleb.leb], rofs) ⊦ ⟪wbuf_commit#(lpt, adr2, m3, avol0; ns1, adr0, m0, plog0, lpt1, ns0, rofs; err)⟫ ⟨awbuf_commit#(lpt, adr2, m3, avol, bleb; ns2, adr, m, plog, lpt0, ns, rofs0; err0)⟩ (abs(avol, bleb, wbuf, avol0, rofs) ∧ adr = adr0 ∧ m = m0 ∧ plog = plog0 ∧ lpt0 = lpt1 ∧ ns = ns0 ∧ (rofs0 ↔ rofs) ∧ ns1 = ns2 ∧ err = err0) |
# lpt = # avol, # avol0 = # avol, # lpt1 = # avol, # buf = EB_PAGE_SIZE, rofs0 ↔ rofs, adr = adr0, lpt0 = lpt1, m = m0, ns = ns0, ns1 = ns2, plog = plog0, abs(avol, bleb, mkwbuf(buf, m1, m2), avol0, rofs), awbuf-inv(avol, bleb), ebm-vol-inv(avol0), synced(avol), bleb ≠ nobuffer → bleb.leb < # avol ∧ wbuf-cons(mkwbuf(buf, m1, m2), avol0[bleb.leb], rofs) ⊦ ⟪wbuf_commit#(lpt, adr2, m3, avol0; ns1, adr0, m0, plog0, lpt1, ns0, rofs; err)⟫ ⟨awbuf_commit#(lpt, adr2, m3, avol, bleb; ns2, adr, m, plog, lpt0, ns, rofs0; err0)⟩ ( abs(avol, bleb, mkwbuf(buf, m1, m2), avol0, rofs) ∧ adr = adr0 ∧ m = m0 ∧ plog = plog0 ∧ lpt0 = lpt1 ∧ ns = ns0 ∧ (rofs0 ↔ rofs) ∧ ns1 = ns2 ∧ err = err0)