| # 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 |
# 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, avidhdr(v, n, m3, m2, m1), buf1, m5, false), aehdr1.valid?, avhdr0.sqn < m3, m0 < m, m < # wlar, m0 + 1 < # wlar, m0 < # wlar, valid-peb(v, n, mkpeb(aehdr0, avhdr0, buf0, m4, boolvar0)), m2 ≠ 0 → m2 ≤ datasize(buf1) ∧ m1 = checksum(buf1, m2), ∀ v, m. unique-elems(valid-sqns(v, m, apebs)) ⊦ aehdr1 = aechdr(aehdr1.ec), m = m0
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ avidhdr(v, m, m0, m1, m2).sqn = m0; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).data = buf; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).bad ↔ boolvar; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).echdr = aehdr; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).vidhdr = avhdr; (s)