| # lpt2 = # avol0, adr0 = adr1, err = err0, lpt = lpt2, lpt0 = lpt1, m0 = m1, ns0 = ns1, nx0 = nx1, awbuf-inv(avol0, bleb), avol ↓ avol0, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪if err = ESUCCESS then bleb := nobuffer, isbuf := false, adr0 := adr, m0 := m, nx0 := nx, lpt0 := lpt, ns0 := ns else avol := ?, bleb := ?, isbuf := ?, adr := ?, m := ?, nx := ?, lpt := ?, adr0 := ?, m0 := ?, nx0 := ?, lpt0 := ?, ns0 := ?, ns := ?⟫ (err = ESUCCESS → synced(avol) ∧ awbuf-inv(avol, bleb) ∧ # lpt = # avol) |
# lpt2 = # avol0, adr0 = adr1, err = ESUCCESS, err = err0, lpt = lpt2, lpt0 = lpt1, m0 = m1, ns0 = ns1, nx0 = nx1, awbuf-inv(avol0, bleb), avol ↓ avol0, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪bleb := nobuffer, isbuf := false, adr0 := adr, m0 := m, nx0 := nx, lpt0 := lpt, ns0 := ns⟫ (err = ESUCCESS → synced(avol) ∧ awbuf-inv(avol, bleb) ∧ # lpt = # avol)
# lpt2 = # avol0, adr0 = adr1, err = err0, lpt = lpt2, lpt0 = lpt1, m0 = m1, ns0 = ns1, nx0 = nx1, awbuf-inv(avol0, bleb), avol ↓ avol0, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪avol := ?, bleb := ?, isbuf := ?, adr := ?, m := ?, nx := ?, lpt := ?, adr0 := ?, m0 := ?, nx0 := ?, lpt0 := ?, ns0 := ?, ns := ?⟫ (err = ESUCCESS → synced(avol) ∧ awbuf-inv(avol, bleb) ∧ # lpt = # avol), err = ESUCCESS