| ii(0) = 0, # σσ = ∞, ii(n0 + 1) = ii(n0) + # lf(n0), (nf from ii(n0)) to # lf(n0) = lf(n0), mon(σσ), ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ σσ = [], (σσ[0] + ⌜nf to ii(n0)⌝ ) + ⌜lf(n0)⌝ = σσ[0] + ⌜nf to ii(n0 + 1)⌝ , ∃ n. # σσ[n] = ∞ |
ii(0) = 0, # σσ = ∞, ii(n0 + 1) = ii(n0) + # lf(n0), (nf from ii(n0)) to # lf(n0) = lf(n0), mon(σσ), ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ σσ = [], (nf to ii(n0)) + lf(n0) = nf to ii(n0 + 1), # σσ[0] = ∞, ∃ n. # σσ[n] = ∞
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream%eq-stream-to-list-2-1: ⊦ ⌜x⌝ + ⌜y⌝ = ⌜z⌝ ↔ x + y = z; from specification stream%append-cut1: ⊦ σ + σ1 = σ + σ2 ↔ σ1 = σ2 ∨ # σ = ∞; from specification stream