| # s0 + # s1 + 1 < #((s0 ∩ s1) ++ a), a ∈ s0, ∀ s0. # s0 + # s1 < #(s0 ∩ s1) → #(s0 ∩ s1) = 0 ∨ s0 ∩ s1 = ∅ ⊦ s0 = ∅, #((s0 ∩ s1) ++ a) = 0, # s0 = 0, a ∈ s1 |
⊦ ¬ a ∈ s → #(s ++ a) = # s + 1
¬ a ∈ s0 ∩ s1, # s0 + # s1 + 1 < #(s0 ∩ s1) + 1, a ∈ s0, ∀ s0. # s0 + # s1 < #(s0 ∩ s1) → #(s0 ∩ s1) = 0 ∨ s0 ∩ s1 = ∅ ⊦ s0 = ∅, #(s0 ∩ s1) + 1 = 0, # s0 = 0, a ∈ s1
Used simplifier rules: Intersect: ⊦ a ∈ s1 ∩ s2 ↔ a ∈ s1 ∧ a ∈ s2;%int-a: ⊦ (s ∩ s0) ∩ s1 = s ∩ s0 ∩ s1;%int-c: ⊦ s ∩ s0 = s0 ∩ s;%eq: ⊦ a ∈ s → s ++ a = s; from specification set-basic Used terms: a, s0 ∩ s1