| # 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) |
Used simplifier rules: ⊦ ¬ ⌊ESUCCESS⌋ ; (s)% ⊦ awbuf-inv(avol, nobuffer) → (synced(avol) ↔ true); (ss)% ⊦ avol1 ↓ avol0 ∧ awbuf-inv(avol0, bleb) → awbuf-inv(avol1, nobuffer); (s)% ⊦ avol1 ↓ avol0 ∧ # avol0 = n → (n = # avol1 ↔ true); (ss)