| # lpt = # avol, adr = adr0, lpt0 = lpt, m = m0, ns = ns0, nx = nx0, awbuf-inv(avol, bleb), synced(avol0), avol0 ↓ avol ⊦ ⟨awbuf_recover#(; adr1, m1, ns1, nx1, lpt1, adr0, m0, nx0, lpt, ns0, avol; bleb, isbuf, err)⟩ (synced(avol0) ∧ adr = adr0 ∧ m = m0 ∧ nx = nx0 ∧ lpt0 = lpt ∧ avol0 ↓ avol ∧ ns = ns0) |
# lpt = # avol, adr = adr3, adr0 = adr1, adr2 = adr3, lpt0 = lpt1, lpt2 = lpt, m = m3, m0 = m1, m2 = m3, ns = ns3, ns0 = ns1, ns2 = ns3, nx = nx3, nx0 = nx1, nx2 = nx3, awbuf-inv(avol, bleb), synced(avol0), avol0 ↓ avol ⊦ ⟨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 := ?⟩ (synced(avol0) ∧ adr2 = adr ∧ m2 = m ∧ nx2 = nx ∧ lpt2 = lpt ∧ avol0 ↓ avol ∧ ns2 = ns)
Used simplifier rules: recover: ⊦ ;