| ¬ a ∈ s0, # s0 + # s1 + 1 < #(s0 ∩ (s1 ++ a)), ∀ s0. # s0 + # s1 < #(s0 ∩ s1) → #(s0 ∩ s1) = 0 ∨ s0 ∩ s1 = ∅ ⊦ #(s0 ∩ (s1 ++ a)) = 0, s0 ∩ (s1 ++ a) = ∅, a ∈ s1 |
# s0 + # s1 + 1 < #(s0 ∩ s1), ∀ s0. # s0 + # s1 < #(s0 ∩ s1) → #(s0 ∩ s1) = 0 ∨ s0 ∩ s1 = ∅ ⊦ #(s0 ∩ s1) = 0, s0 ∩ s1 = ∅, a ∈ s1, a ∈ s0
Used simplifier rules: intersection-insert: ⊦ ¬ a ∈ s → s ∩ (s0 ++ a) = s ∩ s0;%int-a: ⊦ (s ∩ s0) ∩ s1 = s ∩ s0 ∩ s1;%int-c: ⊦ s ∩ s0 = s0 ∩ s;%size-zero: ⊦ # s ≠ 0 → s ≠ ∅; (forward) from specification set-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1