| avol = fill(mkavolume(# lpt2), unmapped), err = ESUCCESS, err = err0, lpt = lpt2, err = ESUCCESS → ebm-vol-inv(avol) ∧ # lpt = # avol, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪if err = ESUCCESS then {apersistence_io_get_page_size#(adr0, m0, [], avol, lpt, ∅; ; 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) |
ebm-vol-inv(fill(mkavolume(# lpt2), unmapped)) ⊦ ⟪apersistence_io_get_page_size#(adr0, m0, [], fill(mkavolume(# lpt2), unmapped), lpt2, ∅; ; m0); bleb := nobuffer; wbuf.content := mkbuf(m0); rofs := false⟫ (# wbuf.content = EB_PAGE_SIZE ∧ (bleb ≠ nobuffer → bleb.leb < # lpt2 ∧ wbuf-cons(wbuf, unmapped, rofs)) ∧ m0 = EB_PAGE_SIZE)
Used simplifier rules: ⊦ m < n → fill(mkavolume(n), aleb)[m] = aleb; (s)% ⊦ # mkavolume(n) = n; (s)% ⊦ # fill(avol, aleb) = # avol; (s)% ⊦ ¬ ⌊ESUCCESS⌋ ; (s)