| avhdr0.sqn = (valid-sqns(v0, m1, apebs, m) ∪ (v = v0 ∧ n = m1 ⊃ {avhdr.sqn} ;∅)).max, apebs[m2] = mkpeb(aehdr0, avhdr0, buf0, m3, false), apebs[m] = mkpeb(aehdr, avhdr, buf, m0, boolvar), m2 + 1 < # apebs, m < # apebs, m2 < # apebs, avhdr.sqn < valid-sqns(v, n, apebs, m).max, m2 < m, valid-eraseq-stronger(subarray(apebs, 0, m), q0), valid-eraseq-stronger(subarray(apebs, 0, m + 1), q0 + eq-entry(m, v × n) '), valid-peb(v0, m1, mkpeb(aehdr0, avhdr0, buf0, m3, false)), valid-peb(v, n, mkpeb(aehdr, avhdr, buf, m0, boolvar)) ⊦ avhdr0.sqn = valid-sqns(v0, m1, apebs, m).max, m2 = m, valid-sqns(v, n, apebs, m) = ∅, m2 ∈ q0 |
Used simplifier rules: ⊦ ∅ ∪ bag0 = bag0; (s)%union-ass: ⊦ bag ∪ bag3 ∪ bag4 = (bag ∪ bag3) ∪ bag4; from specification bag-union[nat-bag]%union-com: ⊦ bag ∪ bag2 = bag2 ∪ bag; from specification bag-union[nat-bag]% ⊦ bag ∪ {n} = bag ++ n; (s)% ⊦ bag ≠ ∅ → (bag ++ m).max = (bag.max > m ⊃ bag.max;m); (s)% ⊦ m > n ↔ n < m; (s)