| # σσ = ⌜n⌝ , mon(σσ) ⊦ σσ = [], ∃ σ. (∀ n. ⌜n⌝ < # σσ → (∃ σ1. σσ[n] + σ1 = σ)) ∧ (∀ m. ¬ # σ < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ (∃ σ1. (σ to m) + σ1 = σσ[n]))) |
n = n0 +1, # σσ = ⌜n⌝ , mon(σσ) ⊦ σσ = [], ∃ σ. (∀ n. ⌜n⌝ < # σσ → (∃ σ1. σσ[n] + σ1 = σ)) ∧ (∀ m. ¬ # σ < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ (∃ σ1. (σ to m) + σ1 = σσ[n])))
Used simplifier rules: nat freely generated by 0, +1;;%size-empty-equiv: ⊦ # σσ = ⌜0⌝ ↔ σσ = []; from specification stream[stream-of-streams]