| # s0 + # s + 1 < #((s ∪ s0) ++ a), ∀ s0. ¬ # s0 + # s < #(s0 ∪ s) ⊦ a ∈ s, a ∈ s ∪ s0 |
# s0 + # s < #(s ∪ s0), ∀ s0. ¬ # s0 + # s < #(s0 ∪ s) ⊦ a ∈ s0, a ∈ s
Used simplifier rules: Union: ⊦ a ∈ s1 ∪ s2 ↔ a ∈ s1 ∨ a ∈ s2;%una: ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1;%unc: ⊦ s ∪ s0 = s0 ∪ s;% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ m + n < m + n0 ↔ n < n0; (s)% ⊦ ¬ a ∈ s → #(s ++ a) = # s + 1; (s)