| mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ # lim(⌜σf⌝ ) = # lim(⌜σg⌝ ) + ⌜m⌝ |
# lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
| # lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ[n] ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ) to m⌝ ⊑ σσ[n]))
# lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ) ∧ ⌜σf⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜σf⌝ → ⌜σf⌝ [n] ⊑ lim(⌜σf⌝ )) ∧ (∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜σf⌝ ∧ ⌜lim(⌜σf⌝ ) to m⌝ ⊑ ⌜σf⌝ [n])), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
Used terms: ⌜σf⌝
| ⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ[n] ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ) to m⌝ ⊑ σσ[n])) |
| # lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ) ∧ ⌜σf⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜σf⌝ → ⌜σf⌝ [n] ⊑ lim(⌜σf⌝ )) ∧ (∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜σf⌝ ∧ ⌜lim(⌜σf⌝ ) to m⌝ ⊑ ⌜σf⌝ [n])), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
# lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(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(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ 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(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σg⌝ ) ∧ ⌜σg⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜σg⌝ → ⌜σg⌝ [n] ⊑ lim(⌜σg⌝ )) ∧ (∀ m. ¬ # lim(⌜σg⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜σg⌝ ∧ ⌜lim(⌜σg⌝ ) to m⌝ ⊑ ⌜σg⌝ [n])), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
Used terms: ⌜σg⌝
| ⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ[n] ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ) to m⌝ ⊑ σσ[n])) |
| # lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σg⌝ ) ∧ ⌜σg⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜σg⌝ → ⌜σg⌝ [n] ⊑ lim(⌜σg⌝ )) ∧ (∀ m. ¬ # lim(⌜σg⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜σg⌝ ∧ ⌜lim(⌜σg⌝ ) to m⌝ ⊑ ⌜σg⌝ [n])), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
# lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ [n] = nf(n); (s) ⊦ ⌜m⌝ < ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ [] ≠ ⌜nf⌝ ; (s)
| # lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
# lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # lim(⌜σf⌝ ) < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
# lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < # lim(⌜σg⌝ ) + ⌜m⌝ , ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
Used formulas: # lim(⌜σf⌝ ) < # lim(⌜σg⌝ ) + ⌜m⌝
| # lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # lim(⌜σf⌝ ) < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⌜m0⌝ = # lim(⌜σf⌝ ), # lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # lim(⌜σf⌝ ) < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
Used simplifier rules: natinf freely generated by ∞, ⌜ ⌝;; ⊦ ⌜m⌝ + 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 ⊦ ¬ ∞ < n∞; (s)
| ⌜m0⌝ = # lim(⌜σf⌝ ), # lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # lim(⌜σf⌝ ) < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , ⌜m0⌝ < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
| ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , ⌜m0⌝ < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , ⌜m0⌝ < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), m ≤ m0, ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , ⌜m0⌝ < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ m ≤ m0, ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
Used formulas: m ≤ m0
| ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , ⌜m0⌝ < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), m ≤ m0, ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , ⌜m0⌝ < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), m ≤ m0, ¬ # lim(⌜σg⌝ ) < ⌜(m0 - m) + 1⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to (m0 - m) + 1⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
Used terms: (m0 - m) + 1
| ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , ⌜m0⌝ < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), m ≤ m0, ¬ # lim(⌜σg⌝ ) < ⌜(m0 - m) + 1⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to (m0 - m) + 1⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , ⌜m0⌝ < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), m ≤ m0, ⌜m0 - m⌝ < # lim(⌜σg⌝ ) → ⌜lim(⌜σg⌝ ) to (m0 - m) + 1⌝ ⊑ σg(n), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ) ⊦
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)
| ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , ⌜m0⌝ < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), m ≤ m0, ⌜m0 - m⌝ < # lim(⌜σg⌝ ) → ⌜lim(⌜σg⌝ ) to (m0 - m) + 1⌝ ⊑ σg(n), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ) ⊦ |
m0 = n0 + m, ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , ⌜m0⌝ < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), m ≤ m0, ⌜n0⌝ < # lim(⌜σg⌝ ) → ⌜lim(⌜σg⌝ ) to n0 + 1⌝ ⊑ σg(n), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
Used simplifier rules: n ≤ m ⊦ n0 = m - n ↔ m = n0 + n; (elim) Used terms: m0, m, n0
| m0 = n0 + m, ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , ⌜m0⌝ < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), m ≤ m0, ⌜n0⌝ < # lim(⌜σg⌝ ) → ⌜lim(⌜σg⌝ ) to n0 + 1⌝ ⊑ σg(n), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ⌜lim(⌜σg⌝ ) to n0 + 1⌝ ⊑ σg(n), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ m0. ¬ n0 + m < 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⌝ + ⌜m⌝ < ⌜n0⌝ ↔ n + m < n0; (s) ⊦ ⌜n⌝ + n∞1 < ⌜n⌝ + n∞2 ↔ n∞1 < n∞2; (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) ⊦ m ≤ m + n; (s) ⊦ ⌜n⌝ + n∞1 = ⌜n⌝ + n∞2 ↔ n∞1 = n∞2; (s)
| ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ⌜lim(⌜σg⌝ ) to n0 + 1⌝ ⊑ σg(n), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∃ _σ. ⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ = σg(n) ⊦
Used terms: ⌜lim(⌜σg⌝ ) to n0 + 1⌝ , σg(n)
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∃ _σ. ⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ = σg(n) ⊦ |
⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ = σg(n), ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦
| ⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ = σg(n), ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ) = # σg(n), ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n1. ⌜n1⌝ < #(⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ) → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1] ⊦
Used terms: ⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ, σg(n)
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ) = # σg(n), ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n1. ⌜n1⌝ < #(⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ) → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1] ⊦ |
⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1] ⊦
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)
| ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1] ⊦ |
# σf(n) = # σg(n) + ⌜m⌝ , (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1], ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ) ⊦
Used terms: n
| # σf(n) = # σg(n) + ⌜m⌝ , (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1], ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ) ⊦ |
# σf(n) = # σg(n) + ⌜m⌝ , ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1] ⊦
Used terms: n
| # σf(n) = # σg(n) + ⌜m⌝ , ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1] ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
# σf(n) = # σg(n) + ⌜m⌝ , (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1], ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∃ σ1. σf(n) + σ1 = lim(⌜σf⌝ ) ⊦
Used terms: σf(n), lim(⌜σf⌝ )
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # σf(n) = # σg(n) + ⌜m⌝ , (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1], ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∃ σ1. σf(n) + σ1 = lim(⌜σf⌝ ) ⊦ |
# σf(n) = # σg(n) + ⌜m⌝ , σf(n) + σ1 = lim(⌜σf⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ + ⌜m⌝ = # σf(n) + # σ1, ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1], ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ) ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ #(σ + σ1) = # σ + # σ1; (s)
| # σf(n) = # σg(n) + ⌜m⌝ , σf(n) + σ1 = lim(⌜σf⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ + ⌜m⌝ = # σf(n) + # σ1, ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1], ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(σf(n) + σ1) = # lim(⌜σf⌝ ), # σf(n) = # σg(n) + ⌜m⌝ , ⌜n0⌝ + ⌜m⌝ = # σf(n) + # σ1, (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1], ∀ n0. ⌜n0⌝ < #(σf(n) + σ1) → (σf(n) + σ1)[n0] = lim(⌜σf⌝ )[n0] ⊦
Used terms: σf(n) + σ1, lim(⌜σf⌝ )
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(σf(n) + σ1) = # lim(⌜σf⌝ ), # σf(n) = # σg(n) + ⌜m⌝ , ⌜n0⌝ + ⌜m⌝ = # σf(n) + # σ1, (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1], ∀ n0. ⌜n0⌝ < #(σf(n) + σ1) → (σf(n) + σ1)[n0] = lim(⌜σf⌝ )[n0] ⊦ |
# σf(n) = # σg(n) + ⌜m⌝ , (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ + ⌜m⌝ = # σf(n) + # σ1, ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1], ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n1. n1 < n0 + m → (σf(n) + σ1)[n1] = lim(⌜σf⌝ )[n1] ⊦
Used simplifier rules: ⊦ n∞ = ⌜m⌝ + ⌜n0⌝ → (⌜n⌝ < n∞ ↔ n < m + n0); (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 append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ #(σ + σ1) = # σ + # σ1; (s)
| # σf(n) = # σg(n) + ⌜m⌝ , (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ + ⌜m⌝ = # σf(n) + # σ1, ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1], ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n1. n1 < n0 + m → (σf(n) + σ1)[n1] = lim(⌜σf⌝ )[n1] ⊦ |
# σf(n) = # σg(n) + ⌜m⌝ , ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ + ⌜m⌝ = # σf(n) + # σ1, (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), σ1 = ⌜x⌝ , ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n1. n1 < n0 + m → (σf(n) + σ1)[n1] = lim(⌜σf⌝ )[n1], ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1] ⊦
Used simplifier rules: stream('a) freely generated by ⌜ ⌝, ⌜ ⌝;; ⊦ # ⌜nf⌝ = ∞; (s) ⊦ 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
| # σf(n) = # σg(n) + ⌜m⌝ , ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ + ⌜m⌝ = # σf(n) + # σ1, (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), σ1 = ⌜x⌝ , ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n1. n1 < n0 + m → (σf(n) + σ1)[n1] = lim(⌜σf⌝ )[n1], ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1] ⊦ |
# σf(n) = # σg(n) + ⌜m⌝ , ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ + ⌜m⌝ = # σf(n) + ⌜# x⌝ , ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1], ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n1. n1 < n0 + m → (σf(n) + ⌜x⌝ )[n1] = lim(⌜σf⌝ )[n1] ⊦
Used simplifier rules: ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| # σf(n) = # σg(n) + ⌜m⌝ , ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ + ⌜m⌝ = # σf(n) + ⌜# x⌝ , ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1], ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n1. n1 < n0 + m → (σf(n) + ⌜x⌝ )[n1] = lim(⌜σf⌝ )[n1] ⊦ |
# σf(n) = # σg(n) + ⌜m⌝ , ⌜n0⌝ + ⌜m⌝ = (# σg(n) + ⌜m⌝ ) + ⌜# x⌝ , (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n1. n1 < n0 + m → (σf(n) + ⌜x⌝ )[n1] = lim(⌜σf⌝ )[n1], ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1] ⊦
| # σf(n) = # σg(n) + ⌜m⌝ , ⌜n0⌝ + ⌜m⌝ = (# σg(n) + ⌜m⌝ ) + ⌜# x⌝ , (⌜n0⌝ + ⌜1⌝ ) + # _σ = # σg(n), ⌜n0⌝ + ⌜m⌝ = # lim(⌜σf⌝ ), ⌜n0⌝ ≠ # lim(⌜σg⌝ ), ⌜n0⌝ < # lim(⌜σg⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n1. n1 < n0 + m → (σf(n) + ⌜x⌝ )[n1] = lim(⌜σf⌝ )[n1], ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ n0 + m < m0 → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n1. ¬ ⌜n0⌝ + # _σ < ⌜n1⌝ → (⌜lim(⌜σg⌝ ) to n0 + 1⌝ + _σ)[n1] = σg(n)[n1] ⊦ |
Used simplifier rules: ⊦ ⌜n⌝ + n∞1 = ⌜n⌝ + n∞2 ↔ n∞1 = n∞2; (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
| ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , ⌜m0⌝ < # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ m ≤ m0, ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic 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 ⊦ m < n → ⌜m⌝ < ⌜n⌝ + n∞0; (s) ⊦ m ≤ n ↔ ¬ n < m; (ss)
| ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
Used terms: m0
| ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ⌜lim(⌜σf⌝ ).l⌝ ⊑ σf(n), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
Used simplifier rules: ⊦ ¬ n < n; (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ # σ = ⌜n⌝ → σ to n = σ.l; (s)
| ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ⌜lim(⌜σf⌝ ).l⌝ ⊑ σf(n), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∃ σ1. ⌜lim(⌜σf⌝ ).l⌝ + σ1 = σf(n) ⊦
Used terms: ⌜lim(⌜σf⌝ ).l⌝ , σf(n)
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∃ σ1. ⌜lim(⌜σf⌝ ).l⌝ + σ1 = σf(n) ⊦ |
⌜lim(⌜σf⌝ ).l⌝ + σ1 = σf(n), ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
| ⌜lim(⌜σf⌝ ).l⌝ + σ1 = σf(n), ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⌜lim(⌜σf⌝ ).l⌝ + σ1 = σf(n), ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
Used terms: n
| ⌜lim(⌜σf⌝ ).l⌝ + σ1 = σf(n), ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
⌜lim(⌜σf⌝ ).l⌝ + σ1 = σf(n), ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∃ σ1. σf(n) + σ1 = lim(⌜σf⌝ ) ⊦
Used terms: σf(n), lim(⌜σf⌝ )
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| ⌜lim(⌜σf⌝ ).l⌝ + σ1 = σf(n), ⌜m0⌝ = # lim(⌜σf⌝ ), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∃ σ1. σf(n) + σ1 = lim(⌜σf⌝ ) ⊦ |
σf(n) + σ = lim(⌜σf⌝ ), ⌜(σf(n) + σ).l⌝ + σ1 = σf(n), ⌜m0⌝ = # σf(n) + # σ, ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ #(σ + σ1) = # σ + # σ1; (s)
| σf(n) + σ = lim(⌜σf⌝ ), ⌜(σf(n) + σ).l⌝ + σ1 = σf(n), ⌜m0⌝ = # σf(n) + # σ, ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⌜(σf(n) + σ).l⌝ + σ1 = σf(n), σf(n) + σ = lim(⌜σf⌝ ), σ = ⌜x⌝ , ⌜m0⌝ = # σf(n) + # σ, ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
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(n) + σ).l⌝ + σ1 = σf(n), σf(n) + σ = lim(⌜σf⌝ ), σ = ⌜x⌝ , ⌜m0⌝ = # σf(n) + # σ, ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
σf(n) + ⌜x⌝ = lim(⌜σf⌝ ), ⌜(σf(n) + ⌜x⌝ ).l⌝ + σ1 = σf(n), ⌜m0⌝ = # σf(n) + ⌜# x⌝ , ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
Used simplifier rules: ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| σf(n) + ⌜x⌝ = lim(⌜σf⌝ ), ⌜(σf(n) + ⌜x⌝ ).l⌝ + σ1 = σf(n), ⌜m0⌝ = # σf(n) + ⌜# x⌝ , ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(⌜(σf(n) + ⌜x⌝ ).l⌝ + σ1) = # σf(n), σf(n) + ⌜x⌝ = lim(⌜σf⌝ ), ⌜m0⌝ = # σf(n) + ⌜# x⌝ , ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n0. ⌜n0⌝ < #(⌜(σf(n) + ⌜x⌝ ).l⌝ + σ1) → (⌜(σf(n) + ⌜x⌝ ).l⌝ + σ1)[n0] = σf(n)[n0] ⊦
Used terms: ⌜(σf(n) + ⌜x⌝ ).l⌝ + σ1, σf(n)
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(⌜(σf(n) + ⌜x⌝ ).l⌝ + σ1) = # σf(n), σf(n) + ⌜x⌝ = lim(⌜σf⌝ ), ⌜m0⌝ = # σf(n) + ⌜# x⌝ , ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n0. ⌜n0⌝ < #(⌜(σf(n) + ⌜x⌝ ).l⌝ + σ1) → (⌜(σf(n) + ⌜x⌝ ).l⌝ + σ1)[n0] = σf(n)[n0] ⊦ |
σf(n) + ⌜x⌝ = lim(⌜σf⌝ ), ⌜# (σf(n) + ⌜x⌝ ).l⌝ + # σ1 = # σf(n), ⌜m0⌝ = # σf(n) + ⌜# x⌝ , ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n0. ⌜n0⌝ < # σf(n) → (⌜(σf(n) + ⌜x⌝ ).l⌝ + σ1)[n0] = σf(n)[n0] ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) ⊦ #(σ + σ1) = # σ + # σ1; (s)
| σf(n) + ⌜x⌝ = lim(⌜σf⌝ ), ⌜# (σf(n) + ⌜x⌝ ).l⌝ + # σ1 = # σf(n), ⌜m0⌝ = # σf(n) + ⌜# x⌝ , ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n0. ⌜n0⌝ < # σf(n) → (⌜(σf(n) + ⌜x⌝ ).l⌝ + σ1)[n0] = σf(n)[n0] ⊦ |
⌜# (σf(n) + ⌜x⌝ ).l⌝ + # σ1 = # σf(n), σf(n) + ⌜x⌝ = lim(⌜σf⌝ ), σ1 = ⌜x0⌝ , ⌜m0⌝ = # σf(n) + ⌜# x⌝ , ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜(σf(n) + ⌜x⌝ ).l⌝ + σ1)[n0] = σf(n)[n0], ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
Used simplifier rules: stream('a) freely generated by ⌜ ⌝, ⌜ ⌝;; ⊦ # ⌜nf⌝ = ∞; (s) ⊦ ⌜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)
| ⌜# (σf(n) + ⌜x⌝ ).l⌝ + # σ1 = # σf(n), σf(n) + ⌜x⌝ = lim(⌜σf⌝ ), σ1 = ⌜x0⌝ , ⌜m0⌝ = # σf(n) + ⌜# x⌝ , ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜(σf(n) + ⌜x⌝ ).l⌝ + σ1)[n0] = σf(n)[n0], ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
σf(n) + ⌜x⌝ = lim(⌜σf⌝ ), ⌜# (σf(n) + ⌜x⌝ ).l⌝ + ⌜# x0⌝ = # σf(n), ⌜m0⌝ = # σf(n) + ⌜# x⌝ , ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n0. n0 < # (σf(n) + ⌜x⌝ ).l + # x0 → ((σf(n) + ⌜x⌝ ).l + x0)[n0] = σf(n)[n0] ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ (⌜x⌝ + ⌜x0⌝ )[m] = (x + x0)[m]; (s) ⊦ n∞ = ⌜m⌝ + ⌜n0⌝ → (⌜n⌝ < n∞ ↔ n < m + n0); (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 ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| σf(n) + ⌜x⌝ = lim(⌜σf⌝ ), ⌜# (σf(n) + ⌜x⌝ ).l⌝ + ⌜# x0⌝ = # σf(n), ⌜m0⌝ = # σf(n) + ⌜# x⌝ , ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n0. n0 < # (σf(n) + ⌜x⌝ ).l + # x0 → ((σf(n) + ⌜x⌝ ).l + x0)[n0] = σf(n)[n0] ⊦ |
⌜# (σf(n) + ⌜x⌝ ).l⌝ + ⌜# x0⌝ = # σf(n), σf(n) + ⌜x⌝ = lim(⌜σf⌝ ), ⌜m0⌝ = # σf(n) + ⌜# x⌝ , ⌜x1⌝ = σf(n), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n0. n0 < # (σf(n) + ⌜x⌝ ).l + # x0 → ((σf(n) + ⌜x⌝ ).l + x0)[n0] = σf(n)[n0], ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
Used simplifier rules: stream('a) freely generated by ⌜ ⌝, ⌜ ⌝;; ⊦ ⌜nf⌝ + σ = ⌜nf⌝ ; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ # ⌜nf⌝ = ∞; (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
| ⌜# (σf(n) + ⌜x⌝ ).l⌝ + ⌜# x0⌝ = # σf(n), σf(n) + ⌜x⌝ = lim(⌜σf⌝ ), ⌜m0⌝ = # σf(n) + ⌜# x⌝ , ⌜x1⌝ = σf(n), ⌜m0⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , m0 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n0. n0 < # (σf(n) + ⌜x⌝ ).l + # x0 → ((σf(n) + ⌜x⌝ ).l + x0)[n0] = σf(n)[n0], ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
⌜x1⌝ = σf(n), ⌜x1⌝ = lim(⌜σf⌝ ), ⌜# x1⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # x1 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n0. σf(n0) ⊑ ⌜x1⌝ ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ σ + [] = σ; (s) ⊦ ⌜[]⌝ = []; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ x + [] = x; (s) ⊦ [] + x = x; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic ⊦ n + 0 = n; (s) ⊦ # [] = 0; (s) lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic ⊦ ⌜x⌝ [n] = x[n]; (s) ⊦ (⌜x⌝ + ⌜y⌝ ).l = x + y; (s) ⊦ #(x + y) = # x + # y; (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) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) ⊦ # x = 0 ↔ x = []; (s) ⊦ ⌜n⌝ = ⌜n0⌝ ↔ n = n0; (s) ⊦ ⌜n⌝ + n∞ = ⌜0⌝ ↔ n∞ = ⌜0⌝ ∧ n = 0; (ws) ⊦ ⌜n⌝ + n∞ = ⌜n⌝ ↔ n∞ = ⌜0⌝ ; (s) ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s)
| ⌜x1⌝ = σf(n), ⌜x1⌝ = lim(⌜σf⌝ ), ⌜# x1⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # x1 < m, mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n0. σf(n0) ⊑ ⌜x1⌝ ⊦ |
# σf(n) = # σg(n) + ⌜m⌝ , ⌜x1⌝ = lim(⌜σf⌝ ), ⌜x1⌝ = σf(n), ⌜# x1⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # x1 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n0. σf(n0) ⊑ ⌜x1⌝ , ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
Used terms: n
| # σf(n) = # σg(n) + ⌜m⌝ , ⌜x1⌝ = lim(⌜σf⌝ ), ⌜x1⌝ = σf(n), ⌜# x1⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # x1 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n0. σf(n0) ⊑ ⌜x1⌝ , ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
⌜x1⌝ = lim(⌜σf⌝ ), ⌜x1⌝ = σf(n), ⌜# x1⌝ = # σg(n) + ⌜m⌝ , ⌜# x1⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # x1 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n0. σf(n0) ⊑ ⌜x1⌝ , ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
Used simplifier rules: ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| ⌜x1⌝ = lim(⌜σf⌝ ), ⌜x1⌝ = σf(n), ⌜# x1⌝ = # σg(n) + ⌜m⌝ , ⌜# x1⌝ ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # x1 < m, mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n0. σf(n0) ⊑ ⌜x1⌝ , ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
Used simplifier rules: stream('a) freely generated by ⌜ ⌝, ⌜ ⌝;; ⊦ # ⌜nf⌝ = ∞; (s) ⊦ ⌜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) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) ⊦ ⌜n⌝ + ⌜m⌝ = ⌜n0⌝ ↔ n + m = n0; (s) lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic ⊦ ¬ m + n < m; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic
| # lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < # lim(⌜σg⌝ ) + ⌜m⌝ , ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⊦ ¬ n∞1 < n∞ → (n∞ < n∞1 ↔ n∞ ≠ n∞1)
# lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # lim(⌜σg⌝ ) + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < # lim(⌜σg⌝ ) + ⌜m⌝ , ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
Used terms: # lim(⌜σf⌝ ), # lim(⌜σg⌝ ) + ⌜m⌝
| ⊦ ¬ n∞1 < n∞ → (n∞ < n∞1 ↔ n∞ ≠ n∞1) |
| # lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # lim(⌜σg⌝ ) + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < # lim(⌜σg⌝ ) + ⌜m⌝ , ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
# lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # lim(⌜σg⌝ ) + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
Used simplifier rules: ⊦ n∞ < n∞0 → ¬ n∞0 < n∞; (s)
| # lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # lim(⌜σg⌝ ) + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # lim(⌜σg⌝ ) + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
Used simplifier rules: natinf freely generated by ∞, ⌜ ⌝;; ⊦ ⌜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)
| ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ # lim(⌜σg⌝ ) + ⌜m⌝ , # lim(⌜σg⌝ ) + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
| ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0 + m + 1⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ ⊑ σf(n)), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
Used terms: m0 + m + 1
| ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0 + m + 1⌝ → (∃ n. ⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ ⊑ σf(n)), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ → ⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ ⊑ σf(n), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
Used simplifier rules: 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)
| ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ → ⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ ⊑ σf(n), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ ⊑ σf(n), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
| ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
Used simplifier rules: natinf freely generated by ∞, ⌜ ⌝;; ls-trans: ⊦ n∞ < n∞1 ∧ n∞1 < n∞2 → n∞ < n∞2; (forward) from specification nat-inf ⊦ ⌜n⌝ + ⌜m⌝ = ⌜n0⌝ ↔ n + m = n0; (s) ⊦ ⌜n⌝ + n∞1 < ⌜n⌝ + n∞2 ↔ n∞1 < n∞2; (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ ¬ n < n; (s) ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) ⊦ ⌜n⌝ + ⌜m⌝ < ⌜n0⌝ ↔ n + m < n0; (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∞ < ∞ ↔ n∞ ≠ ∞; (s) ⊦ ⌜m⌝ + n∞ = ∞ ↔ n∞ = ∞; (s) ⊦ ⌜n⌝ ≠ ∞; (s) ⊦ ¬ ∞ < n∞; (s)
| ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ ⊑ σf(n), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∃ σ1. ⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1 = σf(n) ⊦
Used terms: ⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ , σf(n)
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∃ σ1. ⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1 = σf(n) ⊦ |
⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1 = σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦
| ⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1 = σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1) = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n0. ⌜n0⌝ < #(⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0] ⊦
Used terms: ⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1, σf(n)
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1) = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n0. ⌜n0⌝ < #(⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0] ⊦ |
⌜#(lim(⌜σf⌝ ) to m0 + m + 1)⌝ + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0] ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ # ⌜σ to n⌝ = ⌜#(σ to n)⌝ ; (s) ⊦ #(σ + σ1) = # σ + # σ1; (s)
| ⌜#(lim(⌜σf⌝ ) to m0 + m + 1)⌝ + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0] ⊦ |
¬ # σ < ⌜n⌝ ⊦ #(σ to n) = n
⌜#(lim(⌜σf⌝ ) to m0 + m + 1)⌝ + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , # lim(⌜σf⌝ ) < ⌜m0 + m + 1⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
⌜m0 + m + 1⌝ + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0 + m + 1⌝ , ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
Used terms: lim(⌜σf⌝ ), m0 + m + 1
| ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = n |
| ⌜#(lim(⌜σf⌝ ) to m0 + m + 1)⌝ + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , # lim(⌜σf⌝ ) < ⌜m0 + m + 1⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⌜#(lim(⌜σf⌝ ) to m0 + m + 1)⌝ + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(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 < n; (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) ⊦ ⌜n⌝ + n∞1 < ⌜n⌝ + n∞2 ↔ n∞1 < n∞2; (s) ls-trans: ⊦ n∞ < n∞1 ∧ n∞1 < n∞2 → n∞ < n∞2; (forward) from specification nat-inf 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⌝ ) to m0 + m + 1)⌝ + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
Used simplifier rules: natinf freely generated by ∞, ⌜ ⌝;; ¬ # σ < ⌜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⌝ + ⌜m⌝ = ⌜n0⌝ ↔ n + m = n0; (s) ⊦ ⌜n⌝ < ⌜1⌝ + n∞ ↔ ¬ n∞ < ⌜n⌝ ; (s) ⊦ ⌜n⌝ + ⌜m⌝ < ⌜n0⌝ ↔ n + m < n0; (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∞ < ∞ ↔ n∞ ≠ ∞; (s) ⊦ ⌜m⌝ + n∞ = ∞ ↔ n∞ = ∞; (s) ⊦ ⌜n⌝ ≠ ∞; (s) ⊦ ¬ ∞ < n∞; (s)
| ⌜m0 + m + 1⌝ + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0 + m + 1⌝ , ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
(⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0] ⊦
Used simplifier rules: 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) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf
| (⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. σg(n) ⊑ lim(⌜σg⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0] ⊦ |
(⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), σg(n) ⊑ lim(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦
Used terms: n
| (⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), σg(n) ⊑ lim(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
(⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∃ _σ. σg(n) + _σ = lim(⌜σg⌝ ) ⊦
Used terms: σg(n), lim(⌜σg⌝ )
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| (⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m0. ¬ # lim(⌜σg⌝ ) < ⌜m0⌝ → (∃ n. ⌜lim(⌜σg⌝ ) to m0⌝ ⊑ σg(n)), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∃ _σ. σg(n) + _σ = lim(⌜σg⌝ ) ⊦ |
(⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), σg(n) + _σ = lim(⌜σg⌝ ), ⌜m0⌝ = # σg(n) + # _σ, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)) ⊦
Used simplifier rules: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ #(σ + σ1) = # σ + # σ1; (s)
| (⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), σg(n) + _σ = lim(⌜σg⌝ ), ⌜m0⌝ = # σg(n) + # _σ, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#(σg(n) + _σ) = # lim(⌜σg⌝ ), (⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # σg(n) + # _σ, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n0. ⌜n0⌝ < #(σg(n) + _σ) → (σg(n) + _σ)[n0] = lim(⌜σg⌝ )[n0] ⊦
Used terms: σg(n) + _σ, lim(⌜σg⌝ )
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #(σg(n) + _σ) = # lim(⌜σg⌝ ), (⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # σg(n) + # _σ, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n0. ⌜n0⌝ < #(σg(n) + _σ) → (σg(n) + _σ)[n0] = lim(⌜σg⌝ )[n0] ⊦ |
(⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), ⌜m0⌝ = # σg(n) + # _σ, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n0. n0 < m0 → (σg(n) + _σ)[n0] = lim(⌜σg⌝ )[n0] ⊦
Used simplifier rules: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ #(σ + σ1) = # σ + # σ1; (s)
| (⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), ⌜m0⌝ = # σg(n) + # _σ, # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n0. n0 < m0 → (σg(n) + _σ)[n0] = lim(⌜σg⌝ )[n0] ⊦ |
(⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), _σ = ⌜x_list<'b>⌝ , ⌜m0⌝ = # σg(n) + # _σ, ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n0. n0 < m0 → (σg(n) + _σ)[n0] = lim(⌜σg⌝ )[n0], ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)) ⊦
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)
| (⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), _σ = ⌜x_list<'b>⌝ , ⌜m0⌝ = # σg(n) + # _σ, ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n0. n0 < m0 → (σg(n) + _σ)[n0] = lim(⌜σg⌝ )[n0], ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)) ⊦ |
(⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), ⌜m0⌝ = # σg(n) + ⌜# x_list<'b>⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n0. n0 < m0 → (σg(n) + ⌜x_list<'b>⌝ )[n0] = lim(⌜σg⌝ )[n0] ⊦
Used simplifier rules: ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| (⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # lim(⌜σg⌝ ), ⌜m0⌝ = # σg(n) + ⌜# x_list<'b>⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n. # σf(n) = # σg(n) + ⌜m⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n0. n0 < m0 → (σg(n) + ⌜x_list<'b>⌝ )[n0] = lim(⌜σg⌝ )[n0] ⊦ |
# σf(n) = # σg(n) + ⌜m⌝ , (⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # σg(n) + ⌜# x_list<'b>⌝ , ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n0. n0 < m0 → (σg(n) + ⌜x_list<'b>⌝ )[n0] = lim(⌜σg⌝ )[n0], ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)) ⊦
Used terms: n
| # σf(n) = # σg(n) + ⌜m⌝ , (⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), ⌜m0⌝ = # σg(n) + ⌜# x_list<'b>⌝ , ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n0. n0 < m0 → (σg(n) + ⌜x_list<'b>⌝ )[n0] = lim(⌜σg⌝ )[n0], ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)) ⊦ |
# σf(n) = # σg(n) + ⌜m⌝ , (⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), σ1 = ⌜x⌝ , ⌜m0⌝ = # lim(⌜σg⌝ ), ⌜m0⌝ = # σg(n) + ⌜# x_list<'b>⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n0. n0 < m0 → (σg(n) + ⌜x_list<'b>⌝ )[n0] = lim(⌜σg⌝ )[n0] ⊦
Used simplifier rules: stream('a) freely generated by ⌜ ⌝, ⌜ ⌝;; ⊦ # ⌜nf⌝ = ∞; (s) ⊦ ⌜m⌝ + n∞ = ∞ ↔ n∞ = ∞; (s) ⊦ ⌜m⌝ < ∞; (s) ⊦ ⌜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)
| # σf(n) = # σg(n) + ⌜m⌝ , (⌜m0⌝ + ⌜m⌝ + ⌜1⌝ ) + # σ1 = # σf(n), σ1 = ⌜x⌝ , ⌜m0⌝ = # lim(⌜σg⌝ ), ⌜m0⌝ = # σg(n) + ⌜# x_list<'b>⌝ , # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n0. ⌜n0⌝ < # σf(n) → (⌜lim(⌜σf⌝ ) to m0 + m + 1⌝ + σ1)[n0] = σf(n)[n0], ∀ n0. n0 < m0 → (σg(n) + ⌜x_list<'b>⌝ )[n0] = lim(⌜σg⌝ )[n0] ⊦ |
# σf(n) = # σg(n) + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ + ⌜# x⌝ = # σf(n), ⌜m0⌝ = # σg(n) + ⌜# x_list<'b>⌝ , ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n0. n0 < m0 → (σg(n) + ⌜x_list<'b>⌝ )[n0] = lim(⌜σg⌝ )[n0], ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n0. ⌜n0⌝ < # σf(n) → ((lim(⌜σf⌝ ) to m0 + m + 1) + x)[n0] = σf(n)[n0] ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ (⌜x⌝ + ⌜x0⌝ )[m] = (x + x0)[m]; (s) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| # σf(n) = # σg(n) + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ + ⌜# x⌝ = # σf(n), ⌜m0⌝ = # σg(n) + ⌜# x_list<'b>⌝ , ⌜m0⌝ = # lim(⌜σg⌝ ), # lim(⌜σf⌝ ) ≠ ⌜m0⌝ + ⌜m⌝ , ⌜m0⌝ + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < ⌜m0⌝ + ⌜m⌝ + ⌜1⌝ , ∀ n0. n0 < m0 → (σg(n) + ⌜x_list<'b>⌝ )[n0] = lim(⌜σg⌝ )[n0], ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n0. ⌜n0⌝ < # σf(n) → ((lim(⌜σf⌝ ) to m0 + m + 1) + x)[n0] = σf(n)[n0] ⊦ |
# σf(n) = # σg(n) + ⌜m⌝ , # σg(n) + ⌜# x_list<'b>⌝ = # lim(⌜σg⌝ ), (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ + ⌜1⌝ + ⌜# x⌝ = # σf(n), ⌜m0⌝ = # σg(n) + ⌜# x_list<'b>⌝ , # lim(⌜σf⌝ ) ≠ (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ , (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ + ⌜1⌝ , ∀ n0. ⌜n0⌝ < # σf(n) → ((lim(⌜σf⌝ ) to m0 + m + 1) + x)[n0] = σf(n)[n0], ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n0. n0 < m0 → (σg(n) + ⌜x_list<'b>⌝ )[n0] = lim(⌜σg⌝ )[n0] ⊦
| # σf(n) = # σg(n) + ⌜m⌝ , # σg(n) + ⌜# x_list<'b>⌝ = # lim(⌜σg⌝ ), (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ + ⌜1⌝ + ⌜# x⌝ = # σf(n), ⌜m0⌝ = # σg(n) + ⌜# x_list<'b>⌝ , # lim(⌜σf⌝ ) ≠ (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ , (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σg⌝ ), mon(⌜σf⌝ ), ¬ # lim(⌜σf⌝ ) < (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ + ⌜1⌝ , ∀ n0. ⌜n0⌝ < # σf(n) → ((lim(⌜σf⌝ ) to m0 + m + 1) + x)[n0] = σf(n)[n0], ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n0. n0 < m0 → (σg(n) + ⌜x_list<'b>⌝ )[n0] = lim(⌜σg⌝ )[n0] ⊦ |
# σf(n) = # σg(n) + ⌜m⌝ , (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ + ⌜1⌝ + ⌜# x⌝ = # σg(n) + ⌜m⌝ , # σg(n) + ⌜# x_list<'b>⌝ = # lim(⌜σg⌝ ), ⌜m0⌝ = # σg(n) + ⌜# x_list<'b>⌝ , # lim(⌜σf⌝ ) ≠ (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ , (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ + ⌜1⌝ , ∀ n0. n0 < m0 → (σg(n) + ⌜x_list<'b>⌝ )[n0] = lim(⌜σg⌝ )[n0], ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n0. ⌜n0⌝ < # σg(n) + ⌜m⌝ → ((lim(⌜σf⌝ ) to m0 + m + 1) + x)[n0] = σf(n)[n0] ⊦
| # σf(n) = # σg(n) + ⌜m⌝ , (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ + ⌜1⌝ + ⌜# x⌝ = # σg(n) + ⌜m⌝ , # σg(n) + ⌜# x_list<'b>⌝ = # lim(⌜σg⌝ ), ⌜m0⌝ = # σg(n) + ⌜# x_list<'b>⌝ , # lim(⌜σf⌝ ) ≠ (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ , (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ < # lim(⌜σf⌝ ), mon(⌜σf⌝ ), mon(⌜σg⌝ ), ¬ # lim(⌜σf⌝ ) < (# σg(n) + ⌜# x_list<'b>⌝ ) + ⌜m⌝ + ⌜1⌝ , ∀ n0. n0 < m0 → (σg(n) + ⌜x_list<'b>⌝ )[n0] = lim(⌜σg⌝ )[n0], ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ m1. ¬ m0 < m1 → (∃ n. ⌜lim(⌜σg⌝ ) to m1⌝ ⊑ σg(n)), ∀ n0. ⌜n0⌝ < # σg(n) + ⌜m⌝ → ((lim(⌜σf⌝ ) to m0 + m + 1) + x)[n0] = σf(n)[n0] ⊦ |
⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2
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-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: # σg(n), ⌜# x_list<'b>⌝ , ⌜m⌝ + ⌜1⌝ + ⌜# x⌝
| ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2 |
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.