| # lpt0 = # avol0, awbuf-inv(avol0, bleb), avol ↓ avol0 ⊦ ⟪awbuf_recover#(; adr1, m1, ns1, nx1, lpt1, adr, m, nx, lpt0, ns, avol; bleb0, isbuf, err)⟫ (err = ESUCCESS → synced(avol) ∧ awbuf-inv(avol, bleb0) ∧ # lpt0 = # avol) |
# lpt2 = # avol0, adr0 = adr1, lpt = lpt2, lpt0 = lpt1, m0 = m1, ns0 = ns1, nx0 = nx1, awbuf-inv(avol0, bleb), avol ↓ avol0 ⊦ ⟪fail_or_success#(; ; err); 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)
Used simplifier rules: recover: ⊦ ;