| ⊦ cont(f) ∧ mon(⌜αf⌝ ) → lim(⌜λ n. f(αf(n))⌝ ) = f(lim(⌜αf⌝ )) |
lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), cont(f), mon(⌜αf⌝ ) ⊦
| lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), cont(f), mon(⌜αf⌝ ) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: cont-def: ⊦ cont(f) ↔ mon(f) ∧ pbd(f); mon-def: ⊦ mon(f) ↔ (∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2));
| lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ(n) ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ).take(m)⌝ ⊑ σσ(n)))
lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), mon(⌜αf⌝ ) ∧ ⌜αf⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜αf⌝ → ⌜αf⌝ (n) ⊑ lim(⌜αf⌝ )) ∧ (∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜αf⌝ ∧ ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ ⌜αf⌝ (n))), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: ⌜αf⌝
| ⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ(n) ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ).take(m)⌝ ⊑ σσ(n))) |
| lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), mon(⌜αf⌝ ) ∧ ⌜αf⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜αf⌝ → ⌜αf⌝ (n) ⊑ lim(⌜αf⌝ )) ∧ (∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜αf⌝ ∧ ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ ⌜αf⌝ (n))), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s) ⊦ ⌜m⌝ < ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ [] ≠ ⌜nf⌝ ; (s)
| lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ(n) ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ).take(m)⌝ ⊑ σσ(n)))
lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), mon(⌜λ n. f(αf(n))⌝ ) ∧ ⌜λ n. f(αf(n))⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜λ n. f(αf(n))⌝ → ⌜λ n. f(αf(n))⌝ (n) ⊑ lim(⌜λ n. f(αf(n))⌝ )) ∧ (∀ m. ¬ # lim(⌜λ n. f(αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜λ n. f(αf(n))⌝ ∧ ⌜lim(⌜λ n. f(αf(n))⌝ ).take(m)⌝ ⊑ ⌜λ n. f(αf(n))⌝ (n))), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: ⌜λ n. f(αf(n))⌝
| ⊦ mon(σσ) ∧ σσ ≠ [] → (∀ n. ⌜n⌝ < # σσ → σσ(n) ⊑ lim(σσ)) ∧ (∀ m. ¬ # lim(σσ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ ⌜lim(σσ).take(m)⌝ ⊑ σσ(n))) |
| lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), mon(⌜λ n. f(αf(n))⌝ ) ∧ ⌜λ n. f(αf(n))⌝ ≠ [] → (∀ n. ⌜n⌝ < # ⌜λ n. f(αf(n))⌝ → ⌜λ n. f(αf(n))⌝ (n) ⊑ lim(⌜λ n. f(αf(n))⌝ )) ∧ (∀ m. ¬ # lim(⌜λ n. f(αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜n⌝ < # ⌜λ n. f(αf(n))⌝ ∧ ⌜lim(⌜λ n. f(αf(n))⌝ ).take(m)⌝ ⊑ ⌜λ n. f(αf(n))⌝ (n))), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), mon(⌜λ n. f(αf(n))⌝ ) → (∀ n. f(αf(n)) ⊑ lim(⌜λ n. f(αf(n))⌝ )) ∧ (∀ m. ¬ # lim(⌜λ n. f(αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. f(αf(n))⌝ ).take(m)⌝ ⊑ f(αf(n)))), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s) ⊦ ⌜m⌝ < ∞; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ [] ≠ ⌜nf⌝ ; (s)
| lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), mon(⌜λ n. f(αf(n))⌝ ) → (∀ n. f(αf(n)) ⊑ lim(⌜λ n. f(αf(n))⌝ )) ∧ (∀ m. ¬ # lim(⌜λ n. f(αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. f(αf(n))⌝ ).take(m)⌝ ⊑ f(αf(n)))), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ¬ mon(⌜λ n. f(αf(n))⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜λ n. f(αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. f(αf(n))⌝ ).take(m)⌝ ⊑ f(αf(n))), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. f(αf(n)) ⊑ lim(⌜λ n. f(αf(n))⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
| lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ¬ mon(⌜λ n. f(αf(n))⌝ ), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⊦ mon(σσ) ↔ (∀ n. ⌜n⌝ + ⌜1⌝ < # σσ → σσ(n) ⊑ σσ(n + 1))
lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∃ n. ¬(⌜n⌝ + ⌜1⌝ < # ⌜λ n. f(αf(n))⌝ → ⌜λ n. f(αf(n))⌝ (n) ⊑ ⌜λ n. f(αf(n))⌝ (n + 1)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: ⌜λ n. f(αf(n))⌝
| ⊦ mon(σσ) ↔ (∀ n. ⌜n⌝ + ⌜1⌝ < # σσ → σσ(n) ⊑ σσ(n + 1)) |
| lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∃ n. ¬(⌜n⌝ + ⌜1⌝ < # ⌜λ n. f(αf(n))⌝ → ⌜λ n. f(αf(n))⌝ (n) ⊑ ⌜λ n. f(αf(n))⌝ (n + 1)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ¬ f(αf(n)) ⊑ f(αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α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(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ¬ f(αf(n)) ⊑ f(αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⊦ mon(σσ) ↔ (∀ n. ⌜n⌝ + ⌜1⌝ < # σσ → σσ(n) ⊑ σσ(n + 1))
lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), pbd(f), ¬ f(αf(n)) ⊑ f(αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. ⌜n⌝ + ⌜1⌝ < # ⌜αf⌝ → ⌜αf⌝ (n) ⊑ ⌜αf⌝ (n + 1), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: ⌜αf⌝
| ⊦ mon(σσ) ↔ (∀ n. ⌜n⌝ + ⌜1⌝ < # σσ → σσ(n) ⊑ σσ(n + 1)) |
| lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), pbd(f), ¬ f(αf(n)) ⊑ f(αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. ⌜n⌝ + ⌜1⌝ < # ⌜αf⌝ → ⌜αf⌝ (n) ⊑ ⌜αf⌝ (n + 1), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), pbd(f), ¬ f(αf(n)) ⊑ f(αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n0. αf(n0) ⊑ αf(n0 + 1), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α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(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), pbd(f), ¬ f(αf(n)) ⊑ f(αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n0. αf(n0) ⊑ αf(n0 + 1), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), pbd(f), αf(n) ⊑ αf(n + 1), ¬ f(αf(n)) ⊑ f(αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: n
| lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), pbd(f), αf(n) ⊑ αf(n + 1), ¬ f(αf(n)) ⊑ f(αf(n + 1)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
Used terms: αf(n), αf(n + 1)
| lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # lim(⌜λ n. f(αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. f(αf(n))⌝ ).take(m)⌝ ⊑ f(αf(n))), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. f(αf(n)) ⊑ lim(⌜λ n. f(αf(n))⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜λ n. f(αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. f(αf(n))⌝ ).take(m)⌝ ⊑ f(αf(n))), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. f(αf(n)) ⊑ lim(⌜λ n. f(αf(n))⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜λ n. f(αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. f(αf(n))⌝ ).take(m)⌝ ⊑ f(αf(n))), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. f(αf(n)) ⊑ lim(⌜λ n. f(αf(n))⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝;
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜λ n. f(αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. f(αf(n))⌝ ).take(m)⌝ ⊑ f(αf(n))), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. f(αf(n)) ⊑ lim(⌜λ n. f(αf(n))⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜x⌝ .take(n) = x.take(n); (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bl⌝ ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bl⌝ ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝;
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bl⌝ ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bl⌝ ≠ f(⌜al⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜x⌝ .take(n) = x.take(n); (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bl⌝ ≠ f(⌜al⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ f(⌜al⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ¬ # al < # al → (∃ n. ⌜al.take(# al)⌝ ⊑ αf(n)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: # al
| lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ f(⌜al⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ¬ # al < # al → (∃ n. ⌜al.take(# al)⌝ ⊑ αf(n)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bl⌝ ≠ f(⌜al⌝ ), ⌜al⌝ ⊑ αf(n), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ # x = n → x.take(n) = x; (s) ⊦ ¬ n < n; (s)
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bl⌝ ≠ f(⌜al⌝ ), ⌜al⌝ ⊑ αf(n), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ f(⌜al⌝ ), ⌜al⌝ ⊑ αf(n), mon(⌜αf⌝ ), pbd(f), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ¬ # bl < # bl → (∃ n. ⌜bl.take(# bl)⌝ ⊑ f(αf(n))), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: # bl
| lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ f(⌜al⌝ ), ⌜al⌝ ⊑ αf(n), mon(⌜αf⌝ ), pbd(f), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ¬ # bl < # bl → (∃ n. ⌜bl.take(# bl)⌝ ⊑ f(αf(n))), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bl⌝ ≠ f(⌜al⌝ ), ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ # x = n → x.take(n) = x; (s) ⊦ ¬ n < n; (s)
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bl⌝ ≠ f(⌜al⌝ ), ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⊦ σ = σ0 ↔ σ ⊑ σ0 ∧ σ0 ⊑ σ
lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: ⌜bl⌝ , f(⌜al⌝ )
| ⊦ σ = σ0 ↔ σ ⊑ σ0 ∧ σ0 ⊑ σ |
| lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ ⌜al⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: n0
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ ⌜al⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ ⌜al⌝ , αf(n0) ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream
| lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ ⌜al⌝ , αf(n0) ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ αf(n), αf(n0) ⊑ ⌜al⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2), αf(n0) ⊑ αf(n) → f(αf(n0)) ⊑ f(αf(n)) ⊦
Used terms: αf(n0), αf(n)
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ αf(n), αf(n0) ⊑ ⌜al⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2), αf(n0) ⊑ αf(n) → f(αf(n0)) ⊑ f(αf(n)) ⊦ |
lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n0)), ⌜bl⌝ ⊑ f(αf(n)), f(αf(n0)) ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ ⌜al⌝ , αf(n0) ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream
| lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n0)), ⌜bl⌝ ⊑ f(αf(n)), f(αf(n0)) ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ ⌜al⌝ , αf(n0) ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n)), ⌜bl⌝ ⊑ f(αf(n0)), f(αf(n0)) ⊑ f(αf(n)), f(αf(n0)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ αf(n), αf(n0) ⊑ ⌜al⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: n0
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n)), ⌜bl⌝ ⊑ f(αf(n0)), f(αf(n0)) ⊑ f(αf(n)), f(αf(n0)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ αf(n), αf(n0) ⊑ ⌜al⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n0)), lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ αf(n), αf(n0) ⊑ ⌜al⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
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(n0)), lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ αf(n), αf(n0) ⊑ ⌜al⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n0)), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ ⌜al⌝ , αf(n0) ⊑ αf(n), αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: n
| ⌜bl⌝ = f(αf(n0)), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜al⌝ ⊑ αf(n), ⌜bl⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ ⌜al⌝ , αf(n0) ⊑ αf(n), αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ¬ ⌜bl⌝ ⊑ f(⌜al⌝ ) ∨ ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜al⌝ = αf(n), ⌜bl⌝ = f(αf(n0)), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ⊑ f(⌜al⌝ ), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ ⌜al⌝ , ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
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)
| ⌜al⌝ = αf(n), ⌜bl⌝ = f(αf(n0)), lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ⊑ f(⌜al⌝ ), mon(⌜αf⌝ ), pbd(f), αf(n0) ⊑ ⌜al⌝ , ¬ f(⌜al⌝ ) ⊑ ⌜bl⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream Used terms: n
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bl⌝ ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ .take(n) = nf.take(n); (s) ⊦ ¬ ∞ < n∞; (s) ⊦ # ⌜nf⌝ = ∞; (s)
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # bl < m → (∃ n. ⌜bl.take(m)⌝ ⊑ f(αf(n))), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ¬ # bl < # bl → (∃ n. ⌜bl.take(# bl)⌝ ⊑ f(αf(n))), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: # bl
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ¬ # bl < # bl → (∃ n. ⌜bl.take(# bl)⌝ ⊑ f(αf(n))), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), ⌜bl⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ # x = n → x.take(n) = x; (s) ⊦ ¬ n < n; (s)
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), ⌜bl⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), ⌜bl⌝ ⊑ f(αf(n)), f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: n
| lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), ⌜bl⌝ ⊑ f(αf(n)), f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
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)), lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝;
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl ≠ bl0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜x⌝ = ⌜x0⌝ ↔ x = x0; (s)
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl ≠ bl0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , bl ≠ bl0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2), αf(n) ⊑ ⌜af⌝ → f(αf(n)) ⊑ f(⌜af⌝ ) ⊦
Used terms: αf(n), ⌜af⌝
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , bl ≠ bl0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2), αf(n) ⊑ ⌜af⌝ → f(αf(n)) ⊑ f(⌜af⌝ ) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , bl ≠ bl0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2), αf(n) ⊑ ⌜af⌝ → bl ⊑ bl0 ⊦
Used simplifier rules: ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s)
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , bl ≠ bl0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2), αf(n) ⊑ ⌜af⌝ → bl ⊑ bl0 ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl ≠ bl0, mon(⌜αf⌝ ), pbd(f), ¬ αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl ≠ bl0, mon(⌜αf⌝ ), pbd(f), ¬ αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
Used terms: n
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl ≠ bl0, bl ⊑ bl0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⊦ x = y ↔ x ⊑ y ∧ y ⊑ x
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , bl ⊑ bl0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ¬ bl ⊑ bl0 ∨ ¬ bl0 ⊑ bl, ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: bl, bl0
| ⊦ x = y ↔ x ⊑ y ∧ y ⊑ x |
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , bl ⊑ bl0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ¬ bl ⊑ bl0 ∨ ¬ bl0 ⊑ bl, ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl0 ≠ bl, bl ⊑ bl0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ # x0 = # x1 → (x0 ⊑ x1 ↔ x0 = x1); (s) ⊦ x ⊑ y → (y ⊑ x ↔ x = y); (s)
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl0 ≠ bl, bl ⊑ bl0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⊦ pbd(f) ↔ (∀ af, bl. (∀ n. f(⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ f(⌜af⌝ ) ⊑ ⌜bl⌝ )
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , bl0 ≠ bl, bl ⊑ bl0, mon(⌜αf⌝ ), ∀ af, bl. (∀ n. f(⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ f(⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: f
| ⊦ pbd(f) ↔ (∀ af, bl. (∀ n. f(⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ f(⌜af⌝ ) ⊑ ⌜bl⌝ ) |
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , bl0 ≠ bl, bl ⊑ bl0, mon(⌜αf⌝ ), ∀ af, bl. (∀ n. f(⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ f(⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl0 ≠ bl, bl ⊑ bl0, mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , (∀ n. f(⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ f(⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: af, bl
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl0 ≠ bl, bl ⊑ bl0, mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , (∀ n. f(⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ f(⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl0 ≠ bl, bl ⊑ bl0, mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ x ⊑ y → (y ⊑ x ↔ x = y); (s) ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s)
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl0 ≠ bl, bl ⊑ bl0, mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , bl0 ≠ bl, bl ⊑ bl0, mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∃ n. ⌜af.take(n0)⌝ ⊑ αf(n), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: n0
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , bl0 ≠ bl, bl ⊑ bl0, mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∃ n. ⌜af.take(n0)⌝ ⊑ αf(n), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl0 ≠ bl, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl0 ≠ bl, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , bl0 ≠ bl, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1) → f(⌜af.take(n0)⌝ ) ⊑ f(αf(n1)), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ ⊦
Used terms: ⌜af.take(n0)⌝ , αf(n1)
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , bl0 ≠ bl, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1) → f(⌜af.take(n0)⌝ ) ⊑ f(αf(n1)), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl0 ≠ bl, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, f(⌜af.take(n0)⌝ ) ⊑ f(αf(n1)), mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ ⊦
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bl0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bl0 ≠ bl, ⌜af.take(n0)⌝ ⊑ αf(n1), bl ⊑ bl0, f(⌜af.take(n0)⌝ ) ⊑ f(αf(n1)), mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ ⊦ |
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream Used terms: n1
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bl⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜x⌝ ≠ ⌜nf⌝ ; (s)
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⊦ pbd(f) ↔ (∀ af, bl. (∀ n. f(⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ f(⌜af⌝ ) ⊑ ⌜bl⌝ )
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , mon(⌜αf⌝ ), ∀ af, bl. (∀ n. f(⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ f(⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: f
| ⊦ pbd(f) ↔ (∀ af, bl. (∀ n. f(⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ f(⌜af⌝ ) ⊑ ⌜bl⌝ ) |
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , mon(⌜αf⌝ ), ∀ af, bl. (∀ n. f(⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ f(⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , (∀ n. f(⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ f(⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: af, bl
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , mon(⌜αf⌝ ), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , (∀ n. f(⌜af.take(n)⌝ ) ⊑ ⌜bl⌝ ) ↔ f(⌜af⌝ ) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ¬ ⌜nf⌝ ⊑ ⌜x⌝ ; (s)
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∃ n. ⌜af.take(n0)⌝ ⊑ αf(n), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: n0
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∃ n. ⌜af.take(n0)⌝ ⊑ αf(n), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1) → f(⌜af.take(n0)⌝ ) ⊑ f(αf(n1)), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ ⊦
Used terms: ⌜af.take(n0)⌝ , αf(n1)
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1) → f(⌜af.take(n0)⌝ ) ⊑ f(αf(n1)), ∀ n. f(αf(n)) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ ⊦ |
⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), f(⌜af.take(n0)⌝ ) ⊑ f(αf(n1)), mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ ⊦
| ⌜bl⌝ = f(αf(n)), f(⌜af⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜af.take(n0)⌝ ⊑ αf(n1), f(⌜af.take(n0)⌝ ) ⊑ f(αf(n1)), mon(⌜αf⌝ ), ¬ f(⌜af.take(n0)⌝ ) ⊑ ⌜bl⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bl⌝ ⊦ |
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream Used terms: n1
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜λ n. f(αf(n))⌝ ) ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜λ n. f(αf(n))⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜λ n. f(αf(n))⌝ ).take(m)⌝ ⊑ f(αf(n))), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. f(αf(n)) ⊑ lim(⌜λ n. f(αf(n))⌝ ), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ .take(n) = nf.take(n); (s) ⊦ ¬ ∞ < n∞; (s) ⊦ # ⌜nf⌝ = ∞; (s)
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf⌝ ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bf⌝ ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝;
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf⌝ ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf⌝ ≠ f(⌜al⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜x⌝ .take(n) = x.take(n); (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf⌝ ≠ f(⌜al⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ f(⌜al⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
f(⌜al⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ f(⌜al⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝;
| f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ f(⌜al⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜x⌝ ≠ ⌜nf⌝ ; (s)
| f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∃ n. ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: # bl + 1
| f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∃ n. ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
| f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , αf(n) ⊑ ⌜al⌝ → f(αf(n)) ⊑ f(⌜al⌝ ) ⊦
Used terms: αf(n), ⌜al⌝
| f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , αf(n) ⊑ ⌜al⌝ → f(αf(n)) ⊑ f(⌜al⌝ ) ⊦ |
f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , αf(n) ⊑ ⌜al⌝ → f(αf(n)) ⊑ ⌜bl⌝ ⊦
| f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , αf(n) ⊑ ⌜al⌝ → f(αf(n)) ⊑ ⌜bl⌝ ⊦ |
f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ¬ αf(n) ⊑ ⌜al⌝ , ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ ⊦
f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ ⊦
| f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ¬ αf(n) ⊑ ⌜al⌝ , ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ ⊦ |
Used terms: n
| f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ ⊦ |
f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), bf.take(# bl + 1) ⊑ bl, f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s) leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream
| f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), bf.take(# bl + 1) ⊑ bl, f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ ⊦ |
⊦ x ⊑ y ↔ (∃ z. x + z = y)
f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∃ z. bf.take(# bl + 1) + z = bl ⊦
Used terms: bf.take(# bl + 1), bl
| ⊦ x ⊑ y ↔ (∃ z. x + z = y) |
| f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∃ z. bf.take(# bl + 1) + z = bl ⊦ |
bf.take(# bl + 1) + bl0 = bl, f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ ⊦
| bf.take(# bl + 1) + bl0 = bl, f(⌜al⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(α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)) |
| f(⌜al⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ f(⌜al⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜al⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf ≠ bf0, mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ = ⌜nf0⌝ ↔ nf = nf0; (s)
| f(⌜al⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf ≠ bf0, mon(⌜αf⌝ ), pbd(f), ∀ m. ¬ # al < m → (∃ n. ⌜al.take(m)⌝ ⊑ αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜al⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , bf ≠ bf0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ¬ # al < # al → (∃ n. ⌜al.take(# al)⌝ ⊑ αf(n)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: # al
| f(⌜al⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , bf ≠ bf0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ¬ # al < # al → (∃ n. ⌜al.take(# al)⌝ ⊑ αf(n)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜al⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf ≠ bf0, ⌜al⌝ ⊑ αf(n), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ # x = n → x.take(n) = x; (s) ⊦ ¬ n < n; (s)
| f(⌜al⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf ≠ bf0, ⌜al⌝ ⊑ αf(n), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜al⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , bf ≠ bf0, ⌜al⌝ ⊑ αf(n), mon(⌜αf⌝ ), pbd(f), ⌜al⌝ ⊑ αf(n) → f(⌜al⌝ ) ⊑ f(αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ ⊦
Used terms: ⌜al⌝ , αf(n)
| f(⌜al⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , bf ≠ bf0, ⌜al⌝ ⊑ αf(n), mon(⌜αf⌝ ), pbd(f), ⌜al⌝ ⊑ αf(n) → f(⌜al⌝ ) ⊑ f(αf(n)), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. αf(n) ⊑ ⌜al⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ ⊦ |
f(⌜al⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf ≠ bf0, ⌜al⌝ ⊑ αf(n), ⌜bf0⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ ⊦
| f(⌜al⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜al⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf ≠ bf0, ⌜al⌝ ⊑ αf(n), ⌜bf0⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜al⌝ ⊦ |
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream ⊦ ⌜nf⌝ ⊑ ⌜nf0⌝ ↔ nf = nf0; (s) Used terms: n
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bf⌝ ≠ f(lim(⌜αf⌝ )), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ m. ¬ # lim(⌜αf⌝ ) < ⌜m⌝ → (∃ n. ⌜lim(⌜αf⌝ ).take(m)⌝ ⊑ αf(n)), ∀ n. αf(n) ⊑ lim(⌜αf⌝ ), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bf⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ .take(n) = nf.take(n); (s) ⊦ ¬ ∞ < n∞; (s) ⊦ # ⌜nf⌝ = ∞; (s)
| lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bf⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: Stream[A] freely generated by ⌝, ⌝;
| f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜x⌝ ≠ ⌜nf⌝ ; (s)
| f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∃ n. ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: # bl + 1
| f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∃ n. ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
| f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: n
| f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , αf(n) ⊑ ⌜af⌝ → f(αf(n)) ⊑ f(⌜af⌝ ) ⊦
Used terms: αf(n), ⌜af⌝
| f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), mon(⌜αf⌝ ), pbd(f), αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , αf(n) ⊑ ⌜af⌝ → f(αf(n)) ⊑ f(⌜af⌝ ) ⊦ |
f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), bf.take(# bl + 1) ⊑ bl, f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ ⊦
Used simplifier rules: ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y; (s) leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream
| f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), bf.take(# bl + 1) ⊑ bl, f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ ⊦ |
⊦ x ⊑ y ↔ (∃ z. x + z = y)
f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∃ z. bf.take(# bl + 1) + z = bl ⊦
Used terms: bf.take(# bl + 1), bl
| ⊦ x ⊑ y ↔ (∃ z. x + z = y) |
| f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∃ z. bf.take(# bl + 1) + z = bl ⊦ |
bf.take(# bl + 1) + bl0 = bl, f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ ⊦
| bf.take(# bl + 1) + bl0 = bl, f(⌜af⌝ ) = ⌜bl⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf.take(# bl + 1)⌝ ⊑ f(αf(n)), f(αf(n)) ⊑ ⌜bl⌝ , mon(⌜αf⌝ ), pbd(f), αf(n) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(α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)) |
| f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , ⌜bf⌝ ≠ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf ≠ bf0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ = ⌜nf0⌝ ↔ nf = nf0; (s)
| f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf ≠ bf0, mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
⊦ bf ≠ bf0 ↔ (∃ n. bf(n) ≠ bf0(n) ∧ (∀ n0. n0 < n → bf(n0) = bf0(n0)))
f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∃ n. bf(n) ≠ bf0(n) ∧ (∀ n0. n0 < n → bf(n0) = bf0(n0)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: bf, bf0
| ⊦ bf ≠ bf0 ↔ (∃ n. bf(n) ≠ bf0(n) ∧ (∀ n0. n0 < n → bf(n0) = bf0(n0))) |
| f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∃ n. bf(n) ≠ bf0(n) ∧ (∀ n0. n0 < n → bf(n0) = bf0(n0)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf(n) ≠ bf0(n), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
| f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf(n) ≠ bf0(n), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ m. ∃ n. ⌜bf.take(m)⌝ ⊑ f(αf(n)), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bf(n) ≠ bf0(n), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∃ n0. ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
Used terms: n + 1
| f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bf(n) ≠ bf0(n), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∃ n0. ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦
| f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∀ α1, α2. α1 ⊑ α2 → f(α1) ⊑ f(α2) ⊦ |
f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), αf(n0) ⊑ ⌜af⌝ → f(αf(n0)) ⊑ f(⌜af⌝ ) ⊦
Used terms: αf(n0), ⌜af⌝
| f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), αf(n0) ⊑ ⌜af⌝ → f(αf(n0)) ⊑ f(⌜af⌝ ) ⊦ |
f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), αf(n0) ⊑ ⌜af⌝ → f(αf(n0)) ⊑ ⌜bf0⌝ ⊦
| f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), αf(n0) ⊑ ⌜af⌝ → f(αf(n0)) ⊑ ⌜bf0⌝ ⊦ |
f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), ¬ αf(n0) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦
f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), f(αf(n0)) ⊑ ⌜bf0⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦
| f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), mon(⌜αf⌝ ), pbd(f), ¬ αf(n0) ⊑ ⌜af⌝ , ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ |
Used terms: n0
| f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), f(αf(n0)) ⊑ ⌜bf0⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ |
f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), ⌜bf.take(n + 1)⌝ ⊑ ⌜bf0⌝ , f(αf(n0)) ⊑ ⌜bf0⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦
Used simplifier rules: leq-trans: ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2; (forward) from specification stream
| f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), ⌜bf.take(n + 1)⌝ ⊑ ⌜bf0⌝ , f(αf(n0)) ⊑ ⌜bf0⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0) ⊦ |
⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0)
f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), f(αf(n0)) ⊑ ⌜bf0⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(α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) |
| f(⌜af⌝ ) = ⌜bf0⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bf(n) ≠ bf0(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), f(αf(n0)) ⊑ ⌜bf0⌝ , mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ n0. n0 < n → bf(n0) = bf0(n0), ∃ β. ⌜bf.take(n + 1)⌝ + β = ⌜bf0⌝ ⊦ |
f(⌜af⌝ ) = ⌜bf.take(n + 1)⌝ + ⌜bf1⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bf(n) ≠ (bf.take(n + 1) + bf1)(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), ⌜bf.take(n + 1)⌝ ⊑ f(⌜af⌝ ), f(αf(n0)) ⊑ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(α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)
| f(⌜af⌝ ) = ⌜bf.take(n + 1)⌝ + ⌜bf1⌝ , lim(⌜λ n. f(αf(n))⌝ ) = ⌜bf⌝ , lim(⌜αf⌝ ) = ⌜af⌝ , bf(n) ≠ (bf.take(n + 1) + bf1)(n), ⌜bf.take(n + 1)⌝ ⊑ f(αf(n0)), ⌜bf.take(n + 1)⌝ ⊑ f(⌜af⌝ ), f(αf(n0)) ⊑ f(⌜af⌝ ), mon(⌜αf⌝ ), pbd(f), ∀ m. ∃ n. ⌜af.take(m)⌝ ⊑ αf(n), ∀ n. αf(n) ⊑ ⌜af⌝ , ∀ n. f(αf(n)) ⊑ ⌜bf⌝ , ∀ 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.