| # buf = EB_PAGE_SIZE, # lpt0 = # avol1, # avol0 = # avol1, err = err0, 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), ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪avol0[m4] := unmapped⟫ ⟨awbuf_remap#(m4, adr0, m1, plog0, lpt0, ns0, bleb0, rofs; avol1; err1)⟩ (abs(avol1, bleb0, mkwbuf(buf, m3, m2), avol0, rofs) ∧ err = err1), buffered(m4) = bleb0, err = ESUCCESS |
# avol0 = # avol1, # lpt0 = # avol1, # buf = EB_PAGE_SIZE, err = err0, m4 < # avol0, 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), ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟨awbuf_remap#(m4, adr0, m1, plog0, lpt0, ns0, bleb0, rofs; avol1; err1)⟩ (abs(avol1, bleb0, mkwbuf(buf, m3, m2), avol0[m4, unmapped], rofs) ∧ err = err1), buffered(m4) = bleb0, err = ESUCCESS
Used simplifier rules: ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ ⌊err⌋ → err ≠ ESUCCESS; (s)%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat% ⊦ ¬ n < n; (s)