| eqent.pnum < # apebs, valid-eraseq-strong(apebs, to-vtbl(vols), q0), ∀ v0, m0. (valid-peb(v0, m0, apebs[eqent.pnum]) ↔ eqent.lebref = v0 × m0) ∧ (eqent.lebref = v0 × m0 ∧ v0 ∈ vols ∧ m0 < # vols[v0] → apebs[eqent.pnum].vidhdr.sqn ≠ valid-sqns(v0, m0, apebs).max), ∀ apebs, vols, n, v, m. valid-eraseq-strong(apebs, to-vtbl(vols), q0) ∧ eq-entry(n, v × m) ∈ q0 → valid-peb(v, m, apebs[n]) ∧ (v ∈ vols ∧ m < # vols[v] → apebs[n].vidhdr.sqn ≠ valid-sqns(v, m, apebs).max), eq-entry(n, v × m) = eqent ∨ eq-entry(n, v × m) ∈ q0 ⊦ eqent.pnum ∈ q0, valid-peb(v, m, apebs[n]) ∧ (v ∈ vols ∧ m < # vols[v] → apebs[n].vidhdr.sqn ≠ valid-sqns(v, m, apebs).max) |
eqent = eq-entry(m1, lref), m1 < # apebs, valid-eraseq-strong(apebs, to-vtbl(vols), q0), ∀ apebs, vols, n, v, m. valid-eraseq-strong(apebs, to-vtbl(vols), q0) ∧ eq-entry(n, v × m) ∈ q0 → valid-peb(v, m, apebs[n]) ∧ (v ∈ vols ∧ m < # vols[v] → apebs[n].vidhdr.sqn ≠ valid-sqns(v, m, apebs).max), ∀ v0, m0. (valid-peb(v0, m0, apebs[m1]) ↔ lref = v0 × m0) ∧ (lref = v0 × m0 ∧ v0 ∈ vols ∧ m0 < # vols[v0] → apebs[m1].vidhdr.sqn ≠ valid-sqns(v0, m0, apebs).max), eq-entry(n, v × m) = eqent ∨ eq-entry(n, v × m) ∈ q0 ⊦ m1 ∈ q0, valid-peb(v, m, apebs[n]) ∧ (v ∈ vols ∧ m < # vols[v] → apebs[n].vidhdr.sqn ≠ valid-sqns(v, m, apebs).max)
Used simplifier rules: ⊦ m = eqent.pnum ∧ lref = eqent.lebref ↔ eqent = eq-entry(m, lref); (elim) Used terms: eqent, m1, lref