| wlar[n] = wl-entry(m0, stat), valid-ebatbl(apebs, wlar, vols, m1) ⊦ mapped-pebs(vols) -- n = mapped-pebs(vols), stat = used |
vols[v][m] = ⌜n⌝ , wlar[n] = wl-entry(m0, stat), m < # vols[v], v ∈ vols, ∀ v, m, n1. vols[v][m] = ⌜n1⌝ ∧ v ∈ vols ∧ m < # vols[v] ↔ wlar[n1].status = used ∧ n1 < # apebs ∧ n1 < # wlar ∧ apebs[n1].vidhdr.valid? ∧ apebs[n1].vidhdr.vol = v ∧ apebs[n1].vidhdr.leb = m ∧ n1 ≠ m1 ⊦ stat = used
Used simplifier rules: mapped-pebs: ⊦ n ∈ mapped-pebs(vols) ↔ (∃ v, m. v ∈ vols ∧ m < # vols[v] ∧ vols[v][m] = ⌜n⌝ );%valid-ebatbl: ⊦ valid-ebatbl(apebs, wlar, vols, n0) ↔ (∀ v, m, n. vols[v][m] = ⌜n⌝ ∧ v ∈ vols ∧ m < # vols[v] ↔ wlar[n].status = used ∧ n < # apebs ∧ n < # wlar ∧ apebs[n].vidhdr.valid? ∧ apebs[n].vidhdr.vol = v ∧ apebs[n].vidhdr.leb = m ∧ n ≠ n0);% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ ns -- n = ns ↔ ¬ n ∈ ns; (s)