| apebs[m] = mkpeb(aehdr, avhdr, buf, m0, boolvar) ⊦ valid-eraseq-stronger(apebs, eq-entry(m, lref) ' + []) ↔ m < # apebs ∧ (lref = none → ¬ valid-peb(mkpeb(aehdr, avhdr, buf, m0, boolvar))) ∧ (lref ≠ none → valid-peb(lref.vol, lref.leb, mkpeb(aehdr, avhdr, buf, m0, boolvar)) ∧ avhdr.sqn ≠ valid-sqns(lref.vol, lref.leb, apebs).max) |
⊦ valid-eraseq-stronger(apebs, eqent ' + q) ↔ eqent.pnum < # apebs ∧ ¬ eqent.pnum ∈ q ∧ (∀ v, m. (valid-peb(v, m, apebs[eqent.pnum]) ↔ eqent.lebref = v × m) ∧ (eqent.lebref = v × m → apebs[eqent.pnum].vidhdr.sqn ≠ valid-sqns(v, m, apebs).max)) ∧ valid-eraseq-stronger(apebs, q)
apebs[m] = mkpeb(aehdr, avhdr, buf, m0, boolvar) ⊦ eq-entry(m, lref).pnum < # apebs ∧ ¬ eq-entry(m, lref).pnum ∈ [] ∧ (∀ v, m0. (valid-peb(v, m0, apebs[eq-entry(m, lref).pnum]) ↔ eq-entry(m, lref).lebref = v × m0) ∧ (eq-entry(m, lref).lebref = v × m0 → apebs[eq-entry(m, lref).pnum].vidhdr.sqn ≠ valid-sqns(v, m0, apebs).max)) ∧ valid-eraseq-stronger(apebs, []) ↔ m < # apebs ∧ (lref = none → ¬ valid-peb(mkpeb(aehdr, avhdr, buf, m0, boolvar))) ∧ (lref ≠ none → valid-peb(lref.vol, lref.leb, mkpeb(aehdr, avhdr, buf, m0, boolvar)) ∧ avhdr.sqn ≠ valid-sqns(lref.vol, lref.leb, apebs).max)
Used terms: [], eq-entry(m, lref), apebs