| # apebs = # wlar, recs[VTBL_VOLID × VTBL_LNUM] = recovery-entry(m0, m1), apebs[m0] = mkpeb(aehdr, avhdr, buf, m, boolvar), m0 < # wlar, is-encoded(to-vtbl(vols) ∪ vtbl0, buf), unmapped-vols(vols), valid-recs(apebs, wlar, recs), valid-vtbl-weak(apebs, m0), v ∈ vtbl0, VTBL_VOLID × VTBL_LNUM ∈ recs, to-vtbl(vols) ⊥ vtbl0 ⊦ vtbl0 = ∅, unmapped-vols(vols[v, fill(mkebatbl(vtbl0[v]), unmapped)]), v ∈ vols |
⊦ unmapped-vols(vols) ↔ (∀ v, m. v ∈ vols ∧ m < # vols[v] → vols[v][m] = unmapped)
# apebs = # wlar, apebs[m0] = mkpeb(aehdr, avhdr, buf, m, boolvar), recs[VTBL_VOLID × VTBL_LNUM] = recovery-entry(m0, m1), m0 < # wlar, is-encoded(to-vtbl(vols) ∪ vtbl0, buf), unmapped-vols(vols), valid-recs(apebs, wlar, recs), valid-vtbl-weak(apebs, m0), VTBL_VOLID × VTBL_LNUM ∈ recs, v ∈ vtbl0, to-vtbl(vols) ⊥ vtbl0 ⊦ vtbl0 = ∅, v ∈ vols, ∀ v0, m. v0 ∈ vols[v, fill(mkebatbl(vtbl0[v]), unmapped)] ∧ m < # vols[v, fill(mkebatbl(vtbl0[v]), unmapped)][v0] → vols[v, fill(mkebatbl(vtbl0[v]), unmapped)][v0][m] = unmapped
Used terms: vols[v, fill(mkebatbl(vtbl0[v]), unmapped)]