| # apebs = # wlar, recs[VTBL_VOLID × VTBL_LNUM] = recovery-entry(m0, m1), apebs[m0] = mkpeb(aehdr, avhdr, buf, m, boolvar), wlar[m0] = wl-entry(m2, stat), m0 < # wlar, is-encoded(to-vtbl(vols), buf), unmapped-vols(vols), valid-recs(apebs, wlar, recs), valid-vtbl-weak(apebs, m0), VTBL_VOLID × VTBL_LNUM ∈ recs ⊦ stat = used ∧ avhdr.vol = VTBL_VOLID ∧ avhdr.leb = VTBL_LNUM ∧ ¬ VTBL_VOLID ∈ vols |
⊦ valid-vtbl-weak(apebs, n) ↔ n < # apebs ∧ valid-peb(VTBL_VOLID, VTBL_LNUM, apebs[n]) ∧ apebs[n].vidhdr.sqn = valid-sqns(VTBL_VOLID, VTBL_LNUM, apebs).max ∧ (∃ vtbl. is-encoded(vtbl, apebs[n].data) ∧ ¬ VTBL_VOLID ∈ vtbl)
# apebs = # wlar, apebs[m0].vidhdr.sqn = valid-sqns(VTBL_VOLID, VTBL_LNUM, apebs).max, wlar[m0] = wl-entry(m2, stat), apebs[m0] = mkpeb(aehdr, avhdr, buf, m, boolvar), recs[VTBL_VOLID × VTBL_LNUM] = recovery-entry(m0, m1), m0 < # apebs, m0 < # wlar, is-encoded(to-vtbl(vols), buf), unmapped-vols(vols), valid-peb(VTBL_VOLID, VTBL_LNUM, apebs[m0]), valid-recs(apebs, wlar, recs), VTBL_VOLID × VTBL_LNUM ∈ recs, ∃ vtbl. is-encoded(vtbl, apebs[m0].data) ∧ ¬ VTBL_VOLID ∈ vtbl ⊦ stat = used ∧ avhdr.vol = VTBL_VOLID ∧ avhdr.leb = VTBL_LNUM ∧ ¬ VTBL_VOLID ∈ vols
Used terms: m0, apebs