| err = err0, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ [if err = ESUCCESS then {avol := fill(mkavolume(# lpt2), unmapped); adr := adr0; m := m0; plog := []; lpt := lpt2; ns := ∅} else avol := ?, adr := ?, m := ?, plog := ?, lpt := ?, ns := ?] ( (err = ESUCCESS → ebm-vol-inv(avol) ∧ # lpt = # avol) → ⟪if err = ESUCCESS then {apersistence_io_get_page_size#(adr, m, plog, avol, lpt, ns; ; m0); bleb := nobuffer; wbuf.content := mkbuf(m0); rofs := false}⟫ ( err = ESUCCESS → # wbuf.content = EB_PAGE_SIZE ∧ (bleb ≠ nobuffer → bleb.leb < # avol ∧ wbuf-cons(wbuf, avol[bleb.leb], rofs)) ∧ m0 = EB_PAGE_SIZE ∧ ebm-vol-inv(avol) ∧ # lpt = # avol)) |
err = ESUCCESS, err = err0, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ [avol := fill(mkavolume(# lpt2), unmapped); adr := adr0; m := m0; plog := []; lpt := lpt2; ns := ∅] ( (err = ESUCCESS → ebm-vol-inv(avol) ∧ # lpt = # avol) → ⟪if err = ESUCCESS then {apersistence_io_get_page_size#(adr, m, plog, avol, lpt, ns; ; m0); bleb := nobuffer; wbuf.content := mkbuf(m0); rofs := false}⟫ ( err = ESUCCESS → # wbuf.content = EB_PAGE_SIZE ∧ (bleb ≠ nobuffer → bleb.leb < # avol ∧ wbuf-cons(wbuf, avol[bleb.leb], rofs)) ∧ m0 = EB_PAGE_SIZE ∧ ebm-vol-inv(avol) ∧ # lpt = # avol))
err = err0, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ [avol := ?, adr := ?, m := ?, plog := ?, lpt := ?, ns := ?] ( (err = ESUCCESS → ebm-vol-inv(avol) ∧ # lpt = # avol) → ⟪if err = ESUCCESS then {apersistence_io_get_page_size#(adr, m, plog, avol, lpt, ns; ; m0); bleb := nobuffer; wbuf.content := mkbuf(m0); rofs := false}⟫ ( err = ESUCCESS → # wbuf.content = EB_PAGE_SIZE ∧ (bleb ≠ nobuffer → bleb.leb < # avol ∧ wbuf-cons(wbuf, avol[bleb.leb], rofs)) ∧ m0 = EB_PAGE_SIZE ∧ ebm-vol-inv(avol) ∧ # lpt = # avol)), err = ESUCCESS