| # apebs = # wlar, wlar[n1] = wl-entry(m1, stat), avols[v][vtblpnum3] = mapped(buf2, m), vols[v][vtblpnum3] = ⌜n1⌝ , apebs[n1] = mkpeb(aehdr, avhdr, buf2, m0, false), avhdr.valid?, vtblpnum3 < # vols[v], vtblpnum3 < # avols[v], n1 < # wlar, abs(avols, apebs, vols, q), bflipset-cons(bflipset, wlar), ebm-cons(avols), is-aligned(n, EB_PAGE_SIZE), is-aligned(vtblpnum5, EB_PAGE_SIZE), ubi-io-inv(apebs), ubi-io-peb-inv(mkpeb(aehdr, avhdr, buf2, m0, false)), unique-sqns(apebs), valid-eraseq(apebs, q), valid-eraseq(wlar, q), valid-eraseq(q), valid-global-sqn(apebs, sqnum), valid-vtbl(apebs, vols, wlar, vtblpnum4), valid-wl(apebs, wlar), v ∈ vols, v ∈ avols, m ≤ vtblpnum5, n0 + n ≤ # buf, n + n0 ≤ # buf, vtblpnum5 + n ≤ LEB_SIZE, m0 ≤ vtblpnum5, ∀ v0, m2, n2. vols[v0][m2] = ⌜n2⌝ ∧ v0 ∈ vols ∧ m2 < # vols[v0] ↔ wlar[n2].status = used ∧ n2 < # wlar ∧ apebs[n2].vidhdr.valid? ∧ apebs[n2].vidhdr.vol = v0 ∧ apebs[n2].vidhdr.leb = m2 ∧ n2 ≠ vtblpnum4 ⊦ n = 0, VTBL_VOLID ∈ vols, stat = used ∧ vtblpnum4 ≠ n1 |
Used simplifier rules: ⊦ v ∈ avols ∧ abs(avols, apebs, vols, q) → v ∈ vols; (ss)%⊦ v ∈ avols ∧ m < # avols[v] ∧ abs(avols, apebs, vols, q) → m < # vols[v]; (ss)%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic% ⊦ wl-entry(m, stat).status = stat; (s) Used terms: v, vtblpnum3, n1