| lpt-free-unref(lpt), log = log0, bufs-log-only(bleb, log, lpt0), # lpt0 = # avol, buf-ro-rw-mode(isbuf, bleb, lpt0, avol), lpt-leb-size(lpt), lpt-ram-flash(lpt0, lpt, log), awbuf-inv(avol, bleb), # lpt = # avol, adr.lnum < # avol, avol[adr.lnum].mapped?, adr.pos + adr.size ≤ # avol[adr.lnum].data, ∃ ind. abs-node(subarray(avol[adr.lnum].data, adr.pos, adr.size), ind) ⊦ ⟪persistence_read_ind#(adr, adr0, m, log0, avol, lpt, ns, bleb, isbuf; ind0; err)⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → abs-node(subarray(avol[adr.lnum].data, adr.pos, adr.size), ind0))) |
# lpt = # avol, # lpt0 = # avol, log = log0, avol[adr.lnum].mapped?, adr.lnum < # avol, awbuf-inv(avol, bleb), buf-ro-rw-mode(isbuf, bleb, lpt0, avol), bufs-log-only(bleb, log, lpt0), lpt-free-unref(lpt), lpt-leb-size(lpt), lpt-ram-flash(lpt0, lpt, log), adr.pos + adr.size ≤ # avol[adr.lnum].data, ∃ ind. abs-node(subarray(avol[adr.lnum].data, adr.pos, adr.size), ind) ⊦ ⟪persistence_read_ind#(adr, adr0, m, log0, avol, lpt, ns, bleb, isbuf; ind0; err)⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → abs-node(subarray(avol[adr.lnum].data, adr.pos, adr.size), ind0)))