| n ∈ below(ns0, m) ↔ n ∈ ns0 ∧ n < m, n ∈ (n0 < m ⊃ below(ns0, m) ++ n0;below(ns0, m)), ∀ ns1, n, m. # ns1 < #(ns0 ++ n0) → true → (n ∈ below(ns1, m) ↔ n ∈ ns1 ∧ n < m) ⊦ n0 ∈ ns0, (n = n0 ∨ n ∈ ns0) ∧ n < m |
n ∈ below(ns0, m) ↔ n ∈ ns0 ∧ n < m, n ∈ (n0 < m ⊃ below(ns0, m) ++ n0;below(ns0, m)), ∀ ns1, n, m. # ns1 < #(ns0 ++ n0) → true → (n ∈ below(ns1, m) ↔ n ∈ ns1 ∧ n < m) ⊦ # (n0 < m ⊃ below(ns0, m) ++ n0;below(ns0, m)) = 0, (n0 < m ⊃ below(ns0, m) ++ n0;below(ns0, m)) = ∅, n0 ∈ ns0, (n = n0 ∨ n ∈ ns0) ∧ n < m
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]