| buf = mkbuf(0), orphans = orphans, orphans0 = orphans, orphans1 = orphans, n < # avol, ebm-vol-inv(avol) ⊦ [persistence_io_encode_orphans#(EB_PAGE_SIZE, LEB_SIZE; orphans, buf; err)] ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded-pad(orphans1, # orphans1, buf) ∧ # buf ≤ LEB_SIZE) → ⟪m1 := n; avol0 := avol; if err = ESUCCESS then ebm_avol_remap#(m1; avol; err); if err = ESUCCESS then ebm_avol_write#(m1, 0, 0, # buf, buf; avol; err)⟫ ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ ebm-vol-inv(avol) ∧ id○(avol, avol0, n) ∧ (err = ESUCCESS → avol[n].mapped? ∧ is-encoded-pad(orphans0, # orphans0, avol[n].data)))) |
buf = mkbuf(0), orphans0 = orphans, n < # avol, ebm-vol-inv(avol) ⊦ [persistence_io_encode_orphans#(EB_PAGE_SIZE, LEB_SIZE; orphans, buf; err)] ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded-pad(orphans0, # orphans0, buf) ∧ # buf ≤ LEB_SIZE) → ⟪m1 := n; avol0 := avol; if err = ESUCCESS then ebm_avol_remap#(m1; avol; err); if err = ESUCCESS then ebm_avol_write#(m1, 0, 0, # buf, buf; avol; err)⟫ ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ ebm-vol-inv(avol) ∧ id○(avol, avol0, n) ∧ (err = ESUCCESS → avol[n].mapped? ∧ is-encoded-pad(orphans0, # orphans0, avol[n].data))))