| 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] = ∞ |
⊦ n < # x → (x + y)[n] = x[n]
¬ 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] = ∞
Used simplifier rules: lels: ⊦ ¬ m < n ↔ n ≤ m; from specification nat%size-inf-to: ⊦ #(nf to n) = n; from specification stream%le-ls-simp: ⊦ m ≤ n → (n < m ↔ false); from specification nat%get-infto: m < n ⊦ (nf to n)[m] = nf(m); from specification stream Used terms: n, (nf from ii(n0)) to # lf(n0), nf to ii(n0)