| bounded≤(λ r. ∃ n1. n1 ≥ n ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n1 ≥ n0 ∧ r = f(n1)) |
bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: ⊦ n ≥ m ↔ m ≤ n; (s)
| bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
n ≤ n0, bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
¬ n ≤ n0, bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used formulas: n ≤ n0
| n ≤ n0, bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
⊦ bounded≤(rset) ↔ (∃ r0. rset ≤ r0)
n ≤ n0, ∃ r0. (λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ≤ r0 ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used terms: λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)
| ⊦ bounded≤(rset) ↔ (∃ r0. rset ≤ r0) |
| n ≤ n0, ∃ r0. (λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ≤ r0 ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
n ≤ n0, (λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ≤ r0 ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
| n ≤ n0, (λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ≤ r0 ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
⊦ bounded≤(rset) ↔ (∃ r0. rset ≤ r0)
n ≤ n0, (λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0
Used terms: λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)
| ⊦ bounded≤(rset) ↔ (∃ r0. rset ≤ r0) |
| n ≤ n0, (λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0 |
n ≤ n0, (λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ≤ r0 ⊦ (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0
Used terms: r0
| n ≤ n0, (λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ≤ r0 ⊦ (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0 |
⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0)
n ≤ n0, ∀ r. (∃ n1. n ≤ n1 ∧ r = f(n1)) → r ≤ r0 ⊦ (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0
Used terms: λ r. ∃ n1. n ≤ n1 ∧ r = f(n1), r0
| ⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0) |
| n ≤ n0, ∀ r. (∃ n1. n ≤ n1 ∧ r = f(n1)) → r ≤ r0 ⊦ (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0 |
⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0)
n ≤ n0, ∀ r. (∃ n1. n ≤ n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∀ r. (∃ n1. n0 ≤ n1 ∧ r = f(n1)) → r ≤ r0
Used terms: λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1), r0
| ⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0) |
| n ≤ n0, ∀ r. (∃ n1. n ≤ n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∀ r. (∃ n1. n0 ≤ n1 ∧ r = f(n1)) → r ≤ r0 |
r0 < f(n1), n0 ≤ n1, n ≤ n0, n ≤ n1, ∀ r. (∃ n1. n ≤ n1 ∧ r = f(n1)) → r ≤ r0 ⊦
Used simplifier rules: let: ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1; (forward) from specification nat ⊦ r ≤ r0 ↔ ¬ r0 < r; (ss)
| r0 < f(n1), n0 ≤ n1, n ≤ n0, n ≤ n1, ∀ r. (∃ n1. n ≤ n1 ∧ r = f(n1)) → r ≤ r0 ⊦ |
r0 < f(n1), n ≤ n1, n ≤ n0, n0 ≤ n1, (∃ n0. n ≤ n0 ∧ f(n1) = f(n0)) → f(n1) ≤ r0 ⊦
Used terms: f(n1)
| r0 < f(n1), n ≤ n1, n ≤ n0, n0 ≤ n1, (∃ n0. n ≤ n0 ∧ f(n1) = f(n0)) → f(n1) ≤ r0 ⊦ |
r0 < f(n1), n0 ≤ n1, n ≤ n0, n ≤ n1 ⊦ ∃ n0. n ≤ n0 ∧ f(n1) = f(n0)
Used simplifier rules: ⊦ r < r0 → (r0 ≤ r ↔ false); (as)
| r0 < f(n1), n0 ≤ n1, n ≤ n0, n ≤ n1 ⊦ ∃ n0. n ≤ n0 ∧ f(n1) = f(n0) |
Used terms: n1
| ¬ n ≤ n0, bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
n0 < n, bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ m ≤ n ↔ ¬ n < m; (ss)
| n0 < n, bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
n2.+1 = n - n0, n0 < n, ∀ n, n0, f. n2 = n - n0 ∧ n0 < n ∧ bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) → bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: Nat freely generated by 0, +1; ⊦ n < m → m - n ≠ 0; (s)
| n2.+1 = n - n0, n0 < n, ∀ n, n0, f. n2 = n - n0 ∧ n0 < n ∧ bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) → bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
n2 + 1 = n - n0, n0 < n, ∀ n, n0, f. n2 = n - n0 ∧ n0 < n ∧ bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) → bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: ⊦ m.+1 = m + 1; (s)
| n2 + 1 = n - n0, n0 < n, ∀ n, n0, f. n2 = n - n0 ∧ n0 < n ∧ bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) → bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
n2 + 1 = n3, n = n3 + n0, n0 < n, n0 ≤ n, ∀ n, n0, f. n2 = n - n0 ∧ n0 < n ∧ bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) → bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: ⊦ m < n → m ≤ n; (s) n ≤ m ⊦ n0 = m - n ↔ m = n0 + n; (elim) Used terms: n, n0, n3
| n2 + 1 = n3, n = n3 + n0, n0 < n, n0 ≤ n, ∀ n, n0, f. n2 = n - n0 ∧ n0 < n ∧ bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) → bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
∀ n, n0, f. n2 = n - n0 ∧ n0 < n ∧ bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) → bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m + 1 ≤ n ↔ m < n; (s) ⊦ ¬ m + n < m; (s) ⊦ m < n + 1 ↔ ¬ n < m; (s) ⊦ m < n → m ≤ n; (s)
| ∀ n, n0, f. n2 = n - n0 ∧ n0 < n ∧ bounded≤(λ r. ∃ n1. n ≤ n1 ∧ r = f(n1)) → bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
n2 = n0 + n2 - n0 ∧ n0 < n0 + n2 ∧ bounded≤(λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) → bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used terms: n0 + n2, n0, f
| n2 = n0 + n2 - n0 ∧ n0 < n0 + n2 ∧ bounded≤(λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) → bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
n2 ≠ 0 ∧ bounded≤(λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) → bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m < m + n ↔ n ≠ 0; (s) ⊦ m + n - m = n; (s)
| n2 ≠ 0 ∧ bounded≤(λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) → bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
bounded≤(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ⊦ n2 ≠ 0 ∧ bounded≤(λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
| bounded≤(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ⊦ n2 ≠ 0 ∧ bounded≤(λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
n2 = 0, bounded≤(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
bounded≤(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1))
| n2 = 0, bounded≤(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
bounded≤(λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ n + 0 = n; (s)
| bounded≤(λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
⊦ bounded≤(rset) ↔ (∃ r0. rset ≤ r0)
∃ r0. (λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used terms: λ r. ∃ n1. n0 < n1 ∧ r = f(n1)
| ⊦ bounded≤(rset) ↔ (∃ r0. rset ≤ r0) |
| ∃ r0. (λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
(λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
| (λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
⊦ bounded≤(rset) ↔ (∃ r0. rset ≤ r0)
(λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0
Used terms: λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)
| ⊦ bounded≤(rset) ↔ (∃ r0. rset ≤ r0) |
| (λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0 |
(λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0, (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0
Used terms: r0
| (λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0, (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0 |
⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0)
(λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∀ r. (∃ n1. n0 ≤ n1 ∧ r = f(n1)) → r ≤ r0, ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0
Used terms: λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1), r0
| ⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0) |
| (λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∀ r. (∃ n1. n0 ≤ n1 ∧ r = f(n1)) → r ≤ r0, ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0 |
r0 < f(n1), n0 ≤ n1, (λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0
Used simplifier rules: ⊦ r ≤ r0 ↔ ¬ r0 < r; (ss)
| r0 < f(n1), n0 ≤ n1, (λ r. ∃ n1. n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0 |
⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0)
r0 < f(n1), n0 ≤ n1, ∀ r. (∃ n1. n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0
Used terms: λ r. ∃ n1. n0 < n1 ∧ r = f(n1), r0
| ⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0) |
| r0 < f(n1), n0 ≤ n1, ∀ r. (∃ n1. n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0 |
r0 < f(n1), n0 ≤ n1, (∃ n. n0 < n ∧ f(n1) = f(n)) → f(n1) ≤ r0, ∀ r. (∃ n1. n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0
Used terms: f(n1)
| r0 < f(n1), n0 ≤ n1, (∃ n. n0 < n ∧ f(n1) = f(n)) → f(n1) ≤ r0, ∀ r. (∃ n1. n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0 |
r0 < f(n1), n0 ≤ n1, ∀ r. (∃ n1. n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0, ∃ n. n0 < n ∧ f(n1) = f(n)
Used simplifier rules: ⊦ r < r0 → (r0 ≤ r ↔ false); (as)
| r0 < f(n1), n0 ≤ n1, ∀ r. (∃ n1. n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0, ∃ n. n0 < n ∧ f(n1) = f(n) |
r0 < f(n1), n0 ≤ n1, ∀ r. (∃ n1. n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n0 < n ∧ f(n1) = f(n), ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0, n0 < n1 ∧ f(n1) = f(n1)
Used terms: n1
| r0 < f(n1), n0 ≤ n1, ∀ r. (∃ n1. n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n0 < n ∧ f(n1) = f(n), ∃ r0. (λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) ≤ r0, n0 < n1 ∧ f(n1) = f(n1) |
r0 < f(n1), ∀ r. (∃ n. n1 < n ∧ r = f(n)) → r ≤ r0 ⊦ ∃ n. n1 < n ∧ f(n1) = f(n), ∃ r0. (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ r0
Used simplifier rules: ⊦ m ≤ m; (s) ⊦ m ≤ n → (n ≤ m ↔ m = n); (s) ⊦ m < n ↔ ¬ n ≤ m; (ss)
| r0 < f(n1), ∀ r. (∃ n. n1 < n ∧ r = f(n)) → r ≤ r0 ⊦ ∃ n. n1 < n ∧ f(n1) = f(n), ∃ r0. (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ r0 |
r0 < f(n1), ∀ r. (∃ n. n1 < n ∧ r = f(n)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ r0, ∃ n. n1 < n ∧ f(n1) = f(n), (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ f(n1)
Used terms: f(n1)
| r0 < f(n1), ∀ r. (∃ n. n1 < n ∧ r = f(n)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ r0, ∃ n. n1 < n ∧ f(n1) = f(n), (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ f(n1) |
⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0)
r0 < f(n1), ∀ r. (∃ n. n1 < n ∧ r = f(n)) → r ≤ r0 ⊦ ∀ r. (∃ n. n1 ≤ n ∧ r = f(n)) → r ≤ f(n1), ∃ n. n1 < n ∧ f(n1) = f(n), ∃ r0. (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ r0
Used terms: λ r. ∃ n. n1 ≤ n ∧ r = f(n), f(n1)
| ⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0) |
| r0 < f(n1), ∀ r. (∃ n. n1 < n ∧ r = f(n)) → r ≤ r0 ⊦ ∀ r. (∃ n. n1 ≤ n ∧ r = f(n)) → r ≤ f(n1), ∃ n. n1 < n ∧ f(n1) = f(n), ∃ r0. (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ r0 |
r0 < f(n1), f(n1) < f(n), r0 < f(n), n1 ≤ n, ∀ r. (∃ n. n1 < n ∧ r = f(n)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ r0, ∃ n. n1 < n ∧ f(n1) = f(n)
Used simplifier rules: trans: ⊦ r < r0 ∧ r0 < r1 → r < r1; (forward) from specification real-basic ⊦ r ≤ r0 ↔ ¬ r0 < r; (ss)
| r0 < f(n1), f(n1) < f(n), r0 < f(n), n1 ≤ n, ∀ r. (∃ n. n1 < n ∧ r = f(n)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ r0, ∃ n. n1 < n ∧ f(n1) = f(n) |
r0 < f(n), f(n1) < f(n), r0 < f(n1), n1 ≤ n, (∃ n0. n1 < n0 ∧ f(n) = f(n0)) → f(n) ≤ r0, ∀ r. (∃ n. n1 < n ∧ r = f(n)) → r ≤ r0 ⊦ ∃ n. n1 < n ∧ f(n1) = f(n), ∃ r0. (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ r0
Used terms: f(n)
| r0 < f(n), f(n1) < f(n), r0 < f(n1), n1 ≤ n, (∃ n0. n1 < n0 ∧ f(n) = f(n0)) → f(n) ≤ r0, ∀ r. (∃ n. n1 < n ∧ r = f(n)) → r ≤ r0 ⊦ ∃ n. n1 < n ∧ f(n1) = f(n), ∃ r0. (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ r0 |
r0 < f(n1), f(n1) < f(n), r0 < f(n), n1 ≤ n, ∀ r. (∃ n. n1 < n ∧ r = f(n)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ r0, ∃ n. n1 < n ∧ f(n1) = f(n), ∃ n0. n1 < n0 ∧ f(n) = f(n0)
Used simplifier rules: ⊦ r < r0 → (r0 ≤ r ↔ false); (as)
| r0 < f(n1), f(n1) < f(n), r0 < f(n), n1 ≤ n, ∀ r. (∃ n. n1 < n ∧ r = f(n)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n. n1 ≤ n ∧ r = f(n)) ≤ r0, ∃ n. n1 < n ∧ f(n1) = f(n), ∃ n0. n1 < n0 ∧ f(n) = f(n0) |
Used simplifier rules: ⊦ m < n ↔ ¬ n ≤ m; (ss) ⊦ m ≤ n → (n ≤ m ↔ m = n); (s) ⊦ ¬ r < r; (s) Used terms: n
| bounded≤(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) |
⊦ bounded≤(rset) ↔ (∃ r0. rset ≤ r0)
∃ r0. (λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ bounded≤(λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used terms: λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)
| ⊦ bounded≤(rset) ↔ (∃ r0. rset ≤ r0) |
| ∃ r0. (λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ bounded≤(λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1))
| (λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), bounded≤(λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) |
⊦ bounded≤(rset) ↔ (∃ r0. rset ≤ r0)
(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used terms: λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)
| ⊦ bounded≤(rset) ↔ (∃ r0. rset ≤ r0) |
| (λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0
Used terms: r0
| (λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0 |
⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0)
(λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∀ r. (∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) → r ≤ r0, ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used terms: λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1), r0
| ⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0) |
| (λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∀ r. (∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) → r ≤ r0, ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
r0 < f(n1), n0 + n2 ≤ n1, (λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: ⊦ r ≤ r0 ↔ ¬ r0 < r; (ss)
| r0 < f(n1), n0 + n2 ≤ n1, (λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1)) ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0)
r0 < f(n1), n0 + n2 ≤ n1, ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used terms: λ r. ∃ n1. n2 + n0 < n1 ∧ r = f(n1), r0
| ⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0) |
| r0 < f(n1), n0 + n2 ≤ n1, ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
r0 < f(n1), n0 + n2 ≤ n1, (∃ n. n2 + n0 < n ∧ f(n1) = f(n)) → f(n1) ≤ r0, ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used terms: f(n1)
| r0 < f(n1), n0 + n2 ≤ n1, (∃ n. n2 + n0 < n ∧ f(n1) = f(n)) → f(n1) ≤ r0, ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
r0 < f(n1), n0 + n2 ≤ n1, ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, ∃ n. n2 + n0 < n ∧ f(n1) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: ⊦ r < r0 → (r0 ≤ r ↔ false); (as)
| r0 < f(n1), n0 + n2 ≤ n1, ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, ∃ n. n2 + n0 < n ∧ f(n1) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
r0 < f(n1), n0 + n2 ≤ n1, ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n1) = f(n), ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, n2 + n0 < n1 ∧ f(n1) = f(n1), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used terms: n1
| r0 < f(n1), n0 + n2 ≤ n1, ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n1) = f(n), ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, n2 + n0 < n1 ∧ f(n1) = f(n1), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
r0 < f(n2 + n0), ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m ≤ m; (s) ⊦ m + n ≤ m + n0 ↔ n ≤ n0; (s) ⊦ m ≤ n → (n ≤ m ↔ m = n); (s) ⊦ m < n ↔ ¬ n ≤ m; (ss)
| r0 < f(n2 + n0), ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), ∃ r0. (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ r0, bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
r0 < f(n2 + n0), ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ f(n2 + n0)
Used terms: f(n2 + n0)
| r0 < f(n2 + n0), ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)), (λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) ≤ f(n2 + n0) |
⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0)
r0 < f(n2 + n0), ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∀ r. (∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) → r ≤ f(n2 + n0), ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used terms: λ r. ∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1), f(n2 + n0)
| ⊦ rset ≤ r0 ↔ (∀ r. rset(r) → r ≤ r0) |
| r0 < f(n2 + n0), ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∀ r. (∃ n1. n0 + n2 ≤ n1 ∧ r = f(n1)) → r ≤ f(n2 + n0), ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
r0 < f(n2 + n0), f(n2 + n0) < f(n1), r0 < f(n1), n0 + n2 ≤ n1, ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: trans: ⊦ r < r0 ∧ r0 < r1 → r < r1; (forward) from specification real-basic ⊦ r ≤ r0 ↔ ¬ r0 < r; (ss)
| r0 < f(n2 + n0), f(n2 + n0) < f(n1), r0 < f(n1), n0 + n2 ≤ n1, ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
⊦ m ≤ n → (n ≤ m ↔ m = n)
r0 < f(n1), f(n2 + n0) < f(n1), r0 < f(n2 + n0), n0 + n2 ≤ n1, ¬ n1 ≤ n0 + n2, ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: ⊦ m + n ≤ m + n0 ↔ n ≤ n0; (s) ⊦ m ≤ m; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic ⊦ ¬ r < r; (s) Used terms: n0 + n2, n1
| ⊦ m ≤ n → (n ≤ m ↔ m = n) |
| r0 < f(n1), f(n2 + n0) < f(n1), r0 < f(n2 + n0), n0 + n2 ≤ n1, ¬ n1 ≤ n0 + n2, ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
n0 + n2 ≠ n1, n0 + n2 < n1, r0 < f(n1), f(n2 + n0) < f(n1), r0 < f(n2 + n0), ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ m ≠ n → (m ≤ n ↔ m < n); (s) ⊦ m ≤ n → (n ≤ m ↔ m = n); (s)
| n0 + n2 ≠ n1, n0 + n2 < n1, r0 < f(n1), f(n2 + n0) < f(n1), r0 < f(n2 + n0), ∀ r. (∃ n1. n2 + n0 < n1 ∧ r = f(n1)) → r ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
n0 + n2 ≠ n1, r0 < f(n2 + n0), f(n2 + n0) < f(n1), r0 < f(n1), n0 + n2 < n1, (∃ n. n2 + n0 < n ∧ f(n1) = f(n)) → f(n1) ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used terms: f(n1)
| n0 + n2 ≠ n1, r0 < f(n2 + n0), f(n2 + n0) < f(n1), r0 < f(n1), n0 + n2 < n1, (∃ n. n2 + n0 < n ∧ f(n1) = f(n)) → f(n1) ≤ r0 ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
n0 + n2 ≠ n1, n0 + n2 < n1, r0 < f(n1), f(n2 + n0) < f(n1), r0 < f(n2 + n0) ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), ∃ n. n2 + n0 < n ∧ f(n1) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1))
Used simplifier rules: ⊦ r < r0 → (r0 ≤ r ↔ false); (as)
| n0 + n2 ≠ n1, n0 + n2 < n1, r0 < f(n1), f(n2 + n0) < f(n1), r0 < f(n2 + n0) ⊦ ∃ n. n2 + n0 < n ∧ f(n2 + n0) = f(n), ∃ n. n2 + n0 < n ∧ f(n1) = f(n), bounded≤(λ r. ∃ n1. n0 ≤ n1 ∧ r = f(n1)) |
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic Used terms: n1
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.