| n ∈ below(ns0, m) ↔ n ∈ ns0 ∧ n < m, n < m, n = n0 ∨ n ∈ ns0, ∀ ns1, n, m. # ns1 < #(ns0 ++ n0) → true → (n ∈ below(ns1, m) ↔ n ∈ ns1 ∧ n < m) ⊦ n0 ∈ ns0, n ∈ (n0 < m ⊃ below(ns0, m) ++ n0;below(ns0, m)) |
n < m, n ∈ below(ns0, m), n ∈ ns0, ∀ ns1, n, m. # ns1 < #(ns0 ++ n0) → true → (n ∈ below(ns1, m) ↔ n ∈ ns1 ∧ n < m) ⊦ # below(ns0, m) = 0, # ns0 = 0, below(ns0, m) = ∅, ns0 = ∅, n ∈ (n0 < m ⊃ below(ns0, m) ++ n0;below(ns0, m)), n0 ∈ ns0
Used simplifier rules: size-zero-01: ⊦ ns ≠ ∅ → # ns ≠ 0; (forward) from specification set-basic[nat-set]%ne-01: ⊦ n ∈ ns → ns ≠ ∅; (forward) from specification set-basic[nat-set]% ⊦ ¬ n ∈ ns → (n ∈ ns ++ n0 ↔ n = n0); (s)% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic