| # avol0 = # avol1, # lpt0 = # avol1, # buf0 = EB_PAGE_SIZE, avol0[m5] = mapped(buf2), avol1[m5] = mapped(buf), m5 < # avol1, abs(avol1, buffered(m5), mkwbuf(buf0, m4, m3), avol0, false), awbuf-inv(avol1, buffered(m5)), ebm-vol-inv(avol0), synced(avol1), wbuf-cons(mkwbuf(buf0, m4, m3), mapped(buf2), false) ⊦ ⟨fail_or_success#(; ; err); plog := plog0; bleb := buffered(m5); if err = ESUCCESS then plog := plog + m5 ', bleb := buffered(m5)⟩ (bleb = buffered(m5) ∧ plog = plog0 + m5 ' ∧ ESUCCESS = err) |
# buf0 = EB_PAGE_SIZE, # lpt0 = # avol1, # avol0 = # avol1, avol1[m5] = mapped(buf), avol0[m5] = mapped(buf2), m5 < # avol1, abs(avol1, buffered(m5), mkwbuf(buf0, m4, m3), avol0, false), awbuf-inv(avol1, buffered(m5)), ebm-vol-inv(avol0), synced(avol1), wbuf-cons(mkwbuf(buf0, m4, m3), mapped(buf2), false) ⊦ ⟨choose err0 with ⌊err0⌋ ∨ err0 = ESUCCESS in err := err0; plog := plog0; bleb := buffered(m5); if err = ESUCCESS then plog := plog + m5 ', bleb := buffered(m5)⟩ (bleb = buffered(m5) ∧ plog = plog0 + m5 ' ∧ ESUCCESS = err)
Used simplifier rules: fail_or_success#(; ; ERR) {choose ERR0 with ⌊ERR0⌋ ∨ ERR0 = ESUCCESS in ERR := ERR0};