| # nextl(0, a) = ii(1) + 1, lf(n0 + 1) = nextl(n0, lf(n0).last), nf to ii(1) + 1 = nextl(0, a), ii(0) = 0, lf(0) = a ', lf(1) = nextl(0, a), nextl(0, a) = a ' + y, ii(n0 + 1) = ii(n0) + # lf(n0 + 1) - 1, (nf from ii(n0)) to # lf(n0 + 1) = lf(n0 + 1), a ∈ nextl(0, a), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextl(n, lf(n).last) ∧ lf(n) ≠ [], ∀ n, a. nextl(n, a) ≠ [] ∧ nextl(n, a).first = a, ∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1), ∀ n. nf(ii(n)) = lf(n).last, ∀ n. ii(n + 1) = ii(n) + # lf(n + 1) - 1 ∧ (nf from ii(n)) to # lf(n + 1) = lf(n + 1) ⊦ lf(n0) = [], nextl(0, a) = [], ∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1) |
# nextl(0, a) = ii(1) + 1, lf(n0 + 1) = nextl(n0, lf(n0).last), nf to ii(1) + 1 = nextl(0, a), ii(0) = 0, lf(0) = a ', lf(1) = nextl(0, a), nextl(0, a) = a ' + y, ii(n0 + 1) = ii(n0) + # lf(n0 + 1) - 1, (nf from ii(n0)) to # lf(n0 + 1) = lf(n0 + 1), a ∈ nextl(0, a), ii(m) ≤ n1, n1 < ii(m + 1), ii(m) < ii(m + 1), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextl(n, lf(n).last) ∧ lf(n) ≠ [], ∀ n, a. nextl(n, a) ≠ [] ∧ nextl(n, a).first = a, ∀ n. nf(ii(n)) = lf(n).last, ∀ n. ii(n + 1) = ii(n) + # lf(n + 1) - 1 ∧ (nf from ii(n)) to # lf(n + 1) = lf(n + 1) ⊦ lf(n0) = [], nextl(0, a) = [], ii(m + 1) = 0, ∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1)
Used simplifier rules: fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1