| # σσ = ∞, ii(n0 + 1) = ii(n0) + # lf(n0), ii(0) = 0, mon(σσ), ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ # σσ[0] = ∞, σσ = [], ∃ n. # σσ[n] = ∞, #((nf to ii(n0)) + ((nf from ii(n0)) to # lf(n0))) = #(nf to ii(n0 + 1)) ∧ (∀ n. n < #((nf to ii(n0)) + ((nf from ii(n0)) to # lf(n0))) → ((nf to ii(n0)) + ((nf from ii(n0)) to # lf(n0)))[n] = (nf to ii(n0 + 1))[n]) |
# σσ = ∞, ii(n0 + 1) = ii(n0) + # lf(n0), ii(0) = 0, n < ii(n0 + 1), mon(σσ), ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ # σσ[0] = ∞, ((nf to ii(n0)) + ((nf from ii(n0)) to # lf(n0)))[n] = nf(n), ii(n0 + 1) = 0, σσ = [], ∃ n. # σσ[n] = ∞
Used simplifier rules: m < n ⊦ (nf to n)[m] = nf(m); (s)% ⊦ m ≤ n → (n < m ↔ false); (s)%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m < n ↔ ¬ n ≤ m; (ss)%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ #(nf to n) = n; (s)% ⊦ #(x + y) = # x + # y; (s)