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