| # apebs = # wlar, avhdr0.sqn = valid-sqns(v, n, apebs, m).max, wlar[m] = wl-entry(m7, stat0), apebs[m0] = mkpeb(aehdr0, avhdr0, buf0, m4, boolvar0), apebs[m] = mkpeb(aehdr1, avhdr1, buf1, m5, false), m0 < # wlar, avhdr0.sqn < avhdr1.sqn, m0 < m, m < # wlar, m0 + 1 < # wlar, valid-peb(v, n, mkpeb(aehdr1, avhdr1, buf1, m5, false)), valid-peb(v, n, mkpeb(aehdr0, avhdr0, buf0, m4, boolvar0)), ∀ v, m. unique-elems(valid-sqns(v, m, apebs)) ⊦ aehdr1 = aechdr(aehdr1.ec), m = m0 |
⊦ valid-peb(v, m, apeb) ↔ ¬ apeb.bad ∧ apeb.echdr.valid? ∧ (∃ m0, m1, m2. apeb.vidhdr = avidhdr(v, m, m0, m1, m2) ∧ (m1 ≠ 0 → m1 ≤ datasize(apeb.data) ∧ m2 = checksum(apeb.data, m1)))
# apebs = # wlar, avhdr0.sqn = valid-sqns(v, n, apebs, m).max, apebs[m] = mkpeb(aehdr1, avhdr1, buf1, m5, false), apebs[m0] = mkpeb(aehdr0, avhdr0, buf0, m4, boolvar0), wlar[m] = wl-entry(m7, stat0), mkpeb(aehdr1, avhdr1, buf1, m5, false).echdr.valid?, m0 + 1 < # wlar, m < # wlar, m0 < m, avhdr0.sqn < avhdr1.sqn, m0 < # wlar, valid-peb(v, n, mkpeb(aehdr0, avhdr0, buf0, m4, boolvar0)), ∀ v, m. unique-elems(valid-sqns(v, m, apebs)), ∃ m0, m1, m2. mkpeb(aehdr1, avhdr1, buf1, m5, false).vidhdr = avidhdr(v, n, m0, m1, m2) ∧ (m1 ≠ 0 → m1 ≤ datasize(mkpeb(aehdr1, avhdr1, buf1, m5, false).data) ∧ m2 = checksum(mkpeb(aehdr1, avhdr1, buf1, m5, false).data, m1)) ⊦ aehdr1 = aechdr(aehdr1.ec), m = m0, mkpeb(aehdr1, avhdr1, buf1, m5, false).bad
Used terms: mkpeb(aehdr1, avhdr1, buf1, m5, false), n, v