| # avol0 = # avol2, # lpt1 = # avol2, # buf = EB_PAGE_SIZE, adr = adr1, avol = avol1, lpt = lpt1, m = m8, ns = ns1, plog = plog1, abs(avol2, bleb0, mkwbuf(buf, m2, m3), avol0, rofs0), awbuf-inv(avol2, bleb0), ebm-vol-inv(avol0), avol0 ⊆ avol1, bleb0 ≠ nobuffer → bleb0.leb < # avol2 ∧ wbuf-cons(mkwbuf(buf, m2, m3), avol0[bleb0.leb], rofs0) ⊦ ⟪n := EB_PAGE_SIZE; bleb := nobuffer; wbuf.content := mkbuf(n); rofs := false⟫ ∃ avol. avol ↓ avol2 ∧ ⟨adr0 := adr1; lpt0 := lpt1; m0 := m8; ns0 := ns1; plog0 := plog1; awbuf_recover#(; adr4, m5, ns4, plog3, lpt4, adr1, m8, plog1, lpt1, ns1, avol; bleb0, rofs0, err1)⟩ ( abs(avol, bleb, wbuf, avol1, rofs) ∧ bleb0 = bleb ∧ adr1 = adr4 ∧ m8 = m5 ∧ plog1 = plog3 ∧ lpt1 = lpt4 ∧ ns1 = ns4 ∧ (rofs0 ↔ rofs) ∧ adr0 = adr4 ∧ m0 = m5 ∧ ns0 = ns4 ∧ plog0 = plog3 ∧ lpt0 = lpt4 ∧ ESUCCESS = err1) |
# buf = EB_PAGE_SIZE, # lpt1 = # avol2, # avol0 = # avol2, adr = adr1, avol = avol1, lpt = lpt1, m = m8, ns = ns1, plog = plog1, abs(avol2, bleb0, mkwbuf(buf, m2, m3), avol0, rofs0), awbuf-inv(avol2, bleb0), ebm-vol-inv(avol0), avol0 ⊆ avol1, bleb0 ≠ nobuffer → bleb0.leb < # avol2 ∧ wbuf-cons(mkwbuf(buf, m2, m3), avol0[bleb0.leb], rofs0) ⊦ ⟪bleb := nobuffer; wbuf.content := mkbuf(EB_PAGE_SIZE); rofs := false⟫ ∃ avol. avol ↓ avol2 ∧ ⟨adr0 := adr1; lpt0 := lpt1; m0 := m8; ns0 := ns1; plog0 := plog1; awbuf_recover#(; adr4, m5, ns4, plog3, lpt4, adr1, m8, plog1, lpt1, ns1, avol; bleb0, rofs0, err1)⟩ ( abs(avol, bleb, wbuf, avol1, rofs) ∧ bleb0 = bleb ∧ adr1 = adr4 ∧ m8 = m5 ∧ plog1 = plog3 ∧ lpt1 = lpt4 ∧ ns1 = ns4 ∧ (rofs0 ↔ rofs) ∧ adr0 = adr4 ∧ m0 = m5 ∧ ns0 = ns4 ∧ plog0 = plog3 ∧ lpt0 = lpt4 ∧ ESUCCESS = err1)