| avol = fill(mkavolume(m3), unmapped), bleb = nobuffer, err = err0, err = ESUCCESS, lpt = fill(mklparray(m3), mklp(0, 0, LP_FREE, 0)), ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ [isbuf := false] ( (err = ESUCCESS → synced(avol) ∧ awbuf-inv(avol, bleb) ∧ # lpt = # avol) → ⟪lpt0 := fill(mklparray(m3), mklp(0, 0, LP_FREE, 0)); log0 := [], m1 := m0, adr0 := @(0, 0, 0); if err ≠ ESUCCESS then debug#("persistence: wbuf format failed") else {awbuf_get_leb_size#(adr0, m1, log0, avol, lpt, ∅, bleb, isbuf; ; m4); log1 := []; persistence_create_freelist#(lpt0; freelist); gc_heap_empty#(; gch)}⟫ ( err = ESUCCESS → synced(avol) ∧ lpt-free-unref(lpt0) ∧ lpt-free-unref(lpt) ∧ freelist-cons(lpt0, freelist) ∧ log1 = log0 ∧ bin-heap-inv(gch, lpt0) ∧ keyset(gch) = gc-heap(lpt0, log0) ∧ bufs-log-only(bleb, log0, lpt0) ∧ # lpt0 = # avol ∧ ¬ dups(log0) ∧ log-group-block(log0, lpt0) ∧ buf-ro-rw-mode(isbuf, bleb, lpt0, avol) ∧ lpt-leb-size(lpt0) ∧ lpt-leb-size(lpt) ∧ lpt-ram-flash(lpt0, lpt, log0) ∧ m4 = LEB_SIZE ∧ awbuf-inv(avol, bleb) ∧ # lpt = # avol)) |
isbuf ↔ false, avol = fill(mkavolume(m3), unmapped), bleb = nobuffer, err = ESUCCESS, err = err0, lpt = fill(mklparray(m3), mklp(0, 0, LP_FREE, 0)), err = ESUCCESS → synced(avol) ∧ awbuf-inv(avol, bleb) ∧ # lpt = # avol, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪lpt0 := fill(mklparray(m3), mklp(0, 0, LP_FREE, 0)); log0 := [], m1 := m0, adr0 := @(0, 0, 0); if err ≠ ESUCCESS then debug#("persistence: wbuf format failed") else {awbuf_get_leb_size#(adr0, m1, log0, avol, lpt, ∅, bleb, isbuf; ; m4); log1 := []; persistence_create_freelist#(lpt0; freelist); gc_heap_empty#(; gch)}⟫ ( err = ESUCCESS → synced(avol) ∧ lpt-free-unref(lpt0) ∧ lpt-free-unref(lpt) ∧ freelist-cons(lpt0, freelist) ∧ log1 = log0 ∧ bin-heap-inv(gch, lpt0) ∧ keyset(gch) = gc-heap(lpt0, log0) ∧ bufs-log-only(bleb, log0, lpt0) ∧ # lpt0 = # avol ∧ ¬ dups(log0) ∧ log-group-block(log0, lpt0) ∧ buf-ro-rw-mode(isbuf, bleb, lpt0, avol) ∧ lpt-leb-size(lpt0) ∧ lpt-leb-size(lpt) ∧ lpt-ram-flash(lpt0, lpt, log0) ∧ m4 = LEB_SIZE ∧ awbuf-inv(avol, bleb) ∧ # lpt = # avol)