| n < # asar, m0 < # asar, disj(asar, 0, m0 + 1), n ≤ m0, ∀ n, asar, as. n < m0 ∧ n < # asar ∧ disj(asar, 0, m0) ∧ m0 ≤ # asar → union(asar[n, as], 0, m0) = (union(asar, 0, m0) \ asar[n]) ∪ as ⊦ asar[n, as][m0] ∪ union(asar[n, as], 0, m0) = ((asar[m0] ∪ union(asar, 0, m0)) \ asar[n]) ∪ as |
m0 = n, m0 < # asar, n < # asar, disj(asar, 0, m0 + 1), n ≤ m0, ∀ n, asar, as. n < m0 ∧ n < # asar ∧ disj(asar, 0, m0) ∧ m0 ≤ # asar → union(asar[n, as], 0, m0) = (union(asar, 0, m0) \ asar[n]) ∪ as ⊦ asar[n, as][m0] ∪ union(asar[n, as], 0, m0) = ((asar[m0] ∪ union(asar, 0, m0)) \ asar[n]) ∪ as
m0 < # asar, n < # asar, disj(asar, 0, m0 + 1), n ≤ m0, ∀ n, asar, as. n < m0 ∧ n < # asar ∧ disj(asar, 0, m0) ∧ m0 ≤ # asar → union(asar[n, as], 0, m0) = (union(asar, 0, m0) \ asar[n]) ∪ as ⊦ m0 = n, asar[n, as][m0] ∪ union(asar[n, as], 0, m0) = ((asar[m0] ∪ union(asar, 0, m0)) \ asar[n]) ∪ as
Used formulas: m0 = n