| # s0 + # s1 < #(s0 ∪ s1) ⊦ #(s0 ∪ s1) = 0, s0 ∪ s1 = ∅ |
∀ s0. # s0 + # s < #(s0 ∪ s) → #(s0 ∪ s) = 0 ∨ s0 ∪ s = ∅, # s0 + #(s ++ a) < #(s0 ∪ (s ++ a)) ⊦ #(s0 ∪ (s ++ a)) = 0, s0 ∪ (s ++ a) = ∅
Used simplifier rules: une: ⊦ s ∪ ∅ = s;%una: ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1;%unc: ⊦ s ∪ s0 = s0 ∪ s;%set generated by ∅, ++;;%Size-empty: ⊦ # ∅ = 0; from specification set-basic%add-base: ⊦ n + 0 = n; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2%ref-1: ⊦ ¬ n < n; from specification nat-basic1