| ⊦ ⟪apersistence_io_format#(# lpt2, LEB_SIZE, lpt2, adr0, m1; ; adr, m, plog, avol, lpt, ns, err); 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) |
# lpt = m, m0 = LEB_SIZE ⊦ ⟪apersistence_io_format#(m, m0, lpt, adr, m1; ; adr0, m2, plog, avol, lpt0, ns, err)⟫ (err = ESUCCESS → ebm-vol-inv(avol) ∧ # lpt0 = # avol)
# lpt2 = # lpt2, LEB_SIZE = LEB_SIZE, adr1 = adr0, lpt1 = lpt2, m3 = # lpt2, m4 = LEB_SIZE, m5 = m1 ⊦ [apersistence_io_format#(# lpt2, LEB_SIZE, lpt2, adr0, m1; ; adr, m, plog, avol, lpt, ns, err)] ( (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))