| # avol3 = # avol2, # lpt1 = # avol2, # buf = EB_PAGE_SIZE, adr = adr1, adr0 = adr4, adr2 = adr1, avol = avol1, avol0 = avol1, log = plog3, lpt = lpt1, lpt0 = lpt4, lpt2 = lpt1, m = m8, m0 = m5, m1 = m8, ns = ns1, ns0 = ns4, ns2 = ns1, plog = plog1, plog0 = plog1, abs(avol2, bleb0, mkwbuf(buf, m2, m3), avol3, rofs0), awbuf-inv(avol2, bleb0), ebm-vol-inv(avol3), avol3 ⊆ avol1, bleb0 ≠ nobuffer → bleb0.leb < # avol2 ∧ wbuf-cons(mkwbuf(buf, m2, m3), avol3[bleb0.leb], rofs0) ⊦ ∃ err0. (⌊err0⌋ ∨ err0 = ESUCCESS) ∧ ⟨err := err0; if err = ESUCCESS then bleb := nobuffer, rofs := false, adr0 := adr, m0 := m, log := plog, lpt0 := lpt, ns0 := ns else avol := ?, bleb := ?, rofs := ?, adr := ?, m := ?, plog := ?, lpt := ?, adr0 := ?, m0 := ?, log := ?, lpt0 := ?, ns0 := ?, ns := ?⟩ ( avol = avol0 ∧ bleb = nobuffer ∧ adr = adr0 ∧ m = m0 ∧ plog = log ∧ lpt = lpt0 ∧ ns = ns0 ∧ ¬ rofs ∧ adr2 = adr0 ∧ m1 = m0 ∧ ns2 = ns0 ∧ plog0 = log ∧ lpt2 = lpt0 ∧ ESUCCESS = err) |
# buf = EB_PAGE_SIZE, # lpt1 = # avol2, # avol3 = # avol2, adr = adr1, avol = avol1, lpt = lpt1, m = m8, ns = ns1, plog = plog1, abs(avol2, bleb0, mkwbuf(buf, m2, m3), avol3, rofs0), awbuf-inv(avol2, bleb0), ebm-vol-inv(avol3), avol3 ⊆ avol1, bleb0 ≠ nobuffer → bleb0.leb < # avol2 ∧ wbuf-cons(mkwbuf(buf, m2, m3), avol3[bleb0.leb], rofs0) ⊦ ∃ err0. (⌊err0⌋ ∨ err0 = ESUCCESS) ∧ ⟨err := err0; if err = ESUCCESS then bleb := nobuffer, rofs := false, adr0 := adr, m0 := m, log := plog, lpt0 := lpt, ns0 := ns else avol := ?, bleb := ?, rofs := ?, adr := ?, m := ?, plog := ?, lpt := ?, adr0 := ?, m0 := ?, log := ?, lpt0 := ?, ns0 := ?, ns := ?⟩ ( avol = avol1 ∧ bleb = nobuffer ∧ adr = adr0 ∧ m = m0 ∧ plog = log ∧ lpt = lpt0 ∧ ns = ns0 ∧ ¬ rofs ∧ adr1 = adr0 ∧ m8 = m0 ∧ ns1 = ns0 ∧ plog1 = log ∧ lpt1 = lpt0 ∧ ESUCCESS = err)