| ∞ = # σ, # σ0 = ⌜n⌝ , (σ to n + 1) + σ1 = σσ[n0], mon(σσ), ⌜n0⌝ < # σσ, ∀ n. ⌜n⌝ < # σσ → (∃ σ1. σσ[n] + σ1 = σ), ⌜n0⌝ < # σσ → (∃ σ1. σσ[n0] + σ1 = σ0), ∀ m. ¬ n < m → (∃ n. ⌜n⌝ < # σσ ∧ (∃ σ1. (σ0 to m) + σ1 = σσ[n])) ⊦ σσ = [] |
∞ = # σ, (σ to n + 1) + σ1 = σσ[n0], # σσ[n0] + # σ2 = ⌜n⌝ , ⌜n0⌝ < # σσ, mon(σσ), ∀ n. ⌜n⌝ < # σσ → (∃ σ1. σσ[n] + σ1 = σ), ∀ m. ¬ n < m → (∃ n. ⌜n⌝ < # σσ ∧ (∃ σ1. (σσ[n0] + σ2 to m) + σ1 = σσ[n])) ⊦ σσ = []
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream%size-append: ⊦ #(σ + σ1) = # σ + # σ1; from specification stream