| # σσ[n] = ⌜n0⌝ , # x = ii(n), # σσ = ∞, ii(0) = 0, mon(σσ), m ≤ n0, ∀ m. n ≤ m → σσ[m] = σσ[n], ∀ 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) ⊦ σσ = [], ∃ n0, σ1. (σσ[n] to m) + σ1 = σσ[n0], ∃ n. # σσ[n] = ∞ |
Used simplifier rules: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s)% ⊦ m ≤ n → (n < m ↔ false); (s)%¬ # σ < ⌜n⌝ ⊦ (σ to n) + (σ from n) = σ ↔ true; (ss)%append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream Used terms: n, σσ[n] from m