| ⊦ mon(⌜σf⌝ ) → lim(⌜σf⌝ ) = lim(⌜λ n. σf(n + m)⌝ ) |
lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ) ⊦
| lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ) ⊦ |
⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ[n] ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ) to m⌝ ⊑ σσ[n]))
lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), mon(⌜σf⌝ ) ∧ ⌜σf⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜σf⌝ → ⌜σf⌝ [n] ⊑ lim(⌜σf⌝ )) ∧ (∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜σf⌝ ∧ ⌜lim(⌜σf⌝ ) to m⌝ ⊑ ⌜σf⌝ [n])) ⊦
Used terms: ⌜σf⌝
| ⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ[n] ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ) to m⌝ ⊑ σσ[n])) |
| lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), mon(⌜σf⌝ ) ∧ ⌜σf⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜σf⌝ → ⌜σf⌝ [n] ⊑ lim(⌜σf⌝ )) ∧ (∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜σf⌝ ∧ ⌜lim(⌜σf⌝ ) to m⌝ ⊑ ⌜σf⌝ [n])) ⊦ |
lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ [n] = nf(n); (s) ⊦ ⌜m⌝ < ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ [] ≠ ⌜nf⌝ ; (s)
| lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ[n] ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ) to m⌝ ⊑ σσ[n]))
lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), mon(⌜λ n. σf(n + m)⌝ ) ∧ ⌜λ n. σf(n + m)⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜λ n. σf(n + m)⌝ → ⌜λ n. σf(n + m)⌝ [n] ⊑ lim(⌜λ n. σf(n + m)⌝ )) ∧ (∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜n⌝ < # ⌜λ n. σf(n + m)⌝ ∧ ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ ⌜λ n. σf(n + m)⌝ [n])), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦
Used terms: ⌜λ n. σf(n + m)⌝
| ⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ[n] ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ) to m⌝ ⊑ σσ[n])) |
| lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), mon(⌜λ n. σf(n + m)⌝ ) ∧ ⌜λ n. σf(n + m)⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜λ n. σf(n + m)⌝ → ⌜λ n. σf(n + m)⌝ [n] ⊑ lim(⌜λ n. σf(n + m)⌝ )) ∧ (∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜n⌝ < # ⌜λ n. σf(n + m)⌝ ∧ ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ ⌜λ n. σf(n + m)⌝ [n])), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ |
lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), mon(⌜λ n. σf(n + m)⌝ ) → (∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ )) ∧ (∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m))), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ [n] = nf(n); (s) ⊦ ⌜m⌝ < ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ [] ≠ ⌜nf⌝ ; (s)
| lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), mon(⌜λ n. σf(n + m)⌝ ) → (∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ )) ∧ (∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m))), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ¬ mon(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦
lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
| lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ¬ mon(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ |
mon(⌜σf⌝ ) ⊦ mon(⌜λ n. σf(n + m)⌝ )
Used terms: σf, m
| mon(⌜σf⌝ ) ⊦ mon(⌜λ n. σf(n + m)⌝ ) |
| lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ∞, lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
# σf(m) ≠ ∞, lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used formulas: # σf(m) = ∞
| # σf(m) = ∞, lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# σf(m) = ∞, lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), σf(m) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used terms: m
| # σf(m) = ∞, lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), σf(m) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ∞, σf(m) = lim(⌜σf⌝ ), lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), σf(m) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
# σf(m) = ∞, lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), σf(m) ≠ lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(m) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used formulas: σf(m) = lim(⌜σf⌝ )
| # σf(m) = ∞, σf(m) = lim(⌜σf⌝ ), lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), σf(m) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# σf(m) = ∞, σf(m) = lim(⌜σf⌝ ), σf(m) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ n. σf(n) ⊑ σf(m), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ m0. ∃ n. ⌜σf(m) to m0⌝ ⊑ σf(n) ⊦
Used simplifier rules: ⊦ ¬ ∞ < n∞; (s) ⊦ σ ⊑ σ; (s)
| # σf(m) = ∞, σf(m) = lim(⌜σf⌝ ), σf(m) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ n. σf(n) ⊑ σf(m), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ m0. ∃ n. ⌜σf(m) to m0⌝ ⊑ σf(n) ⊦ |
# σf(m) = ∞, σf(m) = lim(⌜σf⌝ ), σf(m) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), σf(0 + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ∃ n. ⌜σf(m) to m0⌝ ⊑ σf(n), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ σf(m) ⊦
Used terms: 0
| # σf(m) = ∞, σf(m) = lim(⌜σf⌝ ), σf(m) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), σf(0 + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ∃ n. ⌜σf(m) to m0⌝ ⊑ σf(n), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ σf(m) ⊦ |
# σf(m) = ∞, σf(m) = lim(⌜σf⌝ ), σf(m) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), σf(m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ σf(m), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ m0. ∃ n. ⌜σf(m) to m0⌝ ⊑ σf(n) ⊦
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ n + 0 = n; (s)
| # σf(m) = ∞, σf(m) = lim(⌜σf⌝ ), σf(m) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), σf(m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ σf(m), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ m0. ∃ n. ⌜σf(m) to m0⌝ ⊑ σf(n) ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
Used simplifier rules: ⊦ σ + σ0 = σ ↔ σ0 = [] ∨ # σ = ∞; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream Used terms: σf(m), lim(⌜λ n. σf(n + m)⌝ )
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # σf(m) = ∞, lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), σf(m) ≠ lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(m) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
Used simplifier rules: ⊦ σ + σ0 = σ ↔ σ0 = [] ∨ # σ = ∞; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream Used terms: σf(m), lim(⌜σf⌝ )
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # σf(m) ≠ ∞, lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
⊦ n∞ = ∞ ↔ ¬(∃ n. n∞ = ⌜n⌝ )
lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ n. # σf(m) = ⌜n⌝ ⊦
Used terms: # σf(m)
| ⊦ n∞ = ∞ ↔ ¬(∃ n. n∞ = ⌜n⌝ ) |
| lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ n. # σf(m) = ⌜n⌝ ⊦ |
# σf(m) = ⌜n⌝ , lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
| # σf(m) = ⌜n⌝ , lim(⌜σf⌝ ) ≠ lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
# σf(m) = ⌜n⌝ , mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ) ∨ (∃ n. ¬(⌜n⌝ < # lim(⌜σf⌝ ) → lim(⌜σf⌝ )[n] = lim(⌜λ n. σf(n + m)⌝ )[n])) ⊦
Used terms: lim(⌜σf⌝ ), lim(⌜λ n. σf(n + m)⌝ )
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| # σf(m) = ⌜n⌝ , mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ) ∨ (∃ n. ¬(⌜n⌝ < # lim(⌜σf⌝ ) → lim(⌜σf⌝ )[n] = lim(⌜λ n. σf(n + m)⌝ )[n])) ⊦ |
# σf(m) = ⌜n⌝ , mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ) ∨ ¬(⌜n0⌝ < # lim(⌜σf⌝ ) → lim(⌜σf⌝ )[n0] = lim(⌜λ n. σf(n + m)⌝ )[n0]) ⊦
| # σf(m) = ⌜n⌝ , mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ) ∨ ¬(⌜n0⌝ < # lim(⌜σf⌝ ) → lim(⌜σf⌝ )[n0] = lim(⌜λ n. σf(n + m)⌝ )[n0]) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ) ∨ ¬(⌜n0⌝ < # lim(⌜σf⌝ ) → lim(⌜σf⌝ )[n0] = lim(⌜λ n. σf(n + m)⌝ )[n0]) ⊦
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ) ∨ ¬(⌜n0⌝ < # lim(⌜σf⌝ ) → lim(⌜σf⌝ )[n0] = lim(⌜λ n. σf(n + m)⌝ )[n0]) ⊦
Used formulas: # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ )
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ) ∨ ¬(⌜n0⌝ < # lim(⌜σf⌝ ) → lim(⌜σf⌝ )[n0] = lim(⌜λ n. σf(n + m)⌝ )[n0]) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < # lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used formulas: # lim(⌜σf⌝ ) < # lim(⌜λ n. σf(n + m)⌝ )
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used simplifier rules: natinf freely generated by ∞, ⌜ ⌝;; ⊦ ¬ ∞ < n∞; (s)
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0 + 1⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used terms: m0 + 1
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0 + 1⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used simplifier rules: add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s)
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), σf(n0 + m) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used terms: n0 + m
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), σf(n0 + m) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), σf(n0 + m) ⊑ lim(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), σf(n0 + m) ⊑ lim(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∃ σ1. σf(n0 + m) + σ1 = lim(⌜σf⌝ ) ⊦
Used terms: σf(n0 + m), lim(⌜σf⌝ )
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∃ σ1. σf(n0 + m) + σ1 = lim(⌜σf⌝ ) ⊦ |
# σf(m) = ⌜n⌝ , σf(n0 + m) + σ1 = lim(⌜σf⌝ ), ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
| # σf(m) = ⌜n⌝ , σf(n0 + m) + σ1 = lim(⌜σf⌝ ), ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , σf(n0 + m) + σ1 = lim(⌜σf⌝ ), σ1 = ⌜x⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
# σf(m) = ⌜n⌝ , σf(n0 + m) + σ1 = lim(⌜σf⌝ ), σ1 = ⌜nf⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used simplifier rules: stream('a) freely generated by ⌜ ⌝, ⌜ ⌝;;
| # σf(m) = ⌜n⌝ , σf(n0 + m) + σ1 = lim(⌜σf⌝ ), σ1 = ⌜x⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# σf(m) = ⌜n⌝ , σf(n0 + m) + ⌜x⌝ = lim(⌜σf⌝ ), ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
| # σf(m) = ⌜n⌝ , σf(n0 + m) + ⌜x⌝ = lim(⌜σf⌝ ), ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(σf(n0 + m) + ⌜x⌝ ) = # lim(⌜σf⌝ ), # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. ⌜n⌝ < #(σf(n0 + m) + ⌜x⌝ ) → (σf(n0 + m) + ⌜x⌝ )[n] = lim(⌜σf⌝ )[n] ⊦
Used terms: σf(n0 + m) + ⌜x⌝ , lim(⌜σf⌝ )
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(σf(n0 + m) + ⌜x⌝ ) = # lim(⌜σf⌝ ), # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. ⌜n⌝ < #(σf(n0 + m) + ⌜x⌝ ) → (σf(n0 + m) + ⌜x⌝ )[n] = lim(⌜σf⌝ )[n] ⊦ |
# σf(m) = ⌜n⌝ , # σf(n0 + m) + ⌜# x⌝ = ⌜m0⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. n1 < m0 → (σf(n0 + m) + ⌜x⌝ )[n1] = lim(⌜σf⌝ )[n1] ⊦
Used simplifier rules: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) ⊦ #(σ + σ1) = # σ + # σ1; (s)
| # σf(m) = ⌜n⌝ , # σf(n0 + m) + ⌜# x⌝ = ⌜m0⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. n1 < m0 → (σf(n0 + m) + ⌜x⌝ )[n1] = lim(⌜σf⌝ )[n1] ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
# σf(m) = ⌜n⌝ , # σf(n0 + m) + ⌜# x⌝ = ⌜m0⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ∀ n1. n1 < m0 → (σf(n0 + m) + ⌜x⌝ )[n1] = lim(⌜σf⌝ )[n1], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ + σ1 = σf(n0 + m) ⊦
Used terms: ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ , σf(n0 + m)
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # σf(m) = ⌜n⌝ , # σf(n0 + m) + ⌜# x⌝ = ⌜m0⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ∀ n1. n1 < m0 → (σf(n0 + m) + ⌜x⌝ )[n1] = lim(⌜σf⌝ )[n1], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ + σ1 = σf(n0 + m) ⊦ |
# σf(m) = ⌜n⌝ , ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ + σ1 = σf(n0 + m), # σf(n0 + m) + ⌜# x⌝ = ⌜m0⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. n1 < m0 → (σf(n0 + m) + ⌜x⌝ )[n1] = lim(⌜σf⌝ )[n1] ⊦
| # σf(m) = ⌜n⌝ , ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ + σ1 = σf(n0 + m), # σf(n0 + m) + ⌜# x⌝ = ⌜m0⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. n1 < m0 → (σf(n0 + m) + ⌜x⌝ )[n1] = lim(⌜σf⌝ )[n1] ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
Used simplifier rules: ⊦ #(σ + σ1) = # σ + # σ1; (s) ⊦ # ⌜σ to n⌝ = ⌜#(σ to n)⌝ ; (s) ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ; (s) ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = n; (s) ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) ⊦ ⌜n⌝ + n∞ = ⌜n⌝ ↔ n∞ = ⌜0⌝ ; (s) ⊦ ⌜n⌝ + n∞ = ⌜0⌝ ↔ n∞ = ⌜0⌝ ∧ n = 0; (ws) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf Used terms: ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ + σ1, σf(n0 + m)
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| # σf(m) = ⌜n⌝ , σf(n0 + m) + σ1 = lim(⌜σf⌝ ), σ1 = ⌜nf⌝ , ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# σf(m) = ⌜n⌝ , σf(n0 + m) + ⌜nf⌝ = lim(⌜σf⌝ ), ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
| # σf(m) = ⌜n⌝ , σf(n0 + m) + ⌜nf⌝ = lim(⌜σf⌝ ), ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ < # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0 + 1⌝ ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
Used simplifier rules: ⊦ #(σ + σ1) = # σ + # σ1; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ n∞ + ∞ = ∞; (s) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ ⌜m⌝ < ∞; (s) ⊦ ⌜n⌝ ≠ ∞; (s) Used terms: σf(n0 + m) + ⌜nf⌝ , lim(⌜σf⌝ )
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < # lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < # lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used simplifier rules: natinf freely generated by ∞, ⌜ ⌝;; ⊦ n∞ < ∞ ↔ n∞ ≠ ∞; (s)
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < # lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ , ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ , ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ , ¬ # lim(⌜σf⌝ ) < ⌜m0 + 1⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n)), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used terms: m0 + 1
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ , ¬ # lim(⌜σf⌝ ) < ⌜m0 + 1⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n)), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used simplifier rules: ⊦ n∞ < n∞0 → ¬ n∞0 < n∞; (s) ⊦ ¬ n∞1 < n∞ → (n∞ < n∞1 ↔ n∞ ≠ n∞1); (ss) add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s)
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0 + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used terms: n0
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0 + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ[m] ⊑ σσ[n]
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n0 + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜σf⌝ [n0] ⊑ ⌜σf⌝ [n0 + m], ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used simplifier rules: ⊦ m ≤ m + n; (s) ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic ⊦ # ⌜nf⌝ = ∞; (s) ⊦ n∞ < ∞ ↔ n∞ ≠ ∞; (s) ⊦ ⌜m⌝ + n∞ = ∞ ↔ n∞ = ∞; (s) ⊦ ⌜n⌝ ≠ ∞; (s) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf Used terms: ⌜σf⌝ , n0, n0 + m
| mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ[m] ⊑ σσ[n] |
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n0 + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜σf⌝ [n0] ⊑ ⌜σf⌝ [n0 + m], ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), σf(n0) ⊑ σf(n0 + m), σf(n0 + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream ⊦ ⌜nf⌝ [n] = nf(n); (s)
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), σf(n0) ⊑ σf(n0 + m), σf(n0 + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
# σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0 + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. σf(n0) + σ1 = σf(n0 + m) ⊦
Used terms: σf(n0), σf(n0 + m)
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0 + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0 + m), σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. σf(n0) + σ1 = σf(n0 + m) ⊦ |
# σf(m) = ⌜n⌝ , σf(n0) + σ1 = σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, σf(n0) + σ1 ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
| # σf(m) = ⌜n⌝ , σf(n0) + σ1 = σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, σf(n0) + σ1 ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# σf(m) = ⌜n⌝ , σf(n0) + σ1 = σf(n0 + m), σ1 = ⌜x⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + σ1 ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
# σf(m) = ⌜n⌝ , σf(n0) + σ1 = σf(n0 + m), σ1 = ⌜nf⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + σ1 ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used simplifier rules: stream('a) freely generated by ⌜ ⌝, ⌜ ⌝;;
| # σf(m) = ⌜n⌝ , σf(n0) + σ1 = σf(n0 + m), σ1 = ⌜x⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + σ1 ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , σf(n0) + ⌜x⌝ = σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , σf(n0) + ⌜x⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
| # σf(m) = ⌜n⌝ , σf(n0) + ⌜x⌝ = σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , σf(n0) + ⌜x⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
# σf(m) = ⌜n⌝ , σf(n0) + ⌜x⌝ = σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. (σf(n0) + ⌜x⌝ ) + σ1 = lim(⌜λ n. σf(n + m)⌝ ) ⊦
Used terms: σf(n0) + ⌜x⌝ , lim(⌜λ n. σf(n + m)⌝ )
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # σf(m) = ⌜n⌝ , σf(n0) + ⌜x⌝ = σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. (σf(n0) + ⌜x⌝ ) + σ1 = lim(⌜λ n. σf(n + m)⌝ ) ⊦ |
# σf(m) = ⌜n⌝ , σf(n0) + ⌜x⌝ = σf(n0 + m), (σf(n0) + ⌜x⌝ ) + σ1 = lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + # σ1, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + σ1, ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + σ1, ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + σ1 to m1⌝ ⊑ σf(n + m)) ⊦
Used simplifier rules: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) ⊦ #(σ + σ1) = # σ + # σ1; (s) ⊦ σ1 ⊑ σ1 + σ2; (s) leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream
| # σf(m) = ⌜n⌝ , σf(n0) + ⌜x⌝ = σf(n0 + m), (σf(n0) + ⌜x⌝ ) + σ1 = lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + # σ1, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + σ1, ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + σ1, ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + σ1 to m1⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , (σf(n0) + ⌜x⌝ ) + σ1 = lim(⌜λ n. σf(n + m)⌝ ), σf(n0) + ⌜x⌝ = σf(n0 + m), σ1 = ⌜x0⌝ , ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + # σ1, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + σ1 to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + σ1 ⊦
Used simplifier rules: stream('a) freely generated by ⌜ ⌝, ⌜ ⌝;; ⊦ # ⌜nf⌝ = ∞; (s) ⊦ ⌜m⌝ + ∞ = ∞; (s) ⊦ n∞ + ∞ = ∞; (s) add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ ⌜n⌝ ≠ ∞; (s)
| # σf(m) = ⌜n⌝ , (σf(n0) + ⌜x⌝ ) + σ1 = lim(⌜λ n. σf(n + m)⌝ ), σf(n0) + ⌜x⌝ = σf(n0 + m), σ1 = ⌜x0⌝ , ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + # σ1, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + σ1 to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + σ1 ⊦ |
# σf(m) = ⌜n⌝ , σf(n0) + ⌜x⌝ = σf(n0 + m), (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ = lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)) ⊦
Used simplifier rules: add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| # σf(m) = ⌜n⌝ , σf(n0) + ⌜x⌝ = σf(n0 + m), (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ = lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , σf(n0) + ⌜x⌝ = σf(n0 + m), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. ⌜n⌝ < #((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ ) → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n] = lim(⌜λ n. σf(n + m)⌝ )[n] ⊦
Used terms: (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , lim(⌜λ n. σf(n + m)⌝ )
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , σf(n0) + ⌜x⌝ = σf(n0 + m), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. ⌜n⌝ < #((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ ) → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n] = lim(⌜λ n. σf(n + m)⌝ )[n] ⊦ |
# σf(m) = ⌜n⌝ , σf(n0) + ⌜x⌝ = σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1] ⊦
Used simplifier rules: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) ⊦ #(σ + σ1) = # σ + # σ1; (s)
| # σf(m) = ⌜n⌝ , σf(n0) + ⌜x⌝ = σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1] ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(σf(n0) + ⌜x⌝ ) = # σf(n0 + m), # σf(m) = ⌜n⌝ , ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ n. ⌜n⌝ < #(σf(n0) + ⌜x⌝ ) → (σf(n0) + ⌜x⌝ )[n] = σf(n0 + m)[n] ⊦
Used terms: σf(n0) + ⌜x⌝ , σf(n0 + m)
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(σf(n0) + ⌜x⌝ ) = # σf(n0 + m), # σf(m) = ⌜n⌝ , ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ n. ⌜n⌝ < #(σf(n0) + ⌜x⌝ ) → (σf(n0) + ⌜x⌝ )[n] = σf(n0 + m)[n] ⊦ |
# σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1] ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) ⊦ #(σ + σ1) = # σ + # σ1; (s)
| # σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1] ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
# σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1], ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∃ σ1. ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + σ1 = σf(n0) + ⌜x⌝ ⊦
Used terms: ⌜lim(⌜σf⌝ ) to m0 + 1⌝ , σf(n0) + ⌜x⌝
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1], ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∃ σ1. ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + σ1 = σf(n0) + ⌜x⌝ ⊦ |
# σf(m) = ⌜n⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + σ1 = σf(n0) + ⌜x⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1] ⊦
| # σf(m) = ⌜n⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + σ1 = σf(n0) + ⌜x⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1] ⊦ |
# σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + σ1 = σf(n0) + ⌜x⌝ , σ1 = ⌜x1⌝ , ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1], ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)) ⊦
# σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + σ1 = σf(n0) + ⌜x⌝ , σ1 = ⌜nf⌝ , ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1], ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)) ⊦
Used simplifier rules: stream('a) freely generated by ⌜ ⌝, ⌜ ⌝;;
| # σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + σ1 = σf(n0) + ⌜x⌝ , σ1 = ⌜x1⌝ , ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1], ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + ⌜x1⌝ = σf(n0) + ⌜x⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1] ⊦
| # σf(m) = ⌜n⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + ⌜x1⌝ = σf(n0) + ⌜x⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1] ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(⌜lim(⌜σf⌝ ) to m0 + 1⌝ + ⌜x1⌝ ) = #(σf(n0) + ⌜x⌝ ), # σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1], ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ n. ⌜n⌝ < #(⌜lim(⌜σf⌝ ) to m0 + 1⌝ + ⌜x1⌝ ) → (⌜lim(⌜σf⌝ ) to m0 + 1⌝ + ⌜x1⌝ )[n] = (σf(n0) + ⌜x⌝ )[n] ⊦
Used terms: ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + ⌜x1⌝ , σf(n0) + ⌜x⌝
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(⌜lim(⌜σf⌝ ) to m0 + 1⌝ + ⌜x1⌝ ) = #(σf(n0) + ⌜x⌝ ), # σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1], ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ n. ⌜n⌝ < #(⌜lim(⌜σf⌝ ) to m0 + 1⌝ + ⌜x1⌝ ) → (⌜lim(⌜σf⌝ ) to m0 + 1⌝ + ⌜x1⌝ )[n] = (σf(n0) + ⌜x⌝ )[n] ⊦ |
# σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), (⌜m0⌝ + ⌜1⌝ ) + ⌜# x1⌝ = # σf(n0) + ⌜# x⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1], ∀ n1. ¬ m0 + # x1 < n1 → ((lim(⌜σf⌝ ) to m0 + 1) + x1)[n1] = (σf(n0) + ⌜x⌝ )[n1] ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ (⌜x⌝ + ⌜x0⌝ )[m] = (x + x0)[m]; (s) add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ ⌜n⌝ + ⌜m⌝ < ⌜n0⌝ ↔ n + m < n0; (s) ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = n; (s) ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ; (s) ⊦ # ⌜σ to n⌝ = ⌜#(σ to n)⌝ ; (s) ⊦ #(σ + σ1) = # σ + # σ1; (s)
| # σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), (⌜m0⌝ + ⌜1⌝ ) + ⌜# x1⌝ = # σf(n0) + ⌜# x⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1], ∀ n1. ¬ m0 + # x1 < n1 → ((lim(⌜σf⌝ ) to m0 + 1) + x1)[n1] = (σf(n0) + ⌜x⌝ )[n1] ⊦ |
Used simplifier rules: ⊦ ⌜n⌝ + n∞1 = ⌜n⌝ + n∞2 ↔ n∞1 = n∞2; (s) ⊦ n∞1 = n∞1 + n∞2 ↔ n∞1 = ∞ ∨ n∞2 = ⌜0⌝ ; (s) ⊦ n < m → (⌜(* n)⌝ = ⌜(* m)⌝ + n∞2 ↔ false); (s) ⊦ ⌜m⌝ + ∞ = ∞; (s) add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ ¬ ∞ < n∞; (s)
| # σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + σ1 = σf(n0) + ⌜x⌝ , σ1 = ⌜nf⌝ , ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1], ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), σf(n0) = ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + ⌜nf⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1] ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ σ0 + ⌜x⌝ = σ + ⌜nf0⌝ ↔ σ0 = σ + ⌜nf0⌝ ; (s)
| # σf(m) = ⌜n⌝ , # σf(n0) + ⌜# x⌝ = # σf(n0 + m), σf(n0) = ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + ⌜nf⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ + ⌜# x0⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜(σf(n0) + ⌜x⌝ ) + ⌜x0⌝ to m1⌝ ⊑ σf(n + m)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ (σf(n0) + ⌜x⌝ ) + ⌜x0⌝ , ∀ n1. n1 < m0 → ((σf(n0) + ⌜x⌝ ) + ⌜x0⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n1. ⌜n1⌝ < # σf(n0) + ⌜# x⌝ → (σf(n0) + ⌜x⌝ )[n1] = σf(n0 + m)[n1] ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
Used simplifier rules: ⊦ #(σ + σ1) = # σ + # σ1; (s) ⊦ # ⌜σ to n⌝ = ⌜#(σ to n)⌝ ; (s) ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ; (s) ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = n; (s) ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic ⊦ # ⌜nf⌝ = ∞; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ ⌜m⌝ + ∞ = ∞; (s) add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ ⌜n⌝ ≠ ∞; (s) Used terms: σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ + ⌜nf⌝
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| # σf(m) = ⌜n⌝ , σf(n0) + σ1 = σf(n0 + m), σ1 = ⌜nf⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + σ1 ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , σf(n0) + ⌜nf⌝ = σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , σf(n0) + ⌜nf⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
| # σf(m) = ⌜n⌝ , σf(n0) + ⌜nf⌝ = σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , σf(n0) + ⌜nf⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(σf(n0) + ⌜nf⌝ ) = # σf(n0 + m), # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + ⌜nf⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. ⌜n⌝ < #(σf(n0) + ⌜nf⌝ ) → (σf(n0) + ⌜nf⌝ )[n] = σf(n0 + m)[n] ⊦
Used terms: σf(n0) + ⌜nf⌝ , σf(n0 + m)
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(σf(n0) + ⌜nf⌝ ) = # σf(n0 + m), # σf(m) = ⌜n⌝ , ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + ⌜nf⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. ⌜n⌝ < #(σf(n0) + ⌜nf⌝ ) → (σf(n0) + ⌜nf⌝ )[n] = σf(n0 + m)[n] ⊦ |
# σf(m) = ⌜n⌝ , ∞ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , σf(n0) + ⌜nf⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1] ⊦
Used simplifier rules: ⊦ ⌜m⌝ < ∞; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ n∞ + ∞ = ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ #(σ + σ1) = # σ + # σ1; (s)
| # σf(m) = ⌜n⌝ , ∞ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n0) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , σf(n0) + ⌜nf⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1] ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
# σf(m) = ⌜n⌝ , ∞ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + ⌜nf⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. σf(n0) + σ1 = lim(⌜λ n. σf(n + m)⌝ ) ⊦
Used terms: σf(n0), lim(⌜λ n. σf(n + m)⌝ )
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # σf(m) = ⌜n⌝ , ∞ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + ⌜nf⌝ ⊑ lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. σf(n0) + σ1 = lim(⌜λ n. σf(n + m)⌝ ) ⊦ |
# σf(m) = ⌜n⌝ , σf(n0) + σ1 = lim(⌜λ n. σf(n + m)⌝ ), ∞ = # σf(n0 + m), ⌜m0⌝ = # σf(n0) + # σ1, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , σf(n0) + ⌜nf⌝ ⊑ σf(n0) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, ∀ n. σf(n + m) ⊑ σf(n0) + σ1, ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1], ∀ m1. ¬ m0 < m1 → (∃ n. ⌜σf(n0) + σ1 to m1⌝ ⊑ σf(n + m)) ⊦
Used simplifier rules: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ #(σ + σ1) = # σ + # σ1; (s) leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream
| # σf(m) = ⌜n⌝ , σf(n0) + σ1 = lim(⌜λ n. σf(n + m)⌝ ), ∞ = # σf(n0 + m), ⌜m0⌝ = # σf(n0) + # σ1, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , σf(n0) + ⌜nf⌝ ⊑ σf(n0) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, ∀ n. σf(n + m) ⊑ σf(n0) + σ1, ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1], ∀ m1. ¬ m0 < m1 → (∃ n. ⌜σf(n0) + σ1 to m1⌝ ⊑ σf(n + m)) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(σf(n0) + σ1) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , ∞ = # σf(n0 + m), ⌜m0⌝ = # σf(n0) + # σ1, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + ⌜nf⌝ ⊑ σf(n0) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜σf(n0) + σ1 to m1⌝ ⊑ σf(n + m)), ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ σf(n0) + σ1, ∀ n. ⌜n⌝ < #(σf(n0) + σ1) → (σf(n0) + σ1)[n] = lim(⌜λ n. σf(n + m)⌝ )[n] ⊦
Used terms: σf(n0) + σ1, lim(⌜λ n. σf(n + m)⌝ )
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(σf(n0) + σ1) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , ∞ = # σf(n0 + m), ⌜m0⌝ = # σf(n0) + # σ1, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + ⌜nf⌝ ⊑ σf(n0) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜σf(n0) + σ1 to m1⌝ ⊑ σf(n + m)), ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ σf(n0) + σ1, ∀ n. ⌜n⌝ < #(σf(n0) + σ1) → (σf(n0) + σ1)[n] = lim(⌜λ n. σf(n + m)⌝ )[n] ⊦ |
# σf(m) = ⌜n⌝ , ∞ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + # σ1, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + ⌜nf⌝ ⊑ σf(n0) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜σf(n0) + σ1 to m1⌝ ⊑ σf(n + m)), ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ σf(n0) + σ1, ∀ n1. n1 < m0 → (σf(n0) + σ1)[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1] ⊦
Used simplifier rules: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ #(σ + σ1) = # σ + # σ1; (s)
| # σf(m) = ⌜n⌝ , ∞ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + # σ1, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + ⌜nf⌝ ⊑ σf(n0) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜σf(n0) + σ1 to m1⌝ ⊑ σf(n + m)), ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ σf(n0) + σ1, ∀ n1. n1 < m0 → (σf(n0) + σ1)[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1] ⊦ |
# σf(m) = ⌜n⌝ , σ1 = ⌜x⌝ , ∞ = # σf(n0 + m), ⌜m0⌝ = # σf(n0) + # σ1, ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , σf(n0) + ⌜nf⌝ ⊑ σf(n0) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, ∀ n1. n1 < m0 → (σf(n0) + σ1)[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n. σf(n + m) ⊑ σf(n0) + σ1, ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1], ∀ m1. ¬ m0 < m1 → (∃ n. ⌜σf(n0) + σ1 to m1⌝ ⊑ σf(n + m)) ⊦
Used simplifier rules: stream('a) freely generated by ⌜ ⌝, ⌜ ⌝;; ⊦ # ⌜nf⌝ = ∞; (s) ⊦ n∞ + ∞ = ∞; (s) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf ⊦ ⌜n⌝ ≠ ∞; (s)
| # σf(m) = ⌜n⌝ , σ1 = ⌜x⌝ , ∞ = # σf(n0 + m), ⌜m0⌝ = # σf(n0) + # σ1, ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , σf(n0) + ⌜nf⌝ ⊑ σf(n0) + σ1, ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + σ1, ∀ n1. n1 < m0 → (σf(n0) + σ1)[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1], ∀ n. σf(n + m) ⊑ σf(n0) + σ1, ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1], ∀ m1. ¬ m0 < m1 → (∃ n. ⌜σf(n0) + σ1 to m1⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , ∞ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + ⌜nf⌝ ⊑ σf(n0) + ⌜x⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜σf(n0) + ⌜x⌝ to m1⌝ ⊑ σf(n + m)), ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ σf(n0) + ⌜x⌝ , ∀ n1. n1 < m0 → (σf(n0) + ⌜x⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1] ⊦
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| # σf(m) = ⌜n⌝ , ∞ = # σf(n0 + m), ⌜m0⌝ = # lim(⌜λ n. σf(n + m)⌝ ), ⌜m0⌝ = # σf(n0) + ⌜# x⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ , ⌜m0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0), σf(n0) + ⌜nf⌝ ⊑ σf(n0) + ⌜x⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜nf⌝ , ⌜lim(⌜σf⌝ ) to m0 + 1⌝ ⊑ σf(n0) + ⌜x⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜σf(n0) + ⌜x⌝ to m1⌝ ⊑ σf(n + m)), ∀ n1. (σf(n0) + ⌜nf⌝ )[n1] = σf(n0 + m)[n1], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ σf(n0) + ⌜x⌝ , ∀ n1. n1 < m0 → (σf(n0) + ⌜x⌝ )[n1] = lim(⌜λ n. σf(n + m)⌝ )[n1] ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
Used simplifier rules: ⊦ ⌜nf⌝ + σ = ⌜nf⌝ ; (s) ⊦ σ0 + ⌜x⌝ = σ + ⌜nf0⌝ ↔ σ0 = σ + ⌜nf0⌝ ; (s) ⊦ σ + σ0 = σ ↔ σ0 = [] ∨ # σ = ∞; (s) ⊦ [] ≠ ⌜nf⌝ ; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ ⌜m⌝ + ∞ = ∞; (s) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf ⊦ ⌜n⌝ ≠ ∞; (s) Used terms: σf(n0) + ⌜nf⌝ , σf(n0) + ⌜x⌝
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜λ n. σf(n + m)⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), # lim(⌜σf⌝ ) ≠ # lim(⌜λ n. σf(n + m)⌝ ) ∨ ¬(⌜n0⌝ < # lim(⌜σf⌝ ) → lim(⌜σf⌝ )[n0] = lim(⌜λ n. σf(n + m)⌝ )[n0]) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜n0 + 1⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to n0 + 1⌝ ⊑ σf(n)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used terms: n0 + 1
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜n0 + 1⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to n0 + 1⌝ ⊑ σf(n)), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to n0 + 1⌝ ⊑ σf(n1), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
Used simplifier rules: add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s)
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to n0 + 1⌝ ⊑ σf(n1), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. ⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1 = σf(n1) ⊦
Used terms: ⌜lim(⌜σf⌝ ) to n0 + 1⌝ , σf(n1)
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. ⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1 = σf(n1) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1 = σf(n1), lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1 = σf(n1), lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1) = # σf(n1), # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. ⌜n⌝ < #(⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1) → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n] = σf(n1)[n] ⊦
Used terms: ⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1, σf(n1)
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1) = # σf(n1), # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. ⌜n⌝ < #(⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1) → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n] = σf(n1)[n] ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2] ⊦
Used simplifier rules: add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = n; (s) ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ; (s) ⊦ # ⌜σ to n⌝ = ⌜#(σ to n)⌝ ; (s) ⊦ #(σ + σ1) = # σ + # σ1; (s)
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2] ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ ⌜n0⌝ + # σ1 < ⌜n0⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n0] = σf(n1)[n0], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used terms: n0
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ ⌜n0⌝ + # σ1 < ⌜n0⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n0] = σf(n1)[n0], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n0] = σf(n1)[n0], lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2] ⊦
Used simplifier rules: add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ ¬ n∞ + n∞1 < n∞1; (s)
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n0] = σf(n1)[n0], lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2] ⊦ |
⊦ ⌜m⌝ < # σ → (σ + σ1)[m] = σ[m]
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), ⌜lim(⌜σf⌝ ) to n0 + 1⌝ [n0] = σf(n1)[n0], lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), ⌜n0⌝ < # ⌜lim(⌜σf⌝ ) to n0 + 1⌝ , mon(⌜σf⌝ ), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used simplifier rules: ⊦ ¬ ⌜m⌝ < # σ → (σ + σ1)[m] = σ1[m - (# σ).n]; (s) ⊦ ⌜n⌝ ≠ ∞; (s) n∞ ≠ ∞ ⊦ (⌜m⌝ + n∞).n = m + n∞.n; (s) ⊦ ⌜n⌝ .n = n; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ # ⌜σ to n⌝ = ⌜#(σ to n)⌝ ; (s) ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ; (s) ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = n; (s) ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ ¬ n < n; (s) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf Used terms: ⌜lim(⌜σf⌝ ) to n0 + 1⌝ , σ1, n0
| ⊦ ⌜m⌝ < # σ → (σ + σ1)[m] = σ[m] |
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), ⌜lim(⌜σf⌝ ) to n0 + 1⌝ [n0] = σf(n1)[n0], lim(⌜σf⌝ )[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), ⌜n0⌝ < # ⌜lim(⌜σf⌝ ) to n0 + 1⌝ , mon(⌜σf⌝ ), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2] ⊦
Used simplifier rules: add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ ¬ n < n; (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = n; (s) ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ; (s) ⊦ # ⌜σ to n⌝ = ⌜#(σ to n)⌝ ; (s) m < n, ¬ # σ < ⌜n⌝ ⊦ (σ to n)[m] = σ[m]; (s) ⊦ m < n + 1 ↔ ¬ n < m; (s) ⊦ ⌜x⌝ [n] = x[n]; (s)
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2] ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜n0 + 1⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ ⊑ σf(n + m)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used terms: n0 + 1
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜n0 + 1⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ ⊑ σf(n + m)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ ⊑ σf(n2 + m), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2] ⊦
Used simplifier rules: add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s)
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ ⊑ σf(n2 + m), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2] ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ1 = σf(n2 + m) ⊦
Used terms: ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ , σf(n2 + m)
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ1 = σf(n2 + m) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ = σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2] ⊦
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ = σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2] ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ) = # σf(n2 + m), # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. ⌜n⌝ < #(⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ) → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n] = σf(n2 + m)[n] ⊦
Used terms: ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ, σf(n2 + m)
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ) = # σf(n2 + m), # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. ⌜n⌝ < #(⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ) → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n] = σf(n2 + m)[n] ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦
Used simplifier rules: add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = n; (s) ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ; (s) ⊦ # ⌜σ to n⌝ = ⌜#(σ to n)⌝ ; (s) ⊦ #(σ + σ1) = # σ + # σ1; (s)
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ ⌜n0⌝ + # σ < ⌜n0⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n0] = σf(n2 + m)[n0], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used terms: n0
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ ⌜n0⌝ + # σ < ⌜n0⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n0] = σf(n2 + m)[n0], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦
Used simplifier rules: add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ ¬ n∞ + n∞1 < n∞1; (s)
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦ |
⊦ ⌜m⌝ < # σ → (σ + σ1)[m] = σ[m]
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ [n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), ⌜n0⌝ < # ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ , mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used simplifier rules: ⊦ ¬ ⌜m⌝ < # σ → (σ + σ1)[m] = σ1[m - (# σ).n]; (s) ⊦ ⌜n⌝ ≠ ∞; (s) n∞ ≠ ∞ ⊦ (⌜m⌝ + n∞).n = m + n∞.n; (s) ⊦ ⌜n⌝ .n = n; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ # ⌜σ to n⌝ = ⌜#(σ to n)⌝ ; (s) ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ; (s) ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = n; (s) ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ ¬ n < n; (s) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf Used terms: ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ , σ, n0
| ⊦ ⌜m⌝ < # σ → (σ + σ1)[m] = σ[m] |
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ [n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ lim(⌜λ n. σf(n + m)⌝ )[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), ⌜n0⌝ < # ⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ , mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦
Used simplifier rules: add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ ¬ n < n; (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = n; (s) ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ; (s) ⊦ # ⌜σ to n⌝ = ⌜#(σ to n)⌝ ; (s) m < n, ¬ # σ < ⌜n⌝ ⊦ (σ to n)[m] = σ[m]; (s) ⊦ m < n + 1 ↔ ¬ n < m; (s) ⊦ ⌜x⌝ [n] = x[n]; (s)
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦ |
mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ[m] ⊑ σσ[n]
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ n1 ≤ n2 + m ∧ ⌜n2 + m⌝ < # ⌜σf⌝
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜σf⌝ [n1] ⊑ ⌜σf⌝ [n2 + m], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used terms: ⌜σf⌝ , n1, n2 + m
| mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ[m] ⊑ σσ[n] |
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ n1 ≤ n2 + m ∧ ⌜n2 + m⌝ < # ⌜σf⌝ |
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], n2 + m < n1, ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ m ≤ n ↔ ¬ n < m; (ss) add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ ⌜n⌝ ≠ ∞; (s) ⊦ ⌜m⌝ + n∞ = ∞ ↔ n∞ = ∞; (s) ⊦ n∞ < ∞ ↔ n∞ ≠ ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s)
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], n2 + m < n1, ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ[m] ⊑ σσ[n]
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), n2 + m < n1, mon(⌜σf⌝ ), ⌜σf⌝ [n2 + m] ⊑ ⌜σf⌝ [n1], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦
Used simplifier rules: ⊦ m < n → m ≤ n; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ ⌜m⌝ < ∞; (s) Used terms: ⌜σf⌝ , n2 + m, n1
| mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ[m] ⊑ σσ[n] |
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), n2 + m < n1, mon(⌜σf⌝ ), ⌜σf⌝ [n2 + m] ⊑ ⌜σf⌝ [n1], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], n2 + m < n1, ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n2 + m) ⊑ σf(n1), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ [n] = nf(n); (s)
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], n2 + m < n1, ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n2 + m) ⊑ σf(n1), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), n2 + m < n1, mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∃ σ1. σf(n2 + m) + σ1 = σf(n1) ⊦
Used terms: σf(n2 + m), σf(n1)
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), n2 + m < n1, mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∃ σ1. σf(n2 + m) + σ1 = σf(n1) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , σf(n2 + m) + σ0 = σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], n2 + m < n1, ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , σf(n2 + m) + σ0 = σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], n2 + m < n1, ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(σf(n2 + m) + σ0) = # σf(n1), # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), n2 + m < n1, mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n. ⌜n⌝ < #(σf(n2 + m) + σ0) → (σf(n2 + m) + σ0)[n] = σf(n1)[n] ⊦
Used terms: σf(n2 + m) + σ0, σf(n1)
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(σf(n2 + m) + σ0) = # σf(n1), # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), n2 + m < n1, mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n. ⌜n⌝ < #(σf(n2 + m) + σ0) → (σf(n2 + m) + σ0)[n] = σf(n1)[n] ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), ((⌜n0⌝ + ⌜1⌝ ) + # σ) + # σ0 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], n2 + m < n1, ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n3. ⌜n3⌝ < # σf(n1) → (σf(n2 + m) + σ0)[n3] = σf(n1)[n3] ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ #(σ + σ1) = # σ + # σ1; (s)
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), ((⌜n0⌝ + ⌜1⌝ ) + # σ) + # σ0 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], n2 + m < n1, ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n3. ⌜n3⌝ < # σf(n1) → (σf(n2 + m) + σ0)[n3] = σf(n1)[n3] ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), ((⌜n0⌝ + ⌜1⌝ ) + # σ) + # σ0 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), n2 + m < n1, mon(⌜σf⌝ ), ⌜n0⌝ < # σf(n1) → (σf(n2 + m) + σ0)[n0] = σf(n1)[n0], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦
Used terms: n0
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), ((⌜n0⌝ + ⌜1⌝ ) + # σ) + # σ0 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), n2 + m < n1, mon(⌜σf⌝ ), ⌜n0⌝ < # σf(n1) → (σf(n2 + m) + σ0)[n0] = σf(n1)[n0], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), ((⌜n0⌝ + ⌜1⌝ ) + # σ) + # σ0 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], n2 + m < n1, ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ ⌜n0⌝ < # σf(n1), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), ((⌜n0⌝ + ⌜1⌝ ) + # σ) + # σ0 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], (σf(n2 + m) + σ0)[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], n2 + m < n1, ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), ((⌜n0⌝ + ⌜1⌝ ) + # σ) + # σ0 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], n2 + m < n1, ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ ⌜n0⌝ < # σf(n1), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), ((⌜n0⌝ + ⌜1⌝ ) + # σ) + # σ0 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), n2 + m < n1, # σf(n1) < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ ⌜n0⌝ < # σf(n1), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦
Used simplifier rules: lels-trans: ⊦ ¬ n∞1 < n∞ ∧ n∞1 < n∞2 → n∞ < n∞2; (forward) from specification nat-inf
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), ((⌜n0⌝ + ⌜1⌝ ) + # σ) + # σ0 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), n2 + m < n1, # σf(n1) < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ ⌜n0⌝ < # σf(n1), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦ |
Used simplifier rules: ⊦ m ≤ n → (⌜(* n)⌝ + n∞1 = ⌜(* m)⌝ + n∞2 ↔ ⌜n - m⌝ + n∞1 = n∞2); (s) ⊦ n∞ + ⌜0⌝ = n∞; (s) ⊦ ⌜n⌝ + n∞1 = ⌜n⌝ + n∞2 ↔ n∞1 = n∞2; (s) ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) ⊦ ¬ n∞ + n∞1 < n∞1; (s) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), ((⌜n0⌝ + ⌜1⌝ ) + # σ) + # σ0 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], (σf(n2 + m) + σ0)[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], n2 + m < n1, ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
⊦ ⌜m⌝ < # σ → (σ + σ1)[m] = σ[m]
Used simplifier rules: ⊦ ¬ ⌜m⌝ < # σ → (σ + σ1)[m] = σ1[m - (# σ).n]; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream lels-trans: ⊦ ¬ n∞1 < n∞ ∧ n∞1 < n∞2 → n∞ < n∞2; (forward) from specification nat-inf ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) ⊦ ¬ n∞ + n∞1 < n∞1; (s) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf Used terms: σf(n2 + m), σ0, n0
| ⊦ ⌜m⌝ < # σ → (σ + σ1)[m] = σ[m] |
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜σf⌝ [n1] ⊑ ⌜σf⌝ [n2 + m], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n1) ⊑ σf(n2 + m), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦
Used simplifier rules: ⊦ ⌜nf⌝ [n] = nf(n); (s)
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), σf(n1) ⊑ σf(n2 + m), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3] ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. σf(n1) + σ1 = σf(n2 + m) ⊦
Used terms: σf(n1), σf(n2 + m)
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜λ n. σf(n + m)⌝ )[n0] = σf(n2 + m)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ σf(n2 + m)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = σf(n2 + m)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∃ σ1. σf(n1) + σ1 = σf(n2 + m) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), σf(n1) + σ0 = σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n1) + # σ0, lim(⌜λ n. σf(n + m)⌝ )[n0] = (σf(n1) + σ0)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ (σf(n1) + σ0)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = (σf(n1) + σ0)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ #(σ + σ1) = # σ + # σ1; (s)
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), σf(n1) + σ0 = σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n1) + # σ0, lim(⌜λ n. σf(n + m)⌝ )[n0] = (σf(n1) + σ0)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ (σf(n1) + σ0)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = (σf(n1) + σ0)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(σf(n1) + σ0) = # σf(n2 + m), # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n1) + # σ0, (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = (σf(n1) + σ0)[n0], σf(n1)[n0] ≠ (σf(n1) + σ0)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = (σf(n1) + σ0)[n3], ∀ n. ⌜n⌝ < #(σf(n1) + σ0) → (σf(n1) + σ0)[n] = σf(n2 + m)[n] ⊦
Used terms: σf(n1) + σ0, σf(n2 + m)
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(σf(n1) + σ0) = # σf(n2 + m), # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n1) + # σ0, (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = (σf(n1) + σ0)[n0], σf(n1)[n0] ≠ (σf(n1) + σ0)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = (σf(n1) + σ0)[n3], ∀ n. ⌜n⌝ < #(σf(n1) + σ0) → (σf(n1) + σ0)[n] = σf(n2 + m)[n] ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n1) + # σ0, # σf(n1) + # σ0 = # σf(n2 + m), lim(⌜λ n. σf(n + m)⌝ )[n0] = (σf(n1) + σ0)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ (σf(n1) + σ0)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = (σf(n1) + σ0)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n3. ⌜n3⌝ < # σf(n1) + # σ0 → (σf(n1) + σ0)[n3] = σf(n2 + m)[n3] ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ #(σ + σ1) = # σ + # σ1; (s)
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n1) + # σ0, # σf(n1) + # σ0 = # σf(n2 + m), lim(⌜λ n. σf(n + m)⌝ )[n0] = (σf(n1) + σ0)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ (σf(n1) + σ0)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = (σf(n1) + σ0)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n3. ⌜n3⌝ < # σf(n1) + # σ0 → (σf(n1) + σ0)[n3] = σf(n2 + m)[n3] ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(n1) + # σ0 = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n1) + # σ0, (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = (σf(n1) + σ0)[n0], σf(n1)[n0] ≠ (σf(n1) + σ0)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜n0⌝ < # σf(n1) + # σ0 → (σf(n1) + σ0)[n0] = σf(n2 + m)[n0], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = (σf(n1) + σ0)[n3] ⊦
Used terms: n0
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(n1) + # σ0 = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n1) + # σ0, (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = (σf(n1) + σ0)[n0], σf(n1)[n0] ≠ (σf(n1) + σ0)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ⌜n0⌝ < # σf(n1) + # σ0 → (σf(n1) + σ0)[n0] = σf(n2 + m)[n0], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = (σf(n1) + σ0)[n3] ⊦ |
⊦ ⌜m⌝ < # σ → (σ + σ1)[m] = σ[m]
# lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n1) + # σ0, # σf(n1) + # σ0 = # σf(n2 + m), lim(⌜λ n. σf(n + m)⌝ )[n0] = (σf(n1) + σ0)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ (σf(n1) + σ0)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ ⌜n0⌝ < # σf(n1), ⌜n0⌝ < # σf(n1) + # σ0 → (σf(n1) + σ0)[n0] = σf(n2 + m)[n0], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = (σf(n1) + σ0)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦
Used terms: σf(n1), σ0, n0
| ⊦ ⌜m⌝ < # σ → (σ + σ1)[m] = σ[m] |
| # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(m) = ⌜n⌝ , (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n1) + # σ0, # σf(n1) + # σ0 = # σf(n2 + m), lim(⌜λ n. σf(n + m)⌝ )[n0] = (σf(n1) + σ0)[n0], lim(⌜σf⌝ )[n0] = σf(n1)[n0], σf(n1)[n0] ≠ (σf(n1) + σ0)[n0], ⌜n0⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ ⌜n0⌝ < # σf(n1), ⌜n0⌝ < # σf(n1) + # σ0 → (σf(n1) + σ0)[n0] = σf(n2 + m)[n0], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = (σf(n1) + σ0)[n3], ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)) ⊦ |
# σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(n1) + # σ0 = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n1) + # σ0, (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σ0[n0 - (# σf(n1)).n], σf(n1)[n0] ≠ σ0[n0 - (# σf(n1)).n], ⌜n0⌝ < # lim(⌜σf⌝ ), # σf(n1) < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ ⌜n0⌝ < # σf(n1), ⌜n0⌝ < # σf(n1) + # σ0 → σ0[n0 - (# σf(n1)).n] = σf(n2 + m)[n0], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = (σf(n1) + σ0)[n3] ⊦
Used simplifier rules: lels-trans: ⊦ ¬ n∞1 < n∞ ∧ n∞1 < n∞2 → n∞ < n∞2; (forward) from specification nat-inf append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ ¬ ⌜m⌝ < # σ → (σ + σ1)[m] = σ1[m - (# σ).n]; (s)
| # σf(m) = ⌜n⌝ , # lim(⌜σf⌝ ) = # lim(⌜λ n. σf(n + m)⌝ ), # σf(n1) + # σ0 = # σf(n2 + m), (⌜n0⌝ + ⌜1⌝ ) + # σ = # σf(n1) + # σ0, (⌜n0⌝ + ⌜1⌝ ) + # σ1 = # σf(n1), lim(⌜σf⌝ )[n0] = σf(n1)[n0], lim(⌜λ n. σf(n + m)⌝ )[n0] = σ0[n0 - (# σf(n1)).n], σf(n1)[n0] ≠ σ0[n0 - (# σf(n1)).n], ⌜n0⌝ < # lim(⌜σf⌝ ), # σf(n1) < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), ¬ ⌜n0⌝ < # σf(n1), ⌜n0⌝ < # σf(n1) + # σ0 → σ0[n0 - (# σf(n1)).n] = σf(n2 + m)[n0], ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜λ n. σf(n + m)⌝ ) to m0⌝ ⊑ σf(n + m)), ∀ n. σf(n + m) ⊑ lim(⌜λ n. σf(n + m)⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n2. ¬ ⌜n0⌝ + # σ1 < ⌜n2⌝ → (⌜lim(⌜σf⌝ ) to n0 + 1⌝ + σ1)[n2] = σf(n1)[n2], ∀ n3. ¬ ⌜n0⌝ + # σ < ⌜n3⌝ → (⌜lim(⌜λ n. σf(n + m)⌝ ) to n0 + 1⌝ + σ)[n3] = (σf(n1) + σ0)[n3] ⊦ |
Used simplifier rules: ⊦ m ≤ n → (⌜(* n)⌝ + n∞1 = ⌜(* m)⌝ + n∞2 ↔ ⌜n - m⌝ + n∞1 = n∞2); (s) ⊦ n∞ + ⌜0⌝ = n∞; (s) ⊦ ⌜n⌝ + n∞1 = ⌜n⌝ + n∞2 ↔ n∞1 = n∞2; (s) ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) ⊦ ¬ n∞ + n∞1 < n∞1; (s) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf
The following image shows the proof tree of sequent calculus. The proved goal is at the bottom. You can click on the nodes to view additional rules. See here for details on colors in a proof tree.