| # lpt2 = # avol1, # avol0 = # avol1, # lpt1 = # avol1, # buf = EB_PAGE_SIZE, abs(avol1, bleb, mkwbuf(buf, m1, m2), avol0, rofs1), awbuf-inv(avol1, bleb), ebm-vol-inv(avol0), synced(avol1), bleb ≠ nobuffer → bleb.leb < # avol1 ∧ wbuf-cons(mkwbuf(buf, m1, m2), avol0[bleb.leb], rofs1) ⊦ ⟨choose err0 with ⌊err0⌋ ∨ err0 = ESUCCESS in err := err0; rofs0 := rofs1; if err = ESUCCESS then {adr := adr2; m := m3; plog := []; lpt1 := lpt2; ns := ns2} else rofs0 := true; ns0 := ?⟩ (adr = adr2 ∧ m = m3 ∧ plog = [] ∧ lpt1 = lpt2 ∧ ns = ns2 ∧ (rofs0 ↔ rofs1) ∧ ns3 = ns0 ∧ ESUCCESS = err) |
# buf = EB_PAGE_SIZE, # lpt1 = # avol1, # avol0 = # avol1, # lpt2 = # avol1, abs(avol1, bleb, mkwbuf(buf, m1, m2), avol0, rofs1), awbuf-inv(avol1, bleb), ebm-vol-inv(avol0), synced(avol1), bleb ≠ nobuffer → bleb.leb < # avol1 ∧ wbuf-cons(mkwbuf(buf, m1, m2), avol0[bleb.leb], rofs1) ⊦ ∃ err0. (⌊err0⌋ ∨ err0 = ESUCCESS) ∧ ⟨err := err0; rofs0 := rofs1; if err = ESUCCESS then {adr := adr2; m := m3; plog := []; lpt1 := lpt2; ns := ns2} else rofs0 := true; ns0 := ?⟩ (adr = adr2 ∧ m = m3 ∧ plog = [] ∧ lpt1 = lpt2 ∧ ns = ns2 ∧ (rofs0 ↔ rofs1) ∧ ns3 = ns0 ∧ ESUCCESS = err)