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