| ∀ a0. a0 ≠ a ∧ ¬ a0 ∈ s1 ∨ ¬ a0 ∈ s0, ∀ s0. (∀ a. ¬ a ∈ s1 ∨ ¬ a ∈ s0) → #(s1 ∪ s0) = # s1 + # s0, a ∈ s0 ∨ a ∈ s1 ⊦ #(s0 ∪ s1) = #(s1 ++ a) + # s0, a ∈ s1 |
a ∈ s0, ∀ a0. a0 ≠ a ∧ ¬ a0 ∈ s1 ∨ ¬ a0 ∈ s0, ∀ s0. (∀ a. ¬ a ∈ s1 ∨ ¬ a ∈ s0) → #(s1 ∪ s0) = # s1 + # s0 ⊦ #(s0 ∪ s1) = (# s1 + 1) + # s0, # s0 = 0, s0 = ∅, a ∈ s1
Used simplifier rules: size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic%ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic% ⊦ ¬ a ∈ s → #(s ++ a) = # s + 1; (s)