| n < # apebs, valid-peb(v, m, apebs[n]), ¬ v ∈ vtbl ∨ ¬ m < vtbl[v] ⊦ eq-entry(n, v × m).pnum < # apebs ∧ ¬ eq-entry(n, v × m).pnum ∈ [] ∧ (∀ v0, m0. (valid-peb(v0, m0, apebs[eq-entry(n, v × m).pnum]) ↔ eq-entry(n, v × m).lebref = v0 × m0) ∧ ( eq-entry(n, v × m).lebref = v0 × m0 ∧ v0 ∈ vtbl ∧ m0 < vtbl[v0] → apebs[eq-entry(n, v × m).pnum].vidhdr.sqn ≠ valid-sqns(v0, m0, apebs).max)) ∧ valid-eraseq-strong(apebs, vtbl, []) |
n < # apebs, valid-peb(v, m, apebs[n]), ¬ v ∈ vtbl ∨ ¬ m < vtbl[v] ⊦ (v × m = v0 × m0 → v = v0 ∧ m = m0) ∧ (v × m = v0 × m0 ∧ v0 ∈ vtbl ∧ m0 < vtbl[v0] → apebs[n].vidhdr.sqn ≠ valid-sqns(v0, m0, apebs).max)
Used simplifier rules: valid-eraseq-strong-base: ⊦ valid-eraseq-strong(apebs, vtbl, []);% ⊦ eq-entry(m, lref).lebref = lref; (s)%⊦ valid-peb(v0, m0, apeb) → (valid-peb(v1, m1, apeb) ↔ v0 = v1 ∧ m0 = m1); (s)% ⊦ ¬ n ∈ []; (s)% ⊦ eq-entry(m, lref).pnum = m; (s)