| n < # apebs ⊦ valid-sqns(v, m, apebs[n, apeb], # apebs) = (valid-sqns(v, m, apebs, # apebs) \ (valid-peb(v, m, apebs[n]) ⊃ {apebs[n].vidhdr.sqn} ;∅)) ∪ (valid-peb(v, m, apeb) ⊃ {apeb.vidhdr.sqn} ;∅) |
⊦ m0 ≤ # apebs → valid-sqns(v, m, apebs[n, apeb], m0) = (n < m0 ⊃ (valid-sqns(v, m, apebs, m0) \ (valid-peb(v, m, apebs[n]) ⊃ {apebs[n].vidhdr.sqn} ;∅)) ∪ (valid-peb(v, m, apeb) ⊃ {apeb.vidhdr.sqn} ;∅) ;valid-sqns(v, m, apebs, m0) )
Used simplifier rules: ⊦ bag0 ∪ bag3 = bag0 ∪ bag4 ↔ bag3 = bag4; (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]% ⊦ m ≤ n ↔ ¬ n < m; (ss)% ⊦ ¬ n < n; (s)%bag ⊆ bag3 ⊦ (bag3 \ bag) ∪ bag4 = (bag3 ∪ bag4) \ bag; (s) Used terms: # apebs, apeb, n, apebs, m, v