| # avol0 = # avol1, # lpt0 = # avol1, # buf = EB_PAGE_SIZE, buffered(m4) ≠ bleb0, m4 < # avol1, abs(avol1, bleb0, mkwbuf(buf, m3, m2), avol0, rofs), awbuf-inv(avol1, bleb0), ebm-vol-inv(avol0), synced(avol1), bleb0 ≠ nobuffer → bleb0.leb < # avol1 ∧ wbuf-cons(mkwbuf(buf, m3, m2), avol0[bleb0.leb], rofs) ⊦ ⟪fail_or_success#(; ; err); if err = ESUCCESS then avol0[m4] := mapped(mkbuf(0)) else {skip or avol0[m4] := unmapped}⟫ ⟨awbuf_remap#(m4, adr0, m1, plog0, lpt0, ns0, bleb0, rofs; avol1; err0)⟩ (abs(avol1, bleb0, mkwbuf(buf, m3, m2), avol0, rofs) ∧ err = err0) |
# buf = EB_PAGE_SIZE, # lpt0 = # avol1, # avol0 = # avol1, m4 < # avol1, abs(avol1, bleb0, mkwbuf(buf, m3, m2), avol0, rofs), awbuf-inv(avol1, bleb0), ebm-vol-inv(avol0), synced(avol1), bleb0 ≠ nobuffer → bleb0.leb < # avol1 ∧ wbuf-cons(mkwbuf(buf, m3, m2), avol0[bleb0.leb], rofs) ⊦ ⟪choose err0 with ⌊err0⌋ ∨ err0 = ESUCCESS in err := err0; if err = ESUCCESS then avol0[m4] := mapped(mkbuf(0)) else {skip or avol0[m4] := unmapped}⟫ ⟨awbuf_remap#(m4, adr0, m1, plog0, lpt0, ns0, bleb0, rofs; avol1; err0)⟩ (abs(avol1, bleb0, mkwbuf(buf, m3, m2), avol0, rofs) ∧ err = err0), buffered(m4) = bleb0
Used simplifier rules: fail_or_success#(; ; ERR) {choose ERR0 with ⌊ERR0⌋ ∨ ERR0 = ESUCCESS in ERR := ERR0};