| ¬ a ∈ s ∪ s0, ∀ s0. #(s0 ∪ s) = # s0 + # s - #(s0 ∩ s) ⊦ #((s ∪ s0) ++ a) = # s0 + # s + 1 - #(s0 ∩ (s ++ a)), a ∈ s |
∀ s0. #(s0 ∪ s) = # s0 + # s - #(s0 ∩ s) ⊦ #(s ∪ s0) + 1 = # s0 + # s + 1 - #(s0 ∩ s), a ∈ s, a ∈ s0
Used simplifier rules: unin: ⊦ ¬ a ∈ s → (a ∈ s ∪ s0 ↔ a ∈ s0);%una: ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1;%unc: ⊦ s ∪ s0 = s0 ∪ s;%intersection-insert: ⊦ ¬ a ∈ s → s ∩ (s0 ++ a) = s ∩ s0;%int-a: ⊦ (s ∩ s0) ∩ s1 = s ∩ s0 ∩ s1;%int-c: ⊦ s ∩ s0 = s0 ∩ s;%Size-insert: ⊦ ¬ a ∈ s → #(s ++ a) = # s + 1; from specification set-basic