| #(s1 ++ a) < # s0, # s1 < # s1 → (∃ a. a ∈ s1 ∧ ¬ a ∈ s1), ∀ s0. # s1 < # s0 → (∃ a. a ∈ s0 ∧ ¬ a ∈ s1) ⊦ a ∈ s1, # s0 = 0, s0 = ∅, a ∈ s0, ∃ a0. a0 ∈ s0 ∧ ¬ a0 ∈ s1 |
# s1 + 1 < # s0, ∀ s0. # s1 < # s0 → (∃ a. a ∈ s0 ∧ ¬ a ∈ s1) ⊦ # s0 = 0, s0 = ∅, a ∈ s1, a ∈ s0, ∃ a0. a0 ∈ s0 ∧ ¬ a0 ∈ s1
Used simplifier rules: Size-insert: ⊦ ¬ a ∈ s → #(s ++ a) = # s + 1;%ref-1: ⊦ ¬ n < n; from specification nat-basic1