| ¬ a ∈ s0 ∪ s1, ∀ s0. (∀ a. ¬ a ∈ s1 ∨ ¬ a ∈ s0) → #(s1 ∪ s0) = # s1 + # s0, ∀ a0. ¬ a0 ∈ s1 ++ a ∨ ¬ a0 ∈ s0 ⊦ #(s0 ∪ s1) + 1 = #(s1 ++ a) + # s0 |
∀ s0. (∀ a. ¬ a ∈ s1 ∨ ¬ a ∈ s0) → #(s1 ∪ s0) = # s1 + # s0, ∀ a0. ¬ a0 ∈ s1 ∨ ¬ a0 ∈ s0 ⊦ #(s0 ∪ s1) = # s1 + # s0, a ∈ s0, a ∈ s1
Used simplifier rules: Union: ⊦ a ∈ s1 ∪ s2 ↔ a ∈ s1 ∨ a ∈ s2;%una: ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1;%unc: ⊦ s ∪ s0 = s0 ∪ s;%rax: ⊦ a ∈ s ++ b ↔ ¬ ¬(a = b ∨ a ∈ s); from specification set-basic%c: ⊦ m + n = n + m; from specification nat-basic2%eq-01: ⊦ m + n = m + n0 ↔ n = n0; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%Size-insert: ⊦ ¬ a ∈ s → #(s ++ a) = # s + 1; from specification set-basic