| 2 = # s0, ∃ s1. s0 = s1 ++ a0 ∧ ¬ a0 ∈ s1 ⊦ a ∈ s0, ∃ a0, b, c. a0 ≠ b ∧ a0 ≠ c ∧ b ≠ c ∧ s0 ++ a = ∅ ++ a0 ++ b ++ c |
1 = # s ⊦ a = a0, a0 ∈ s, a ∈ s, ∃ a1, b, c. a1 ≠ b ∧ a1 ≠ c ∧ b ≠ c ∧ s ++ a0 ++ a = ∅ ++ a1 ++ b ++ c
Used simplifier rules: Size-insert: ⊦ ¬ a ∈ s → #(s ++ a) = # s + 1;%add: ⊦ ¬ a ∈ s ++ b ↔ a ≠ b ∧ ¬ a ∈ s;%c: ⊦ m + n = n + m; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%add-num-04: n0 < n ⊦ (* n) = m0 + (* n0) ↔ n - n0 = m0; from specification nat