| n < # asar, disj(asar, 0, n + 1), ∀ n0, asar, as. n0 < n ∧ n0 < # asar ∧ disj(asar, 0, n) ∧ n ≤ # asar → union(asar[n0, as], 0, n) = (union(asar, 0, n) \ asar[n0]) ∪ as ⊦ as ∪ union(asar, 0, n) = (union(asar, 0, n) \ asar[n]) ∪ as |
⊦ as ∩ as0 = ∅ → as \ as0 = as
n < # asar, disj(asar, 0, n + 1), ∀ n0, asar, as. n0 < n ∧ n0 < # asar ∧ disj(asar, 0, n) ∧ n ≤ # asar → union(asar[n0, as], 0, n) = (union(asar, 0, n) \ asar[n0]) ∪ as ⊦ union(asar, 0, n) ∩ asar[n] = ∅, as ∪ union(asar, 0, n) = (union(asar, 0, n) \ asar[n]) ∪ as
Used simplifier rules: unc: ⊦ as ∪ as0 = as0 ∪ as; from specification set-union[address-list-set] Used terms: asar[n], union(asar, 0, n)