| eqent.pnum < # apebs, eqent.pnum < m, m < # apebs, eqent.pnum + 1 < # apebs, valid-eraseq-stronger(subarray(apebs, 0, m), q0), ∀ v, m0. (valid-peb(v, m0, apebs[eqent.pnum]) ↔ eqent.lebref = v × m0) ∧ (eqent.lebref = v × m0 → apebs[eqent.pnum].vidhdr.sqn ≠ valid-sqns(v, m0, apebs, m).max), ∀ m, apebs. m < # apebs ∧ valid-eraseq-stronger(subarray(apebs, 0, m), q0) → valid-eraseq-stronger(subarray(apebs, 0, m + 1), q0) ⊦ eqent.pnum ∈ q0, (valid-peb(v, m0, subarray(apebs, 0, m + 1)[eqent.pnum]) ↔ eqent.lebref = v × m0) ∧ ( eqent.lebref = v × m0 → subarray(apebs, 0, m + 1)[eqent.pnum].vidhdr.sqn ≠ (valid-sqns(v, m0, apebs, m) ∪ (valid-peb(v, m0, apebs[m]) ⊃ {apebs[m].vidhdr.sqn} ;∅)).max) ∧ valid-eraseq-stronger(subarray(apebs, 0, m + 1), q0) |
eqent = eq-entry(m1, lref), m1 + 1 < # apebs, m < # apebs, m1 < m, m1 < # apebs, valid-eraseq-stronger(subarray(apebs, 0, m), q0), ∀ m, apebs. m < # apebs ∧ valid-eraseq-stronger(subarray(apebs, 0, m), q0) → valid-eraseq-stronger(subarray(apebs, 0, m + 1), q0), ∀ v, m0. (valid-peb(v, m0, apebs[m1]) ↔ lref = v × m0) ∧ (lref = v × m0 → apebs[m1].vidhdr.sqn ≠ valid-sqns(v, m0, apebs, m).max) ⊦ m1 ∈ q0, (valid-peb(v, m0, subarray(apebs, 0, m + 1)[m1]) ↔ lref = v × m0) ∧ ( lref = v × m0 → subarray(apebs, 0, m + 1)[m1].vidhdr.sqn ≠ (valid-sqns(v, m0, apebs, m) ∪ (valid-peb(v, m0, apebs[m]) ⊃ {apebs[m].vidhdr.sqn} ;∅)).max) ∧ valid-eraseq-stronger(subarray(apebs, 0, m + 1), q0)
Used simplifier rules: ⊦ m = eqent.pnum ∧ lref = eqent.lebref ↔ eqent = eq-entry(m, lref); (elim) Used terms: eqent, m1, lref