| ax.toSet ∩ as = ∅, n ≤ # ax ⊦ #(firstn(n, ax).toSet ∩ as) = 0, firstn(n, ax).toSet ∩ as = ∅ |
Used simplifier rules: ⊦ (ax + ax0).toSet = ax.toSet ∪ ax0.toSet; (s)%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]% ⊦ as ∩ (as0 ∪ as1) = ∅ ↔ as ∩ as0 = ∅ ∧ as ∩ as1 = ∅; (ws)%int-c: ⊦ as ∩ as0 = as0 ∩ as; from specification set-union[node-store]%una: ⊦ (as ∪ as0) ∪ as1 = as ∪ as0 ∪ as1; from specification set-union[node-store]%unc: ⊦ as ∪ as0 = as0 ∪ as; from specification set-union[node-store]%int-a: ⊦ (as ∩ as0) ∩ as1 = as ∩ as0 ∩ as1; from specification set-union[node-store]%⊦ n ≤ # ax → ( ax0 = firstn(n, ax) ∧ ax1 = restn(n, ax) ↔ ax = ax0 + ax1 ∧ # ax0 = n); (elim) Used terms: ax, n, ax0, ax1