| avhdr.leb = VTBL_LNUM, avhdr.vol = VTBL_VOLID, wlar[m] = wl-entry(m1, used), apebs[m] = mkpeb(aehdr, avhdr, buf, m0, boolvar), m < # apebs, m < # wlar, indices-erasing(wlar, nx), is-encoded(to-vtbl(vols), buf), valid-indices(wlar, nx) ⊦ dups(nx), valid-vtbl(apebs, vols, wlar.mapIndices(nx, f), m) |
⊦ valid-vtbl(apebs, vols, wlar, n0) ↔ n0 < # apebs ∧ n0 < # wlar ∧ wlar[n0].status = used ∧ apebs[n0].vidhdr.vol = VTBL_VOLID ∧ apebs[n0].vidhdr.leb = VTBL_LNUM ∧ is-encoded(to-vtbl(vols), apebs[n0].data)
avhdr.leb = VTBL_LNUM, avhdr.vol = VTBL_VOLID, apebs[m] = mkpeb(aehdr, avhdr, buf, m0, boolvar), wlar[m] = wl-entry(m1, used), m < # wlar, m < # apebs, indices-erasing(wlar, nx), is-encoded(to-vtbl(vols), buf), valid-indices(wlar, nx) ⊦ dups(nx), m < # apebs ∧ m < # wlar.mapIndices(nx, f) ∧ wlar.mapIndices(nx, f)[m].status = used ∧ apebs[m].vidhdr.vol = VTBL_VOLID ∧ apebs[m].vidhdr.leb = VTBL_LNUM ∧ is-encoded(to-vtbl(vols), apebs[m].data)
Used terms: m, wlar.mapIndices(nx, f), vols, apebs