| 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) ++ a), a ∈ s0, ∀ s0. # s0 + # s1 < #(s0 ∩ s1) → #(s0 ∩ s1) = 0 ∨ s0 ∩ s1 = ∅ ⊦ s0 = ∅, #((s0 ∩ s1) ++ a) = 0, # s0 = 0, a ∈ s1
Used simplifier rules: size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic%size-zero: ⊦ # s ≠ 0 → s ≠ ∅; (forward) from specification set-basic%ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1%ne: ⊦ ∅ ≠ s ++ a; from specification set-basic