| 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) ) |
m1 +1 ≤ # apebs, ∀ apebs, v, m, n, apeb. m1 ≤ # apebs → valid-sqns(v, m, apebs[n, apeb], m1) = (n < m1 ⊃ (valid-sqns(v, m, apebs, m1) \ (valid-peb(v, m, apebs[n]) ⊃ {apebs[n].vidhdr.sqn} ;∅)) ∪ (valid-peb(v, m, apeb) ⊃ {apeb.vidhdr.sqn} ;∅) ;valid-sqns(v, m, apebs, m1) ) ⊦ valid-sqns(v, m, apebs[n, apeb], m1 +1) = (n < m1 +1 ⊃ (valid-sqns(v, m, apebs, m1 +1) \ (valid-peb(v, m, apebs[n]) ⊃ {apebs[n].vidhdr.sqn} ;∅)) ∪ (valid-peb(v, m, apeb) ⊃ {apeb.vidhdr.sqn} ;∅) ;valid-sqns(v, m, apebs, m1 +1) )
Used simplifier rules: valid-sqns-base: ⊦ valid-sqns(v, m, apebs, 0) = ∅;%nat freely generated by 0, +1;;% ⊦ ¬ m < 0; (s)