| # x = ii(n), # σσ = ∞, ii(0) = 0, # σσ[n] = ⌜n0⌝ , mon(σσ), m ≤ n0, ∀ n0. ii(n0 + 1) = ii(n0) + # lf(n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # lf(n0) = lf(n0), ∀ n. σσ[n + 1] = σσ[n] + ⌜lf(n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ m. n ≤ m → lf(m) = [] ∧ ii(m) = ii(n), ∀ m. n ≤ m → σσ[m] = σσ[n] ⊦ σσ = [], ∃ n0, σ1. (σσ[n] to m) + σ1 = σσ[n0], ∃ n. # σσ[n] = ∞ |
Used simplifier rules: less-fin: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; from specification nat-inf%le-ls-simp: ⊦ m ≤ n → (n < m ↔ false); from specification nat%to-plus-from-simp: ¬ # σ < ⌜n⌝ ⊦ (σ to n) + (σ from n) ≠ σ ↔ false; from specification stream%append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream Used terms: n, σσ[n] from m