| # σσ[0] = ⌜n⌝ , # σσ = ∞, ii(0) = 0, m < n, mon(σσ), ∀ n. ii(n + 1) = ii(n) + # lf(n) ∧ (nf from ii(n)) to # lf(n) = lf(n), ∀ n. σσ[n + 1] = σσ[n] + ⌜lf(n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1), ∀ n. σσ[n] = σσ[0] + ⌜nf to ii(n)⌝ ⊦ (σσ[0] + ⌜nf⌝ to m) + (σσ[0] from m) = σσ[0], σσ = [], ∃ n. # σσ[n] = ∞ |
⊦ ¬ # σ < ⌜n⌝ → σ + σ0 to n = σ to n
Used simplifier rules: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s)% ⊦ m < n → ¬ n < m; (s)%¬ # σ < ⌜n⌝ ⊦ (σ to n) + (σ from n) = σ ↔ true; (ss)%append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic Used terms: m, ⌜nf⌝ , σσ[0]