| # apebs = # wlar, apebs[m] = mkpeb(aehdr, avidhdr(v, n, m3, m1, m0), buf, m2, false), valid-sqns(v, n, apebs, m) = ∅, aehdr.valid?, m < # wlar, m1 ≠ 0 → m1 ≤ datasize(buf) ∧ m0 = checksum(buf, m1), ∀ n0. n0 < m → (wlar[n0].status = erroneous ↔ apebs[n0].bad) ∧ (wlar[n0].status = free → apebs[n0].vidhdr = empty) ∧ (wlar[n0].status ≠ erroneous ∧ wlar[n0].status ≠ erasing → apebs[n0].echdr = aechdr(wlar[n0].ec)) ∧ (wlar[n0].status = used → (∃ v0, m1. valid-peb(v0, m1, apebs[n0]) ∧ apebs[n0].vidhdr.sqn = valid-sqns(v0, m1, apebs, m).max)) ⊦ aehdr = aechdr(aehdr.ec) |
Used simplifier rules: ⊦ aehdr.valid? → (m = aehdr.ec ↔ aehdr = aechdr(m)); (elim) Used terms: aehdr, m3