| ¬ n < #(nf to ii(n0)), ii(n0 + 1) = ii(n0) + # lf(n0), # σσ = ∞, ii(0) = 0, n < ii(n0 + 1), mon(σσ), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1) ⊦ ii(n0 + 1) = 0, ((nf to ii(n0)) + ((nf from ii(n0)) to # lf(n0)))[n] = nf(n), # σσ[0] = ∞, σσ = [], ∃ n. # σσ[n] = ∞ |
ii(n0 + 1) = ii(n0) + # lf(n0), # σσ = ∞, ii(0) = 0, n < ii(n0 + 1), mon(σσ), ii(n0) ≤ n, ii(n0) < ii(n0 + 1), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1) ⊦ # σσ[0] = ∞, σσ = [], ii(n0 + 1) = 0, ((nf from ii(n0)) to # lf(n0))[n - ii(n0)] = nf(n), lf(n0) = [], ∃ n. # σσ[n] = ∞
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%l: ⊦ # x = 0 ↔ x = []; from specification list-data%l-01: ⊦ m < m + n ↔ n ≠ 0; from specification nat-basic2%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic1%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat%lels: ⊦ ¬ m < n ↔ n ≤ m; from specification nat%a: ⊦ (x + y) + z = x + y + z; from specification list%size-inf-to: ⊦ #(nf to n) = n; from specification stream%get-append-grt: ⊦ ¬ n < # x → (x + y)[n] = y[n - # x]; from specification list-del