| ⊦ cont(βf) ∧ mon(⌜σf⌝ ) ∧ mon(⌜αf⌝ ) ∧ (∀ n. # σf(n) = # αf(n) + ⌜1⌝ ) → lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )) |
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ |
mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜m⌝ ⊦ # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜m⌝
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦
Used terms: σf, αf, 1
| mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜m⌝ ⊦ # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜m⌝ |
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ |
⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ(n) ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ).take(m)⌝ ⊑ σσ(n)))
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), mon(⌜αf⌝ ) ∧ ⌜αf⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜αf⌝ → ⌜αf⌝ (n) ⊑ lim(⌜αf⌝ )) ∧ (∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜αf⌝ ∧ ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ ⌜αf⌝ (n))), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦
Used terms: ⌜αf⌝
| ⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ(n) ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ).take(m)⌝ ⊑ σσ(n))) |
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), mon(⌜αf⌝ ) ∧ ⌜αf⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜αf⌝ → ⌜αf⌝ (n) ⊑ lim(⌜αf⌝ )) ∧ (∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜αf⌝ ∧ ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ ⌜αf⌝ (n))), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s) ⊦ ⌜m⌝ < ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ [] ≠ ⌜nf⌝ ; (s)
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ) ⊦ |
⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ(n) ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ).take(m)⌝ ⊑ σσ(n)))
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), mon(⌜σf⌝ ) ∧ ⌜σf⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜σf⌝ → ⌜σf⌝ (n) ⊑ lim(⌜σf⌝ )) ∧ (∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜σf⌝ ∧ ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ ⌜σf⌝ (n))), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦
Used terms: ⌜σf⌝
| ⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ(n) ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ).take(m)⌝ ⊑ σσ(n))) |
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), mon(⌜σf⌝ ) ∧ ⌜σf⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜σf⌝ → ⌜σf⌝ (n) ⊑ lim(⌜σf⌝ )) ∧ (∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜σf⌝ ∧ ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ ⌜σf⌝ (n))), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s) ⊦ ⌜m⌝ < ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ [] ≠ ⌜nf⌝ ; (s)
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ |
⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ(n) ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ).take(m)⌝ ⊑ σσ(n)))
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), mon(⌜λ n. βf(σf(n), αf(n))⌝ ) ∧ ⌜λ n. βf(σf(n), αf(n))⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜λ n. βf(σf(n), αf(n))⌝ → ⌜λ n. βf(σf(n), αf(n))⌝ (n) ⊑ lim(⌜λ n. βf(σf(n), αf(n))⌝ )) ∧ (∀ m. ¬ # lim(⌜λ n. βf(σf(n), αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜λ n. βf(σf(n), αf(n))⌝ ∧ ⌜lim(⌜λ n. βf(σf(n), αf(n))⌝ ).take(m)⌝ ⊑ ⌜λ n. βf(σf(n), αf(n))⌝ (n))), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦
Used terms: ⌜λ n. βf(σf(n), αf(n))⌝
| ⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ(n) ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ).take(m)⌝ ⊑ σσ(n))) |
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), mon(⌜λ n. βf(σf(n), αf(n))⌝ ) ∧ ⌜λ n. βf(σf(n), αf(n))⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜λ n. βf(σf(n), αf(n))⌝ → ⌜λ n. βf(σf(n), αf(n))⌝ (n) ⊑ lim(⌜λ n. βf(σf(n), αf(n))⌝ )) ∧ (∀ m. ¬ # lim(⌜λ n. βf(σf(n), αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜λ n. βf(σf(n), αf(n))⌝ ∧ ⌜lim(⌜λ n. βf(σf(n), αf(n))⌝ ).take(m)⌝ ⊑ ⌜λ n. βf(σf(n), αf(n))⌝ (n))), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), mon(⌜λ n. βf(σf(n), αf(n))⌝ ) → (∀ n. βf(σf(n), αf(n)) ⊑ lim(⌜λ n. βf(σf(n), αf(n))⌝ )) ∧ (∀ m. ¬ # lim(⌜λ n. βf(σf(n), αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. βf(σf(n), αf(n))⌝ ).take(m)⌝ ⊑ βf(σf(n), αf(n)))), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s) ⊦ ⌜m⌝ < ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ [] ≠ ⌜nf⌝ ; (s)
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), mon(⌜λ n. βf(σf(n), αf(n))⌝ ) → (∀ n. βf(σf(n), αf(n)) ⊑ lim(⌜λ n. βf(σf(n), αf(n))⌝ )) ∧ (∀ m. ¬ # lim(⌜λ n. βf(σf(n), αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. βf(σf(n), αf(n))⌝ ).take(m)⌝ ⊑ βf(σf(n), αf(n)))), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ¬ mon(⌜λ n. βf(σf(n), αf(n))⌝ ), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜λ n. βf(σf(n), αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. βf(σf(n), αf(n))⌝ ).take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ⊦
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ¬ mon(⌜λ n. βf(σf(n), αf(n))⌝ ), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ |
⊦ mon(σσ) ↔ (∀ n. ⌜n⌝ + ⌜1⌝ < # σσ → σσ(n) ⊑ σσ(n + 1))
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∃ n. ¬(⌜n⌝ + ⌜1⌝ < # ⌜λ n. βf(σf(n), αf(n))⌝ → ⌜λ n. βf(σf(n), αf(n))⌝ (n) ⊑ ⌜λ n. βf(σf(n), αf(n))⌝ (n + 1)) ⊦
Used terms: ⌜λ n. βf(σf(n), αf(n))⌝
| ⊦ mon(σσ) ↔ (∀ n. ⌜n⌝ + ⌜1⌝ < # σσ → σσ(n) ⊑ σσ(n + 1)) |
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∃ n. ¬(⌜n⌝ + ⌜1⌝ < # ⌜λ n. βf(σf(n), αf(n))⌝ → ⌜λ n. βf(σf(n), αf(n))⌝ (n) ⊑ ⌜λ n. βf(σf(n), αf(n))⌝ (n + 1)) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(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) ⊦ ⌜m⌝ + n∞ = ∞ ↔ n∞ = ∞; (s) ⊦ n∞ < ∞ ↔ n∞ ≠ ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s)
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ |
⊦ mon(σσ) ↔ (∀ n. ⌜n⌝ + ⌜1⌝ < # σσ → σσ(n) ⊑ σσ(n + 1))
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. ⌜n⌝ + ⌜1⌝ < # ⌜αf⌝ → ⌜αf⌝ (n) ⊑ ⌜αf⌝ (n + 1) ⊦
Used terms: ⌜αf⌝
| ⊦ mon(σσ) ↔ (∀ n. ⌜n⌝ + ⌜1⌝ < # σσ → σσ(n) ⊑ σσ(n + 1)) |
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. ⌜n⌝ + ⌜1⌝ < # ⌜αf⌝ → ⌜αf⌝ (n) ⊑ ⌜αf⌝ (n + 1) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n0. αf(n0) ⊑ αf(n0 + 1) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(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) ⊦ ⌜m⌝ + n∞ = ∞ ↔ n∞ = ∞; (s) ⊦ n∞ < ∞ ↔ n∞ ≠ ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s)
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n0. αf(n0) ⊑ αf(n0 + 1) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), αf(n) ⊑ αf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦
Used terms: n
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), αf(n) ⊑ αf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ |
⊦ cont(βf) ↔ mon(βf) ∧ pbd(βf)
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), mon(⌜σf⌝ ), mon(βf), pbd(βf), αf(n) ⊑ αf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦
Used terms: βf
| ⊦ cont(βf) ↔ mon(βf) ∧ pbd(βf) |
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), mon(⌜σf⌝ ), mon(βf), pbd(βf), αf(n) ⊑ αf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), mon(⌜σf⌝ ), pbd(βf), αf(n) ⊑ αf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: montr-def: ⊦ mon(βf) ↔ (∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2));
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), mon(⌜σf⌝ ), pbd(βf), αf(n) ⊑ αf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⊦ mon(σσ) ↔ (∀ n. ⌜n⌝ + ⌜1⌝ < # σσ → σσ(n) ⊑ σσ(n + 1))
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. ⌜n⌝ + ⌜1⌝ < # ⌜σf⌝ → ⌜σf⌝ (n) ⊑ ⌜σf⌝ (n + 1), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: ⌜σf⌝
| ⊦ mon(σσ) ↔ (∀ n. ⌜n⌝ + ⌜1⌝ < # σσ → σσ(n) ⊑ σσ(n + 1)) |
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. ⌜n⌝ + ⌜1⌝ < # ⌜σf⌝ → ⌜σf⌝ (n) ⊑ ⌜σf⌝ (n + 1), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n0. σf(n0) ⊑ σf(n0 + 1), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(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) ⊦ ⌜m⌝ + n∞ = ∞ ↔ n∞ = ∞; (s) ⊦ n∞ < ∞ ↔ n∞ ≠ ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s)
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n0. σf(n0) ⊑ σf(n0 + 1), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), σf(n) ⊑ σf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: n
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), σf(n) ⊑ σf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), σf(n) ⊑ σf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), # σf(n) = # αf(n) + ⌜1⌝ ∧ # σf(n + 1) = # αf(n + 1) + ⌜1⌝ ∧ σf(n) ⊑ σf(n + 1) ∧ αf(n) ⊑ αf(n + 1) → βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦
Used terms: σf(n), αf(n), σf(n + 1), αf(n + 1)
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), σf(n) ⊑ σf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), # σf(n) = # αf(n) + ⌜1⌝ ∧ # σf(n + 1) = # αf(n + 1) + ⌜1⌝ ∧ σf(n) ⊑ σf(n + 1) ∧ αf(n) ⊑ αf(n + 1) → βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), σf(n) ⊑ σf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ # σf(n) = # αf(n) + ⌜1⌝ ∧ # σf(n + 1) = # αf(n + 1) + ⌜1⌝
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), σf(n) ⊑ σf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ # σf(n) = # αf(n) + ⌜1⌝ ∧ # σf(n + 1) = # αf(n + 1) + ⌜1⌝ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , # σf(n + 1) = # αf(n + 1) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), σf(n) ⊑ σf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ # σf(n) = # αf(n) + ⌜1⌝ ∧ # σf(n + 1) = # αf(n + 1) + ⌜1⌝
Used terms: n + 1
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , # σf(n + 1) = # αf(n + 1) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), σf(n) ⊑ σf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ # σf(n) = # αf(n) + ⌜1⌝ ∧ # σf(n + 1) = # αf(n + 1) + ⌜1⌝ |
# σf(n + 1) = # αf(n + 1) + ⌜1⌝ , # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , # σf(n) ≠ # αf(n) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), σf(n) ⊑ σf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦
| # σf(n + 1) = # αf(n + 1) + ⌜1⌝ , # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , # σf(n) ≠ # αf(n) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), pbd(βf), αf(n) ⊑ αf(n + 1), σf(n) ⊑ σf(n + 1), ¬ βf(σf(n), αf(n)) ⊑ βf(σf(n + 1), αf(n + 1)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ |
Used terms: n
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜λ n. βf(σf(n), αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. βf(σf(n), αf(n))⌝ ).take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜λ n. βf(σf(n), αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. βf(σf(n), αf(n))⌝ ).take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ lim(⌜λ n. βf(σf(n), αf(n))⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜λ n. βf(σf(n), αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. βf(σf(n), αf(n))⌝ ).take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ lim(⌜λ n. βf(σf(n), αf(n))⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝;
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜λ n. βf(σf(n), αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. βf(σf(n), αf(n))⌝ ).take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ lim(⌜λ n. βf(σf(n), αf(n))⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦
Used simplifier rules: ⊦ ⌜x⌝ .take(n) = x.take(n); (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝;
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
# lim(⌜σf⌝ ) = ⌜# al⌝ + ⌜1⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), ⌜al⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # al + 1 < m → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦
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) ⊦ ⌜x⌝ .take(n) = x.take(n); (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| # lim(⌜σf⌝ ) = ⌜# al⌝ + ⌜1⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), ⌜al⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # al + 1 < m → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ |
# lim(⌜σf⌝ ) = ⌜# al⌝ + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # al + 1 < m → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝; ⊦ # ⌜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
| # lim(⌜σf⌝ ) = ⌜# al⌝ + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # al + 1 < m → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
# al + 1 = # sl, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used simplifier rules: ⊦ ⌜x⌝ .take(n) = x.take(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⌝ + ⌜m⌝ = ⌜n0⌝ ↔ n + m = n0; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| # al + 1 = # sl, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
# sl = # al + 1, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used formulas: # sl = # al + 1
| # sl = # al + 1, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# sl = # al + 1, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ¬ # sl < # sl → (∃ n. ⌜sl.take(# sl)⌝ ⊑ σf(n)) ⊦
Used terms: # sl
| # sl = # al + 1, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ¬ # sl < # sl → (∃ n. ⌜sl.take(# sl)⌝ ⊑ σf(n)) ⊦ |
# sl = # al + 1, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sl⌝ ⊑ σf(n), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: ⊦ # x = n → x.take(n) = x; (s) ⊦ ¬ n < n; (s)
| # sl = # al + 1, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sl⌝ ⊑ σf(n), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# sl = # al + 1, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sl⌝ ⊑ σf(n), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ¬ # bl < # bl → (∃ n. ⌜bl.take(# bl)⌝ ⊑ βf(σf(n), αf(n))) ⊦
Used terms: # bl
| # sl = # al + 1, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sl⌝ ⊑ σf(n), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ¬ # bl < # bl → (∃ n. ⌜bl.take(# bl)⌝ ⊑ βf(σf(n), αf(n))) ⊦ |
# sl = # al + 1, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sl⌝ ⊑ σf(n), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: ⊦ # x = n → x.take(n) = x; (s) ⊦ ¬ n < n; (s)
| # sl = # al + 1, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sl⌝ ⊑ σf(n), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# sl = # al + 1, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sl⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ¬ # al < # al → (∃ n. ⌜al.take(# al)⌝ ⊑ αf(n)) ⊦
Used terms: # al
| # sl = # al + 1, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sl⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ¬ # al < # al → (∃ n. ⌜al.take(# al)⌝ ⊑ αf(n)) ⊦ |
# sl = # al + 1, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sl⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: ⊦ # x = n → x.take(n) = x; (s) ⊦ ¬ n < n; (s)
| # sl = # al + 1, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sl⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# sl = # al + 1, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sl⌝ ⊑ σf(n), σf(n) ⊑ ⌜sl⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used terms: n
| # sl = # al + 1, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sl⌝ ⊑ σf(n), σf(n) ⊑ ⌜sl⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
# sl = # al + 1, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used simplifier rules: ⊦ # x0 = # x1 → (x0 ⊑ x1 ↔ x0 = x1); (s) ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s) ⊦ σ1 ⊑ σ2 → (σ2 ⊑ σ1 ↔ σ1 = σ2); (as)
| # sl = # al + 1, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
# sl = # al + 1, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used terms: n
| # sl = # al + 1, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# sl = # al + 1, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , αf(n) ⊑ αf(n1), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream
| # sl = # al + 1, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , αf(n) ⊑ αf(n1), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
# sl = # al + 1, # σf(n) = # αf(n) + ⌜1⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ αf(n1), αf(n) ⊑ ⌜al⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used terms: n
| # sl = # al + 1, # σf(n) = # αf(n) + ⌜1⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ αf(n1), αf(n) ⊑ ⌜al⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ αf(n1), αf(n) ⊑ ⌜al⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ αf(n1), αf(n) ⊑ ⌜al⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, # σf(n1) = # αf(n1) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , αf(n) ⊑ αf(n1), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used terms: n1
| ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, # σf(n1) = # αf(n1) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , αf(n) ⊑ αf(n1), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
# σf(n1) = # αf(n1) + ⌜1⌝ , # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ αf(n1), αf(n) ⊑ ⌜al⌝ , αf(n1) ⊑ ⌜al⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used terms: n1
| # σf(n1) = # αf(n1) + ⌜1⌝ , # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜al⌝ ⊑ αf(n1), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ αf(n1), αf(n) ⊑ ⌜al⌝ , αf(n1) ⊑ ⌜al⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # σf(n1) = ⌜# al⌝ + ⌜1⌝ , ⌜al⌝ = αf(n1), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: ⊦ # x0 = # x1 → (x0 ⊑ x1 ↔ x0 = x1); (s) ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream ⊦ σ1 ⊑ σ2 → (σ2 ⊑ σ1 ↔ σ1 = σ2); (as)
| # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # σf(n1) = ⌜# al⌝ + ⌜1⌝ , ⌜al⌝ = αf(n1), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# σf(n1) = ⌜# al⌝ + ⌜1⌝ , ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , σf(n1) ⊑ ⌜sl⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used terms: n1
| # σf(n1) = ⌜# al⌝ + ⌜1⌝ , ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , σf(n1) ⊑ ⌜sl⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
# sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # σf(n1) = ⌜# al⌝ + ⌜1⌝ , ⌜al⌝ = αf(n1), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , σf(n1) ⊑ ⌜sl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
# sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # σf(n1) = ⌜# al⌝ + ⌜1⌝ , ⌜al⌝ = αf(n1), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), σf(n1) ≠ ⌜sl⌝ , ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , σf(n1) ⊑ ⌜sl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used formulas: σf(n1) = ⌜sl⌝
| # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # σf(n1) = ⌜# al⌝ + ⌜1⌝ , ⌜al⌝ = αf(n1), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , σf(n1) ⊑ ⌜sl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: ⊦ # x0 = # x1 → (x0 ⊑ x1 ↔ x0 = x1); (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)
| # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , βf(σf(n1), αf(n1)) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used terms: n1
| ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , βf(σf(n1), αf(n1)) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
# sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ βf(σf(n0), αf(n0)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream
| # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ βf(σf(n0), αf(n0)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ βf(σf(n0), αf(n0)), βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , βf(σf(n0), αf(n0)) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used terms: n0
| ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ βf(σf(n0), αf(n0)), βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , βf(σf(n0), αf(n0)) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used simplifier rules: ⊦ # x0 = # x1 → (x0 ⊑ x1 ↔ x0 = x1); (s) ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s) leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream ⊦ σ1 ⊑ σ2 → (σ2 ⊑ σ1 ↔ σ1 = σ2); (as)
| ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
⊦ σ = σ0 ↔ σ ⊑ σ0 ∧ σ0 ⊑ σ
# sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ) ∨ ¬ βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ ⊦
Used terms: ⌜bl⌝ , βf(⌜sl⌝ , ⌜al⌝ )
| ⊦ σ = σ0 ↔ σ ⊑ σ0 ∧ σ0 ⊑ σ |
| # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ) ∨ ¬ βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ ⊦ |
⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
| ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
⊦ cont(βf) ↔ mon(βf) ∧ pbd(βf)
# sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), mon(βf), pbd(βf), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used terms: βf
| ⊦ cont(βf) ↔ mon(βf) ∧ pbd(βf) |
| # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), mon(βf), pbd(βf), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: montr-def: ⊦ mon(βf) ↔ (∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2));
| ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
# sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), # σf(n0) = # αf(n0) + ⌜1⌝ ∧ # σf(n1) = # αf(n1) + ⌜1⌝ ∧ σf(n0) ⊑ σf(n1) ∧ αf(n0) ⊑ αf(n1) → βf(σf(n0), αf(n0)) ⊑ βf(σf(n1), αf(n1)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: σf(n0), αf(n0), σf(n1), αf(n1)
| # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), # σf(n0) = # αf(n0) + ⌜1⌝ ∧ # σf(n1) = # αf(n1) + ⌜1⌝ ∧ σf(n0) ⊑ σf(n1) ∧ αf(n0) ⊑ αf(n1) → βf(σf(n0), αf(n0)) ⊑ βf(σf(n1), αf(n1)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
# sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ # σf(n0) = # αf(n0) + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sl⌝ ∧ αf(n0) ⊑ ⌜al⌝
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) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ # σf(n0) = # αf(n0) + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sl⌝ ∧ αf(n0) ⊑ ⌜al⌝ |
⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), αf(n) ⊑ ⌜al⌝ , αf(n0) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ # σf(n0) = # αf(n0) + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sl⌝ ∧ αf(n0) ⊑ ⌜al⌝
Used terms: n0
| ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), αf(n) ⊑ ⌜al⌝ , αf(n0) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ # σf(n0) = # αf(n0) + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sl⌝ ∧ αf(n0) ⊑ ⌜al⌝ |
# sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n0) ⊑ ⌜al⌝ , αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ # σf(n0) = # αf(n0) + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sl⌝
| # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n0) ⊑ ⌜al⌝ , αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ # σf(n0) = # αf(n0) + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sl⌝ |
⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), αf(n) ⊑ ⌜al⌝ , αf(n0) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , σf(n0) ⊑ ⌜sl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ # σf(n0) = # αf(n0) + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sl⌝
Used terms: n0
| ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # sl = # al + 1, ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), αf(n) ⊑ ⌜al⌝ , αf(n0) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , σf(n0) ⊑ ⌜sl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ # σf(n0) = # αf(n0) + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sl⌝ |
# sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , # σf(n0) ≠ # αf(n0) + ⌜1⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n0) ⊑ ⌜al⌝ , αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , σf(n0) ⊑ ⌜sl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
| # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , ⌜al⌝ = αf(n1), ⌜bl⌝ = βf(σf(n0), αf(n0)), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), σf(n1) = ⌜sl⌝ , # σf(n0) ≠ # αf(n0) + ⌜1⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n0) ⊑ ⌜al⌝ , αf(n) ⊑ ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) ⊑ ⌜bl⌝ , σf(n0) ⊑ ⌜sl⌝ , ¬ ⌜bl⌝ ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
Used terms: n0
| # sl = # al + 1, ⌜# sl⌝ = # αf(n) + ⌜1⌝ , # σf(n1) = ⌜# al⌝ + ⌜1⌝ , ⌜al⌝ = αf(n1), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜sl⌝ = σf(n), ⌜bl⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), σf(n1) ≠ ⌜sl⌝ , ⌜bl⌝ ⊑ βf(σf(n0), αf(n0)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , σf(n1) ⊑ ⌜sl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
Used simplifier rules: ⊦ σ0 + σ = ⌜z⌝ ↔ finp(σ0) ∧ finp(σ) ∧ σ0.l + σ.l = z; (as) ⊦ finp(σ) ↔ (∃ x. ⌜x⌝ = σ); (as) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (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 ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) ⊦ #(x + y) = # x + # y; (s) ⊦ ⌜x⌝ + ⌜y⌝ = ⌜z⌝ ↔ x + y = z; (s) ⊦ x = x + y ↔ y = []; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ ⌜x⌝ .l = x; (s) ⊦ ⌜x + y⌝ = ⌜x⌝ + ⌜y⌝ ; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ m = m + n ↔ n = 0; (s) ⊦ # x = 0 ↔ x = []; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic Used terms: σf(n1), ⌜sl⌝
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
# lim(⌜σf⌝ ) = ∞, lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), ⌜af⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦
Used simplifier rules: ⊦ ¬ ∞ < n∞; (s) ⊦ ⌜nf⌝ .take(n) = nf.take(n); (s) ⊦ # ⌜nf⌝ = ∞; (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 ⊦ ⌜m⌝ + ∞ = ∞; (s)
| # lim(⌜σf⌝ ) = ∞, lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), ⌜af⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ |
# lim(⌜σf⌝ ) = ∞, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), ⌜af⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝; ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) ⊦ ⌜n⌝ ≠ ∞; (s)
| # lim(⌜σf⌝ ) = ∞, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , ⌜bl⌝ ≠ βf(lim(⌜σf⌝ ), ⌜af⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used simplifier rules: ⊦ ⌜nf⌝ .take(n) = nf.take(n); (s) ⊦ # ⌜nf⌝ = ∞; (s)
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ¬ # bl < # bl → (∃ n. ⌜bl.take(# bl)⌝ ⊑ βf(σf(n), αf(n))) ⊦
Used terms: # bl
| lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ¬ # bl < # bl → (∃ n. ⌜bl.take(# bl)⌝ ⊑ βf(σf(n), αf(n))) ⊦ |
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), ⌜bl⌝ ⊑ βf(σf(n), αf(n)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used simplifier rules: ⊦ # x = n → x.take(n) = x; (s) ⊦ ¬ n < n; (s)
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), ⌜bl⌝ ⊑ βf(σf(n), αf(n)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), ⌜bl⌝ ⊑ βf(σf(n), αf(n)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
Used terms: n
| lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), ⌜bl⌝ ⊑ βf(σf(n), αf(n)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
Used simplifier rules: ⊦ # x0 = # x1 → (x0 ⊑ x1 ↔ x0 = x1); (s) ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s) ⊦ σ1 ⊑ σ2 → (σ2 ⊑ σ1 ↔ σ1 = σ2); (as)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
⊦ cont(βf) ↔ mon(βf) ∧ pbd(βf)
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), mon(⌜σf⌝ ), mon(⌜αf⌝ ), mon(βf), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used terms: βf
| ⊦ cont(βf) ↔ mon(βf) ∧ pbd(βf) |
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), mon(⌜σf⌝ ), mon(⌜αf⌝ ), mon(βf), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: montr-def: ⊦ mon(βf) ↔ (∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2));
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝;
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: ⊦ ⌜x⌝ = ⌜x0⌝ ↔ x = x0; (s)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), # σf(n) = # αf(n) + ⌜1⌝ ∧ # ⌜sf⌝ = # ⌜af⌝ + ⌜1⌝ ∧ σf(n) ⊑ ⌜sf⌝ ∧ αf(n) ⊑ ⌜af⌝ → βf(σf(n), αf(n)) ⊑ βf(⌜sf⌝ , ⌜af⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: σf(n), αf(n), ⌜sf⌝ , ⌜af⌝
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), # σf(n) = # αf(n) + ⌜1⌝ ∧ # ⌜sf⌝ = # ⌜af⌝ + ⌜1⌝ ∧ σf(n) ⊑ ⌜sf⌝ ∧ αf(n) ⊑ ⌜af⌝ → βf(σf(n), αf(n)) ⊑ βf(⌜sf⌝ , ⌜af⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), # σf(n) = # αf(n) + ⌜1⌝ ∧ σf(n) ⊑ ⌜sf⌝ ∧ αf(n) ⊑ ⌜af⌝ → bl ⊑ bl0, ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: ⊦ ⌜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 ⊦ ⌜m⌝ + ∞ = ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), # σf(n) = # αf(n) + ⌜1⌝ ∧ σf(n) ⊑ ⌜sf⌝ ∧ αf(n) ⊑ ⌜af⌝ → bl ⊑ bl0, ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ # σf(n) = # αf(n) + ⌜1⌝ ∧ σf(n) ⊑ ⌜sf⌝ ∧ αf(n) ⊑ ⌜af⌝
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ # σf(n) = # αf(n) + ⌜1⌝ ∧ σf(n) ⊑ ⌜sf⌝ ∧ αf(n) ⊑ ⌜af⌝ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , # σf(n) ≠ # αf(n) + ⌜1⌝ , bl ≠ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ¬ σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ¬ αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , # σf(n) ≠ # αf(n) + ⌜1⌝ , bl ≠ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
Used terms: n
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ¬ σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
Used terms: n
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ¬ αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
Used terms: n
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⊦ x ⊑ y → (y ⊑ x ↔ x = y)
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ¬ bl0 ⊑ bl, ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: bl, bl0
| ⊦ x ⊑ y → (y ⊑ x ↔ x = y) |
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ¬ bl0 ⊑ bl, ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: ⊦ x ⊑ y → (y ⊑ x ↔ x = y); (s)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⊦ pbd(βf) ↔ (∀ sf, af, bl. (∀ n. βf(⌜sf.take(n + 1)⌝ , ⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ βf(⌜sf⌝ , ⌜af⌝ ) ⊑ ⌜bl⌝ )
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ sf, af, bl. (∀ n. βf(⌜sf.take(n + 1)⌝ , ⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ βf(⌜sf⌝ , ⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: βf
| ⊦ pbd(βf) ↔ (∀ sf, af, bl. (∀ n. βf(⌜sf.take(n + 1)⌝ , ⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ βf(⌜sf⌝ , ⌜af⌝ ) ⊑ ⌜bl⌝ ) |
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ sf, af, bl. (∀ n. βf(⌜sf.take(n + 1)⌝ , ⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ βf(⌜sf⌝ , ⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , (∀ n. βf(⌜sf.take(n + 1)⌝ , ⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ βf(⌜sf⌝ , ⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: sf, af, bl
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , (∀ n. βf(⌜sf.take(n + 1)⌝ , ⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ βf(⌜sf⌝ , ⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: ⊦ x ⊑ y → (y ⊑ x ↔ x = y); (s) ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∃ n. ⌜af.take(n0)⌝ ⊑ αf(n), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: n0
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∃ n. ⌜af.take(n0)⌝ ⊑ αf(n), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∃ n. ⌜sf.take(n0 + 1)⌝ ⊑ σf(n), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: n0 + 1
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∃ n. ⌜sf.take(n0 + 1)⌝ ⊑ σf(n), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n)
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ n2 ≤ n1 ∧ ⌜n1⌝ < # ⌜σf⌝
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ⌜σf⌝ (n2) ⊑ ⌜σf⌝ (n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: ⌜σf⌝ , n2, n1
| mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n) |
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ n2 ≤ n1 ∧ ⌜n1⌝ < # ⌜σf⌝ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ m ≤ n ↔ ¬ n < m; (ss) ⊦ ⌜m⌝ < ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n)
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ⌜σf⌝ (n1) ⊑ ⌜σf⌝ (n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: ⊦ m < n → m ≤ n; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ ⌜m⌝ < ∞; (s) Used terms: ⌜σf⌝ , n1, n2
| mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n) |
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ⌜σf⌝ (n1) ⊑ ⌜σf⌝ (n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # ⌜sf.take(n0 + 1)⌝ = # ⌜af.take(n0)⌝ + ⌜1⌝ ∧ # σf(n2) = # αf(n2) + ⌜1⌝ ∧ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2) ∧ ⌜af.take(n0)⌝ ⊑ αf(n2) → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n2), αf(n2)), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: ⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ , σf(n2), αf(n2)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # ⌜sf.take(n0 + 1)⌝ = # ⌜af.take(n0)⌝ + ⌜1⌝ ∧ # σf(n2) = # αf(n2) + ⌜1⌝ ∧ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2) ∧ ⌜af.take(n0)⌝ ⊑ αf(n2) → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n2), αf(n2)), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # σf(n2) = # αf(n2) + ⌜1⌝ ∧ ⌜af.take(n0)⌝ ⊑ αf(n2) → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n2), αf(n2)), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
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⌝ = ⌜n0⌝ ↔ n = n0; (s) ⊦ n∞ + ⌜0⌝ = n∞; (s) ⊦ m ≤ n → (⌜(* n)⌝ + n∞1 = ⌜(* m)⌝ + n∞2 ↔ ⌜n - m⌝ + n∞1 = n∞2); (s) ⊦ # ⌜nf.take(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)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # σf(n2) = # αf(n2) + ⌜1⌝ ∧ ⌜af.take(n0)⌝ ⊑ αf(n2) → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n2), αf(n2)), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ # σf(n2) = # αf(n2) + ⌜1⌝ ∧ ⌜af.take(n0)⌝ ⊑ αf(n2)
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n2), αf(n2)), σf(n1) ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ # σf(n2) = # αf(n2) + ⌜1⌝ ∧ ⌜af.take(n0)⌝ ⊑ αf(n2) |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , # σf(n2) ≠ # αf(n2) + ⌜1⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ ⌜af.take(n0)⌝ ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , # σf(n2) ≠ # αf(n2) + ⌜1⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
Used terms: n2
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ ⌜af.take(n0)⌝ ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ ⌜af.take(n0)⌝ ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ ⌜af.take(n0)⌝ ⊑ αf(n1) ∧ αf(n1) ⊑ αf(n2)
Used terms: αf(n1), ⌜af.take(n0)⌝ , αf(n2)
| ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2 |
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ ⌜af.take(n0)⌝ ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ ⌜af.take(n0)⌝ ⊑ αf(n1) ∧ αf(n1) ⊑ αf(n2) |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ ⌜af.take(n0)⌝ ⊑ αf(n2), ¬ αf(n1) ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n1) ⊑ σf(n2), ¬ ⌜af.take(n0)⌝ ⊑ αf(n2), ¬ αf(n1) ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n)
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s) ⊦ m < n → m ≤ n; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ ⌜m⌝ < ∞; (s) Used terms: ⌜αf⌝ , n1, n2
| mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n) |
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), n1 < n2, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n2), αf(n2)), σf(n1) ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream Used terms: n2
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ⌜σf⌝ (n2) ⊑ ⌜σf⌝ (n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), σf(n2) ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream ⊦ ⌜nf⌝ (n) = nf(n); (s)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), σf(n2) ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n2) ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # ⌜sf.take(n0 + 1)⌝ = # ⌜af.take(n0)⌝ + ⌜1⌝ ∧ # σf(n1) = # αf(n1) + ⌜1⌝ ∧ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1) ∧ ⌜af.take(n0)⌝ ⊑ αf(n1) → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n1), αf(n1)), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
Used terms: ⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ , σf(n1), αf(n1)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n2) ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # ⌜sf.take(n0 + 1)⌝ = # ⌜af.take(n0)⌝ + ⌜1⌝ ∧ # σf(n1) = # αf(n1) + ⌜1⌝ ∧ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1) ∧ ⌜af.take(n0)⌝ ⊑ αf(n1) → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n1), αf(n1)), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), σf(n2) ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # σf(n1) = # αf(n1) + ⌜1⌝ → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n1), αf(n1)), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
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⌝ = ⌜n0⌝ ↔ n = n0; (s) ⊦ n∞ + ⌜0⌝ = n∞; (s) ⊦ m ≤ n → (⌜(* n)⌝ + n∞1 = ⌜(* m)⌝ + n∞2 ↔ ⌜n - m⌝ + n∞1 = n∞2); (s) ⊦ # ⌜nf.take(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)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), σf(n2) ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # σf(n1) = # αf(n1) + ⌜1⌝ → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n1), αf(n1)), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , # σf(n1) ≠ # αf(n1) + ⌜1⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n2) ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n1), αf(n1)), σf(n2) ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , # σf(n1) ≠ # αf(n1) + ⌜1⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), σf(n2) ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
Used terms: n1
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl0⌝ , bl ≠ bl0, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n1), αf(n1)), σf(n2) ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream Used terms: n1
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜bl⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: ⊦ ⌜x⌝ ≠ ⌜nf⌝ ; (s)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⊦ pbd(βf) ↔ (∀ sf, af, bl. (∀ n. βf(⌜sf.take(n + 1)⌝ , ⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ βf(⌜sf⌝ , ⌜af⌝ ) ⊑ ⌜bl⌝ )
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ sf, af, bl. (∀ n. βf(⌜sf.take(n + 1)⌝ , ⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ βf(⌜sf⌝ , ⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: βf
| ⊦ pbd(βf) ↔ (∀ sf, af, bl. (∀ n. βf(⌜sf.take(n + 1)⌝ , ⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ βf(⌜sf⌝ , ⌜af⌝ ) ⊑ ⌜bl⌝ ) |
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ sf, af, bl. (∀ n. βf(⌜sf.take(n + 1)⌝ , ⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ βf(⌜sf⌝ , ⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , (∀ n. βf(⌜sf.take(n + 1)⌝ , ⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ βf(⌜sf⌝ , ⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: sf, af, bl
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , (∀ n. βf(⌜sf.take(n + 1)⌝ , ⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ βf(⌜sf⌝ , ⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: ⊦ ¬ ⌜nf⌝ ⊑ ⌜x⌝ ; (s)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∃ n. ⌜af.take(n0)⌝ ⊑ αf(n), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: n0
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∃ n. ⌜af.take(n0)⌝ ⊑ αf(n), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∃ n. ⌜sf.take(n0 + 1)⌝ ⊑ σf(n), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: n0 + 1
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∃ n. ⌜sf.take(n0 + 1)⌝ ⊑ σf(n), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n)
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ n1 ≤ n2 ∧ ⌜n2⌝ < # ⌜αf⌝
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ⌜αf⌝ (n1) ⊑ ⌜αf⌝ (n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: ⌜αf⌝ , n1, n2
| mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n) |
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ n1 ≤ n2 ∧ ⌜n2⌝ < # ⌜αf⌝ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ m ≤ n ↔ ¬ n < m; (ss) ⊦ ⌜m⌝ < ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n)
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ⌜αf⌝ (n2) ⊑ ⌜αf⌝ (n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: ⊦ m < n → m ≤ n; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ ⌜m⌝ < ∞; (s) Used terms: ⌜αf⌝ , n2, n1
| mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n) |
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ⌜αf⌝ (n2) ⊑ ⌜αf⌝ (n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # ⌜sf.take(n0 + 1)⌝ = # ⌜af.take(n0)⌝ + ⌜1⌝ ∧ # σf(n1) = # αf(n1) + ⌜1⌝ ∧ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1) ∧ ⌜af.take(n0)⌝ ⊑ αf(n1) → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n1), αf(n1)), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
Used terms: ⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ , σf(n1), αf(n1)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # ⌜sf.take(n0 + 1)⌝ = # ⌜af.take(n0)⌝ + ⌜1⌝ ∧ # σf(n1) = # αf(n1) + ⌜1⌝ ∧ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1) ∧ ⌜af.take(n0)⌝ ⊑ αf(n1) → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n1), αf(n1)), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # σf(n1) = # αf(n1) + ⌜1⌝ ∧ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1) → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n1), αf(n1)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
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⌝ = ⌜n0⌝ ↔ n = n0; (s) ⊦ n∞ + ⌜0⌝ = n∞; (s) ⊦ m ≤ n → (⌜(* n)⌝ + n∞1 = ⌜(* m)⌝ + n∞2 ↔ ⌜n - m⌝ + n∞1 = n∞2); (s) ⊦ # ⌜nf.take(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)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # σf(n1) = # αf(n1) + ⌜1⌝ ∧ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1) → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n1), αf(n1)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ # σf(n1) = # αf(n1) + ⌜1⌝ ∧ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1)
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n1), αf(n1)), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ # σf(n1) = # αf(n1) + ⌜1⌝ ∧ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1) |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , # σf(n1) ≠ # αf(n1) + ⌜1⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , # σf(n1) ≠ # αf(n1) + ⌜1⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
Used terms: n1
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2) ∧ σf(n2) ⊑ σf(n1)
Used terms: σf(n2), ⌜sf.take(n0 + 1)⌝ , σf(n1)
| ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2 |
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2) ∧ σf(n2) ⊑ σf(n1) |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ¬ σf(n2) ⊑ σf(n1), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), ¬ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n1), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ¬ σf(n2) ⊑ σf(n1), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n)
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s) ⊦ m < n → m ≤ n; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ ⌜m⌝ < ∞; (s) Used terms: ⌜σf⌝ , n2, n1
| mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n) |
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n2 < n1, ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n2) ⊑ αf(n1), βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n1), αf(n1)), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream Used terms: n1
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), ⌜αf⌝ (n1) ⊑ ⌜αf⌝ (n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), ⌜af.take(n0)⌝ ⊑ αf(n2), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n1) ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream ⊦ ⌜nf⌝ (n) = nf(n); (s)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), ⌜af.take(n0)⌝ ⊑ αf(n2), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n1) ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n2), ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n1) ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # ⌜sf.take(n0 + 1)⌝ = # ⌜af.take(n0)⌝ + ⌜1⌝ ∧ # σf(n2) = # αf(n2) + ⌜1⌝ ∧ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2) ∧ ⌜af.take(n0)⌝ ⊑ αf(n2) → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n2), αf(n2)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
Used terms: ⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ , σf(n2), αf(n2)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n2), ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n1) ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # ⌜sf.take(n0 + 1)⌝ = # ⌜af.take(n0)⌝ + ⌜1⌝ ∧ # σf(n2) = # αf(n2) + ⌜1⌝ ∧ ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2) ∧ ⌜af.take(n0)⌝ ⊑ αf(n2) → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n2), αf(n2)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), ⌜af.take(n0)⌝ ⊑ αf(n2), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n1) ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # σf(n2) = # αf(n2) + ⌜1⌝ → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n2), αf(n2)), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦
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⌝ = ⌜n0⌝ ↔ n = n0; (s) ⊦ n∞ + ⌜0⌝ = n∞; (s) ⊦ m ≤ n → (⌜(* n)⌝ + n∞1 = ⌜(* m)⌝ + n∞2 ↔ ⌜n - m⌝ + n∞1 = n∞2); (s) ⊦ # ⌜nf.take(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)
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), ⌜af.take(n0)⌝ ⊑ αf(n2), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n1) ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , # σf(n2) = # αf(n2) + ⌜1⌝ → βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n2), αf(n2)), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ ⊦ |
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , # σf(n2) ≠ # αf(n2) + ⌜1⌝ , ⌜af.take(n0)⌝ ⊑ αf(n2), ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n1) ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n2), ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n1) ⊑ αf(n2), βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n2), αf(n2)), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , # σf(n2) ≠ # αf(n2) + ⌜1⌝ , ⌜af.take(n0)⌝ ⊑ αf(n2), ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n1) ⊑ αf(n2), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
Used terms: n2
| ⌜bl⌝ = βf(σf(n), αf(n)), lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bl⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf⌝ , ⌜af.take(n0)⌝ ⊑ αf(n2), ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sf.take(n0 + 1)⌝ ⊑ σf(n2), αf(n1) ⊑ αf(n2), βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ βf(σf(n2), αf(n2)), ¬ βf(⌜sf.take(n0 + 1)⌝ , ⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream Used terms: n2
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜λ n. βf(σf(n), αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. βf(σf(n), αf(n))⌝ ).take(m)⌝ ⊑ βf(σf(n), αf(n))), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ lim(⌜λ n. βf(σf(n), αf(n))⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ .take(n) = nf.take(n); (s) ⊦ ¬ ∞ < n∞; (s) ⊦ # ⌜nf⌝ = ∞; (s)
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ) ⊦ |
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bf⌝ ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
# lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , ⌜bf⌝ ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝;
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bf⌝ ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
⌜# sl⌝ = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bf⌝ ≠ βf(⌜sl⌝ , lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: ⊦ ⌜x⌝ .take(n) = x.take(n); (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| ⌜# sl⌝ = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜bf⌝ ≠ βf(⌜sl⌝ , lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
⌜# sl⌝ = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf⌝ ≠ βf(⌜sl⌝ , lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
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)
| ⌜# sl⌝ = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf⌝ ≠ βf(⌜sl⌝ , lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: ⊦ ⌜x⌝ .take(n) = x.take(n); (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (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)
| # al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
# al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , ⌜bf⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝;
| # al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
# al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: ⊦ ⌜x⌝ ≠ ⌜nf⌝ ; (s)
| # al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
⊦ cont(βf) ↔ mon(βf) ∧ pbd(βf)
# al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), mon(βf), pbd(βf), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used terms: βf
| ⊦ cont(βf) ↔ mon(βf) ∧ pbd(βf) |
| # al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), mon(βf), pbd(βf), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: montr-def: ⊦ mon(βf) ↔ (∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2));
| # al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
# al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∃ n. ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: # bl + 1
| # al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ∃ n. ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
# al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
| # al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
# al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), # σf(n) = # αf(n) + ⌜1⌝ ∧ # ⌜sl⌝ = # ⌜al⌝ + ⌜1⌝ ∧ σf(n) ⊑ ⌜sl⌝ ∧ αf(n) ⊑ ⌜al⌝ → βf(σf(n), αf(n)) ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used terms: σf(n), αf(n), ⌜sl⌝ , ⌜al⌝
| # al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), # σf(n) = # αf(n) + ⌜1⌝ ∧ # ⌜sl⌝ = # ⌜al⌝ + ⌜1⌝ ∧ σf(n) ⊑ ⌜sl⌝ ∧ αf(n) ⊑ ⌜al⌝ → βf(σf(n), αf(n)) ⊑ βf(⌜sl⌝ , ⌜al⌝ ), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), # σf(n) = # αf(n) + ⌜1⌝ ∧ σf(n) ⊑ ⌜sl⌝ ∧ αf(n) ⊑ ⌜al⌝ → βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
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) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| # al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), # σf(n) = # αf(n) + ⌜1⌝ ∧ σf(n) ⊑ ⌜sl⌝ ∧ αf(n) ⊑ ⌜al⌝ → βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
# al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ # σf(n) = # αf(n) + ⌜1⌝ ∧ σf(n) ⊑ ⌜sl⌝ ∧ αf(n) ⊑ ⌜al⌝
# al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
| # al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ # σf(n) = # αf(n) + ⌜1⌝ ∧ σf(n) ⊑ ⌜sl⌝ ∧ αf(n) ⊑ ⌜al⌝ |
# al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , # σf(n) ≠ # αf(n) + ⌜1⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
# al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ¬ σf(n) ⊑ ⌜sl⌝ , ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
# al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ¬ αf(n) ⊑ ⌜al⌝ , ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
| # al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , # σf(n) ≠ # αf(n) + ⌜1⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
Used terms: n
| # al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ¬ σf(n) ⊑ ⌜sl⌝ , ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
Used terms: n
| # al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ¬ αf(n) ⊑ ⌜al⌝ , ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
Used terms: n
| # al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), bf.take(# bl + 1) ⊑ bl, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s) leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream
| # al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), bf.take(# bl + 1) ⊑ bl, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
⊦ x ⊑ y ↔ (∃ z. x + z = y)
# al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∃ z. bf.take(# bl + 1) + z = bl ⊦
Used terms: bf.take(# bl + 1), bl
| ⊦ x ⊑ y ↔ (∃ z. x + z = y) |
| # al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∃ z. bf.take(# bl + 1) + z = bl ⊦ |
# al + 1 = # sl, bf.take(# bl + 1) + bl0 = bl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
| # al + 1 = # sl, bf.take(# bl + 1) + bl0 = bl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
⊦ x = y ↔ # x = # y ∧ (∀ n. n < # x → x(n) = y(n))
Used simplifier rules: ⊦ #(x + y) = # x + # y; (s) ⊦ # nf.take(n) = n; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ m = m + n ↔ n = 0; (s) ⊦ m + n = 0 ↔ m = 0 ∧ n = 0; (ws) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic Used terms: bf.take(# bl + 1) + bl0, bl
| ⊦ x = y ↔ # x = # y ∧ (∀ n. n < # x → x(n) = y(n)) |
| # al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , ⌜bf⌝ ≠ βf(⌜sl⌝ , ⌜al⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
# al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: ⊦ ⌜nf⌝ = ⌜nf0⌝ ↔ nf = nf0; (s)
| # al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
# al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ¬ # al < # al → (∃ n. ⌜al.take(# al)⌝ ⊑ αf(n)) ⊦
Used terms: # al
| # al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ , ¬ # al < # al → (∃ n. ⌜al.take(# al)⌝ ⊑ αf(n)) ⊦ |
# al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, ⌜al⌝ ⊑ αf(n), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: ⊦ # x = n → x.take(n) = x; (s) ⊦ ¬ n < n; (s)
| # al + 1 = # sl, lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, ⌜al⌝ ⊑ αf(n), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
# al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, ⌜al⌝ ⊑ αf(n), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used terms: n
| # al + 1 = # sl, lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, ⌜al⌝ ⊑ αf(n), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜al⌝ , ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: ⊦ # x0 = # x1 → (x0 ⊑ x1 ↔ x0 = x1); (s) ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s) ⊦ σ1 ⊑ σ2 → (σ2 ⊑ σ1 ↔ σ1 = σ2); (as)
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ¬ # sl < m → (∃ n. ⌜sl.take(m)⌝ ⊑ σf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ¬ # sl < # sl → (∃ n. ⌜sl.take(# sl)⌝ ⊑ σf(n)) ⊦
Used terms: # sl
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ¬ # sl < # sl → (∃ n. ⌜sl.take(# sl)⌝ ⊑ σf(n)) ⊦ |
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sl⌝ ⊑ σf(n0), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: ⊦ # x = n → x.take(n) = x; (s) ⊦ ¬ n < n; (s)
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sl⌝ ⊑ σf(n0), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sl⌝ ⊑ σf(n0), σf(n0) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used terms: n0
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sl⌝ ⊑ σf(n0), σf(n0) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: ⊦ # x0 = # x1 → (x0 ⊑ x1 ↔ x0 = x1); (s) ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s) ⊦ σ1 ⊑ σ2 → (σ2 ⊑ σ1 ↔ σ1 = σ2); (as)
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n)
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ n0 ≤ n ∧ ⌜n⌝ < # ⌜σf⌝
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜σf⌝ (n0) ⊑ ⌜σf⌝ (n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used terms: ⌜σf⌝ , n0, n
| mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n) |
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ n0 ≤ n ∧ ⌜n⌝ < # ⌜σf⌝ |
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n < n0, ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ m ≤ n ↔ ¬ n < m; (ss) ⊦ ⌜m⌝ < ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s)
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n < n0, ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n)
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n < n0, ⌜σf⌝ (n) ⊑ ⌜σf⌝ (n0), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: ⊦ m < n → m ≤ n; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ ⌜m⌝ < ∞; (s) Used terms: ⌜σf⌝ , n, n0
| mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n) |
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n < n0, ⌜σf⌝ (n) ⊑ ⌜σf⌝ (n0), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n < n0, σf(n) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s)
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n < n0, σf(n) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n < n0, βf(σf(n0), αf(n0)) ⊑ ⌜bf⌝ , σf(n) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦
Used terms: n0
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n < n0, βf(σf(n0), αf(n0)) ⊑ ⌜bf⌝ , σf(n) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ |
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n < n0, βf(⌜sl⌝ , αf(n0)) ⊑ ⌜bf⌝ , σf(n) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n < n0, βf(⌜sl⌝ , αf(n0)) ⊑ ⌜bf⌝ , σf(n) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n)
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n < n0, ⌜αf⌝ (n) ⊑ ⌜αf⌝ (n0), βf(⌜sl⌝ , αf(n0)) ⊑ ⌜bf⌝ , σf(n) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦
Used simplifier rules: ⊦ m < n → m ≤ n; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ ⌜m⌝ < ∞; (s) Used terms: ⌜αf⌝ , n, n0
| mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ σσ(m) ⊑ σσ(n) |
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), n < n0, ⌜αf⌝ (n) ⊑ ⌜αf⌝ (n0), βf(⌜sl⌝ , αf(n0)) ⊑ ⌜bf⌝ , σf(n) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ |
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, ⌜al⌝ ⊑ αf(n0), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n < n0, βf(⌜sl⌝ , αf(n0)) ⊑ ⌜bf⌝ , σf(n) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s)
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, ⌜al⌝ ⊑ αf(n0), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), n < n0, βf(⌜sl⌝ , αf(n0)) ⊑ ⌜bf⌝ , σf(n) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
Used simplifier rules: ⊦ σ1 ⊑ σ2 → (σ2 ⊑ σ1 ↔ σ1 = σ2); (as) ⊦ ⌜nf⌝ ⊑ ⌜nf0⌝ ↔ nf = nf0; (s) Used terms: n0
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜σf⌝ (n0) ⊑ ⌜σf⌝ (n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. σf(n) ⊑ ⌜sl⌝ ⊦ |
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sl⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s)
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sl⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ⌜sl⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. σf(n) ⊑ ⌜sl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sl⌝ ⊑ σf(n), σf(n) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ ⊦
Used terms: n
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ⌜sl⌝ ⊑ σf(n), σf(n) ⊑ ⌜sl⌝ , ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ ⊦ |
# al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n), ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ ⊦
Used simplifier rules: ⊦ # x0 = # x1 → (x0 ⊑ x1 ↔ x0 = x1); (s) ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s) ⊦ σ1 ⊑ σ2 → (σ2 ⊑ σ1 ↔ σ1 = σ2); (as)
| # al + 1 = # sl, ⌜al⌝ = αf(n), lim(⌜σf⌝ ) = ⌜sl⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜sl⌝ = σf(n), ⌜sl⌝ = σf(n0), βf(⌜sl⌝ , ⌜al⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ ⊦ |
Used simplifier rules: ⊦ ⌜nf⌝ ⊑ ⌜nf0⌝ ↔ nf = nf0; (s) Used terms: n
| # lim(⌜σf⌝ ) = # lim(⌜αf⌝ ) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , ⌜bf⌝ ≠ βf(lim(⌜σf⌝ ), lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ¬ # lim(⌜σf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜σf⌝ ).take(m)⌝ ⊑ σf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. σf(n) ⊑ lim(⌜σf⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
# lim(⌜αf⌝ ) = ∞, lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ βf(⌜sf⌝ , lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
Used simplifier rules: ⊦ ¬ ∞ < n∞; (s) ⊦ ⌜nf⌝ .take(n) = nf.take(n); (s) ⊦ # ⌜nf⌝ = ∞; (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 ⊦ ⌜m⌝ + n∞ = ∞ ↔ n∞ = ∞; (s)
| # lim(⌜αf⌝ ) = ∞, lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ βf(⌜sf⌝ , lim(⌜αf⌝ )), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
# lim(⌜αf⌝ ) = ∞, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bf⌝ ≠ βf(⌜sf⌝ , lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝; ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) ⊦ ⌜n⌝ ≠ ∞; (s)
| # lim(⌜αf⌝ ) = ∞, lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bf⌝ ≠ βf(⌜sf⌝ , lim(⌜αf⌝ )), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bf⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: ⊦ ⌜nf⌝ .take(n) = nf.take(n); (s) ⊦ # ⌜nf⌝ = ∞; (s)
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bf⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , ⌜bf⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝;
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
Used simplifier rules: ⊦ ⌜x⌝ ≠ ⌜nf⌝ ; (s)
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∃ n. ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)) ⊦
Used terms: # bl + 1
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∃ n. ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)) ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used terms: n
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜af⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦
Used terms: n
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), αf(n) ⊑ ⌜af⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ ⊦ |
# σf(n) = # αf(n) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜af⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used terms: n
| # σf(n) = # αf(n) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), αf(n) ⊑ ⌜af⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
⊦ cont(βf) ↔ mon(βf) ∧ pbd(βf)
# σf(n) = # αf(n) + ⌜1⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), mon(βf), pbd(βf), αf(n) ⊑ ⌜af⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used terms: βf
| ⊦ cont(βf) ↔ mon(βf) ∧ pbd(βf) |
| # σf(n) = # αf(n) + ⌜1⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), mon(βf), pbd(βf), αf(n) ⊑ ⌜af⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
# σf(n) = # αf(n) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), αf(n) ⊑ ⌜af⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: montr-def: ⊦ mon(βf) ↔ (∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2));
| # σf(n) = # αf(n) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), αf(n) ⊑ ⌜af⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
# σf(n) = # αf(n) + ⌜1⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n) ⊑ ⌜af⌝ , σf(n) ⊑ ⌜sf⌝ , # σf(n) = # αf(n) + ⌜1⌝ ∧ # ⌜sf⌝ = # ⌜af⌝ + ⌜1⌝ ∧ σf(n) ⊑ ⌜sf⌝ ∧ αf(n) ⊑ ⌜af⌝ → βf(σf(n), αf(n)) ⊑ βf(⌜sf⌝ , ⌜af⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used terms: σf(n), αf(n), ⌜sf⌝ , ⌜af⌝
| # σf(n) = # αf(n) + ⌜1⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n) ⊑ ⌜af⌝ , σf(n) ⊑ ⌜sf⌝ , # σf(n) = # αf(n) + ⌜1⌝ ∧ # ⌜sf⌝ = # ⌜af⌝ + ⌜1⌝ ∧ σf(n) ⊑ ⌜sf⌝ ∧ αf(n) ⊑ ⌜af⌝ → βf(σf(n), αf(n)) ⊑ βf(⌜sf⌝ , ⌜af⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
# σf(n) = # αf(n) + ⌜1⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), bf.take(# bl + 1) ⊑ bl, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n) ⊑ ⌜af⌝ , βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s) leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) 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 ⊦ ⌜m⌝ + ∞ = ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s)
| # σf(n) = # αf(n) + ⌜1⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), bf.take(# bl + 1) ⊑ bl, mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n) ⊑ ⌜af⌝ , βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
⊦ x ⊑ y ↔ (∃ z. x + z = y)
# σf(n) = # αf(n) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), αf(n) ⊑ ⌜af⌝ , βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∃ z. bf.take(# bl + 1) + z = bl ⊦
Used terms: bf.take(# bl + 1), bl
| ⊦ x ⊑ y ↔ (∃ z. x + z = y) |
| # σf(n) = # αf(n) + ⌜1⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), αf(n) ⊑ ⌜af⌝ , βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∃ z. bf.take(# bl + 1) + z = bl ⊦ |
# σf(n) = # αf(n) + ⌜1⌝ , bf.take(# bl + 1) + bl0 = bl, lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n) ⊑ ⌜af⌝ , βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦
| # σf(n) = # αf(n) + ⌜1⌝ , bf.take(# bl + 1) + bl0 = bl, lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bl⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ βf(σf(n), αf(n)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), αf(n) ⊑ ⌜af⌝ , βf(σf(n), αf(n)) ⊑ ⌜bl⌝ , σf(n) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ ⊦ |
⊦ x = y ↔ # x = # y ∧ (∀ n. n < # x → x(n) = y(n))
Used simplifier rules: ⊦ #(x + y) = # x + # y; (s) ⊦ # nf.take(n) = n; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ m = m + n ↔ n = 0; (s) ⊦ m + n = 0 ↔ m = 0 ∧ n = 0; (ws) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic Used terms: bf.take(# bl + 1) + bl0, bl
| ⊦ x = y ↔ # x = # y ∧ (∀ n. n < # x → x(n) = y(n)) |
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , ⌜bf⌝ ≠ βf(⌜sf⌝ , ⌜af⌝ ), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦
Used simplifier rules: ⊦ ⌜nf⌝ = ⌜nf0⌝ ↔ nf = nf0; (s)
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf ≠ bf0, cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ ⊦ |
⊦ bf ≠ bf0 ↔ (∃ n. bf(n) ≠ bf0(n) ∧ (∀ n0. n0 < n → bf(n0) = bf0(n0)))
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∃ n. bf(n) ≠ bf0(n) ∧ (∀ n0. n0 < n → bf(n0) = bf0(n0)) ⊦
Used terms: bf, bf0
| ⊦ bf ≠ bf0 ↔ (∃ n. bf(n) ≠ bf0(n) ∧ (∀ n0. n0 < n → bf(n0) = bf0(n0))) |
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , cont(βf), mon(⌜σf⌝ ), mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∃ n. bf(n) ≠ bf0(n) ∧ (∀ n0. n0 < n → bf(n0) = bf0(n0)) ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), cont(βf), mon(⌜αf⌝ ), mon(⌜σf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ |
⊦ cont(βf) ↔ mon(βf) ∧ pbd(βf)
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), mon(⌜σf⌝ ), mon(⌜αf⌝ ), mon(βf), pbd(βf), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦
Used terms: βf
| ⊦ cont(βf) ↔ mon(βf) ∧ pbd(βf) |
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), mon(⌜σf⌝ ), mon(⌜αf⌝ ), mon(βf), pbd(βf), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used simplifier rules: montr-def: ⊦ mon(βf) ↔ (∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2));
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ βf(σf(n), αf(n)), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∃ n0. ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
Used terms: n + 1
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∃ n0. ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∀ σ1, α1, σ2, α2. # σ1 = # α1 + ⌜1⌝ ∧ # σ2 = # α2 + ⌜1⌝ ∧ σ1 ⊑ σ2 ∧ α1 ⊑ α2 → βf(σ1, α1) ⊑ βf(σ2, α2) ⊦ |
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), # σf(n0) = # αf(n0) + ⌜1⌝ ∧ # ⌜sf⌝ = # ⌜af⌝ + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sf⌝ ∧ αf(n0) ⊑ ⌜af⌝ → βf(σf(n0), αf(n0)) ⊑ βf(⌜sf⌝ , ⌜af⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦
Used terms: σf(n0), αf(n0), ⌜sf⌝ , ⌜af⌝
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), # σf(n0) = # αf(n0) + ⌜1⌝ ∧ # ⌜sf⌝ = # ⌜af⌝ + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sf⌝ ∧ αf(n0) ⊑ ⌜af⌝ → βf(σf(n0), αf(n0)) ⊑ βf(⌜sf⌝ , ⌜af⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), # σf(n0) = # αf(n0) + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sf⌝ ∧ αf(n0) ⊑ ⌜af⌝ → βf(σf(n0), αf(n0)) ⊑ ⌜bf0⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦
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 ⊦ ⌜m⌝ + ∞ = ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s)
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), # σf(n0) = # αf(n0) + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sf⌝ ∧ αf(n0) ⊑ ⌜af⌝ → βf(σf(n0), αf(n0)) ⊑ ⌜bf0⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ |
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ # σf(n0) = # αf(n0) + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sf⌝ ∧ αf(n0) ⊑ ⌜af⌝
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), βf(σf(n0), αf(n0)) ⊑ ⌜bf0⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ # σf(n0) = # αf(n0) + ⌜1⌝ ∧ σf(n0) ⊑ ⌜sf⌝ ∧ αf(n0) ⊑ ⌜af⌝ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , # σf(n0) ≠ # αf(n0) + ⌜1⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ¬ σf(n0) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ¬ αf(n0) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , # σf(n0) ≠ # αf(n0) + ⌜1⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ |
Used terms: n0
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ¬ σf(n0) ⊑ ⌜sf⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ |
Used terms: n0
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), ¬ αf(n0) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ |
Used terms: n0
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), βf(σf(n0), αf(n0)) ⊑ ⌜bf0⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), ⌜bf.take(n + 1)⌝ ⊑ ⌜bf0⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), βf(σf(n0), αf(n0)) ⊑ ⌜bf0⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), ⌜bf.take(n + 1)⌝ ⊑ ⌜bf0⌝ , mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), βf(σf(n0), αf(n0)) ⊑ ⌜bf0⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), βf(σf(n0), αf(n0)) ⊑ ⌜bf0⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∃ β. ⌜bf.take(n + 1)⌝ + β = ⌜bf0⌝ ⊦
Used terms: ⌜bf.take(n + 1)⌝ , ⌜bf0⌝
| ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) |
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf0⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), βf(σf(n0), αf(n0)) ⊑ ⌜bf0⌝ , ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∃ β. ⌜bf.take(n + 1)⌝ + β = ⌜bf0⌝ ⊦ |
lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf.take(n + 1)⌝ + ⌜bf1⌝ , bf(n) ≠ (bf.take(n + 1) + bf1)(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), ⌜bf.take(n + 1)⌝ ⊑ βf(⌜sf⌝ , ⌜af⌝ ), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), βf(σf(n0), αf(n0)) ⊑ βf(⌜sf⌝ , ⌜af⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n1. n1 < n → bf(n1) = (bf.take(n + 1) + bf1)(n1) ⊦
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream ⊦ ⌜nf⌝ .f = nf; (s) ⊦ ⌜x + nf⌝ = ⌜x⌝ + ⌜nf⌝ ; (s) ⊦ finp(σ) ↔ ¬(∃ nf. ⌜nf⌝ = σ); (ss) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ ⌜x⌝ + σ = ⌜nf⌝ ↔ ¬ finp(σ) ∧ x + σ.f = nf; (as)
| lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , βf(⌜sf⌝ , ⌜af⌝ ) = ⌜bf.take(n + 1)⌝ + ⌜bf1⌝ , bf(n) ≠ (bf.take(n + 1) + bf1)(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), ⌜bf.take(n + 1)⌝ ⊑ βf(⌜sf⌝ , ⌜af⌝ ), mon(⌜σf⌝ ), mon(⌜αf⌝ ), pbd(βf), βf(σf(n0), αf(n0)) ⊑ βf(⌜sf⌝ , ⌜af⌝ ), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n1. n1 < n → bf(n1) = (bf.take(n + 1) + bf1)(n1) ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , bf(n) ≠ (bf.take(n + 1) + bf1)(n), ⌜bf.take(n + 1)⌝ ⊑ ⌜bf.take(n + 1)⌝ + ⌜bf1⌝ , ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), βf(σf(n0), αf(n0)) ⊑ ⌜bf.take(n + 1)⌝ + ⌜bf1⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n1. n1 < n → bf(n1) = (bf.take(n + 1) + bf1)(n1) ⊦
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , bf(n) ≠ (bf.take(n + 1) + bf1)(n), ⌜bf.take(n + 1)⌝ ⊑ ⌜bf.take(n + 1)⌝ + ⌜bf1⌝ , ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), βf(σf(n0), αf(n0)) ⊑ ⌜bf.take(n + 1)⌝ + ⌜bf1⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n1. n1 < n → bf(n1) = (bf.take(n + 1) + bf1)(n1) ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , bf(n) ≠ (bf.take(n + 1) + bf1)(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), βf(σf(n0), αf(n0)) ⊑ ⌜bf.take(n + 1)⌝ + ⌜bf1⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n1. n1 < n → bf(n1) = (bf.take(n + 1) + bf1)(n1) ⊦
Used simplifier rules: append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream ⊦ σ1 ⊑ σ1 + σ2; (s) leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜σf⌝ ) = ⌜sf⌝ , lim(⌜λ n. βf(σf(n), αf(n))⌝ ) = ⌜bf⌝ , bf(n) ≠ (bf.take(n + 1) + bf1)(n), ⌜bf.take(n + 1)⌝ ⊑ βf(σf(n0), αf(n0)), mon(⌜αf⌝ ), mon(⌜σf⌝ ), pbd(βf), βf(σf(n0), αf(n0)) ⊑ ⌜bf.take(n + 1)⌝ + ⌜bf1⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜sf.take(m)⌝ ⊑ σf(n), ∀ n. βf(σf(n), αf(n)) ⊑ ⌜bf⌝ , ∀ n. # σf(n) = # αf(n) + ⌜1⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. σf(n) ⊑ ⌜sf⌝ , ∀ n1. n1 < n → bf(n1) = (bf.take(n + 1) + bf1)(n1) ⊦ |
⊦ x + nf = (λ n. (n < # x ⊃ x(n);nf(n - # x)))
Used simplifier rules: ⊦ m < n + 1 ↔ ¬ n < m; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic m < n ⊦ nf.take(n)(m) = nf(m); (s) ⊦ # nf.take(n) = n; (s) ⊦ ¬ n < n; (s) Used terms: bf.take(n + 1), bf1
| ⊦ x + nf = (λ n. (n < # x ⊃ x(n);nf(n - # x))) |
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.