| ¬ a ∈ s1, # s0 + #(s1 ++ a) < #(s0 ∩ (s1 ++ a)), ∀ s0. # s0 + # s1 < #(s0 ∩ s1) → #(s0 ∩ s1) = 0 ∨ s0 ∩ s1 = ∅ ⊦ #(s0 ∩ (s1 ++ a)) = 0, s0 ∩ (s1 ++ a) = ∅ |
# 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
Used simplifier rules: a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%Size-insert: ⊦ ¬ a ∈ s → #(s ++ a) = # s + 1; from specification set-basic