| avhdr.sqn = valid-sqns(v, m, apebs).max, apebs[n] = mkpeb(aehdr, avhdr, buf, m0, boolvar), m3 < # apebs, m < # vols[v], valid-eraseq-strong(apebs, to-vtbl(vols), q0), valid-peb(v, m, mkpeb(aehdr, avhdr, buf, m0, boolvar)), v ∈ vols, n ∈ eq-entry(m3, lref) ' + q0, ∀ avhdr0, v0, m1, apebs0, n0, aehdr0, buf0, m2, boolvar0, vols0. avhdr0.sqn ≠ valid-sqns(v0, m1, apebs0).max ∨ apebs0[n0] ≠ mkpeb(aehdr0, avhdr0, buf0, m2, boolvar0) ∨ ¬ m1 < # vols0[v0] ∨ ¬ valid-eraseq-strong(apebs0, to-vtbl(vols0), q0) ∨ ¬ valid-peb(v0, m1, mkpeb(aehdr0, avhdr0, buf0, m2, boolvar0)) ∨ ¬ n0 ∈ q0 ∨ ¬ v0 ∈ vols0, ∀ v0, m1. (valid-peb(v0, m1, apebs[m3]) ↔ lref = v0 × m1) ∧ (lref = v0 × m1 ∧ v0 ∈ vols ∧ m1 < # vols[v0] → apebs[m3].vidhdr.sqn ≠ valid-sqns(v0, m1, apebs).max) ⊦ m3 ∈ q0 |
avhdr.sqn = valid-sqns(v, m, apebs).max, apebs[n] = mkpeb(aehdr, avhdr, buf, m0, boolvar), apebs[m3] = mkpeb(aehdr1, avhdr1, buf1, m4, boolvar1), m < # vols[v], m3 < # apebs, valid-eraseq-strong(apebs, to-vtbl(vols), q0), valid-peb(v, m, mkpeb(aehdr, avhdr, buf, m0, boolvar)), n ∈ eq-entry(m3, lref) ' + q0, v ∈ vols, ∀ v0, m1. (valid-peb(v0, m1, apebs[m3]) ↔ lref = v0 × m1) ∧ (lref = v0 × m1 ∧ v0 ∈ vols ∧ m1 < # vols[v0] → avhdr1.sqn ≠ valid-sqns(v0, m1, apebs).max), ∀ avhdr0, v0, m1, apebs0, n0, aehdr0, buf0, m2, boolvar0, vols0. avhdr0.sqn ≠ valid-sqns(v0, m1, apebs0).max ∨ apebs0[n0] ≠ mkpeb(aehdr0, avhdr0, buf0, m2, boolvar0) ∨ ¬ m1 < # vols0[v0] ∨ ¬ valid-eraseq-strong(apebs0, to-vtbl(vols0), q0) ∨ ¬ valid-peb(v0, m1, mkpeb(aehdr0, avhdr0, buf0, m2, boolvar0)) ∨ ¬ n0 ∈ q0 ∨ ¬ v0 ∈ vols0 ⊦ m3 ∈ q0
Used simplifier rules: ⊦ ( ((aehdr = apeb.echdr ∧ avhdr = apeb.vidhdr) ∧ buf = apeb.data) ∧ m = apeb.fill) ∧ (boolvar ↔ apeb.bad) ↔ apeb = mkpeb(aehdr, avhdr, buf, m, boolvar); (elim) Used terms: apebs[m3], aehdr1, avhdr1, buf1, m4, boolvar1