| ⊦ n ≠ 0 → (rtc(n, a, b) ↔ (∃ c. rtc(n - 1, a, c) ∧ p(c, b))) |
n ≠ 0 ⊦ rtc(n, a, b) ↔ (∃ c. rtc(n - 1, a, c) ∧ p(c, b))
| n ≠ 0 ⊦ rtc(n, a, b) ↔ (∃ c. rtc(n - 1, a, c) ∧ p(c, b)) |
n ≠ 0 ⊦ rtc(n, a, b) ↔ (∃ c. rtc(n - 1, a, c) ∧ p(c, b))
| n ≠ 0 ⊦ rtc(n, a, b) ↔ (∃ c. rtc(n - 1, a, c) ∧ p(c, b)) |
n = n0 + 1, n ≠ 0 ⊦ rtc(n, a, b) ↔ (∃ c. rtc(n0, a, c) ∧ p(c, b))
Used simplifier rules: n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: n, m
| n = n0 + 1, n ≠ 0 ⊦ rtc(n, a, b) ↔ (∃ c. rtc(n0, a, c) ∧ p(c, b)) |
⊦ (∃ c. p(a, c) ∧ rtc(n0, c, b)) ↔ (∃ c. rtc(n0, a, c) ∧ p(c, b))
Used simplifier rules: rtc-rec: ⊦ rtc(n + 1, a, b) ↔ (∃ c. p(a, c) ∧ rtc(n, c, b)); c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m + 1 ≠ 0; (s)
| ⊦ (∃ c. p(a, c) ∧ rtc(n0, c, b)) ↔ (∃ c. rtc(n0, a, c) ∧ p(c, b)) |
∃ c. p(a, c) ∧ rtc(n0, c, b) ⊦ ∃ c. rtc(n0, a, c) ∧ p(c, b)
∃ c. rtc(n0, a, c) ∧ p(c, b) ⊦ ∃ c. p(a, c) ∧ rtc(n0, c, b)
| ∃ c. p(a, c) ∧ rtc(n0, c, b) ⊦ ∃ c. rtc(n0, a, c) ∧ p(c, b) |
p(a, b0), rtc(n0, b0, b) ⊦ ∃ c. rtc(n0, a, c) ∧ p(c, b)
| p(a, b0), rtc(n0, b0, b) ⊦ ∃ c. rtc(n0, a, c) ∧ p(c, b) |
p(a, b0), rtc(n +1, b0, b), ∀ a, b0, b. p(a, b0) ∧ rtc(n, b0, b) → (∃ c. rtc(n, a, c) ∧ p(c, b)) ⊦ ∃ c. rtc(n +1, a, c) ∧ p(c, b)
Used simplifier rules: rtc-base: ⊦ rtc(0, a, b) ↔ a = b; nat freely generated by 0, +1;;
| p(a, b0), rtc(n +1, b0, b), ∀ a, b0, b. p(a, b0) ∧ rtc(n, b0, b) → (∃ c. rtc(n, a, c) ∧ p(c, b)) ⊦ ∃ c. rtc(n +1, a, c) ∧ p(c, b) |
p(a, b0), p(b0, a0), rtc(n, a0, b), ∀ a, b0, b. p(a, b0) ∧ rtc(n, b0, b) → (∃ c. rtc(n, a, c) ∧ p(c, b)) ⊦ ∃ c. (∃ c0. p(a, c0) ∧ rtc(n, c0, c)) ∧ p(c, b)
Used simplifier rules: rtc-rec: ⊦ rtc(n + 1, a, b) ↔ (∃ c. p(a, c) ∧ rtc(n, c, b)); c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m +1 = m + 1; (s)
| p(a, b0), p(b0, a0), rtc(n, a0, b), ∀ a, b0, b. p(a, b0) ∧ rtc(n, b0, b) → (∃ c. rtc(n, a, c) ∧ p(c, b)) ⊦ ∃ c. (∃ c0. p(a, c0) ∧ rtc(n, c0, c)) ∧ p(c, b) |
p(b0, a0), p(a, b0), rtc(n, a0, b), p(b0, a0) ∧ rtc(n, a0, b) → (∃ c. rtc(n, b0, c) ∧ p(c, b)), ∀ a, b0, b. p(a, b0) ∧ rtc(n, b0, b) → (∃ c. rtc(n, a, c) ∧ p(c, b)) ⊦ ∃ c. (∃ c0. p(a, c0) ∧ rtc(n, c0, c)) ∧ p(c, b)
Used terms: b0, a0, b
| p(b0, a0), p(a, b0), rtc(n, a0, b), p(b0, a0) ∧ rtc(n, a0, b) → (∃ c. rtc(n, b0, c) ∧ p(c, b)), ∀ a, b0, b. p(a, b0) ∧ rtc(n, b0, b) → (∃ c. rtc(n, a, c) ∧ p(c, b)) ⊦ ∃ c. (∃ c0. p(a, c0) ∧ rtc(n, c0, c)) ∧ p(c, b) |
p(a, b0), p(b0, a0), p(a1, b), rtc(n, a0, b), rtc(n, b0, a1), ∀ a, b0, b. p(a, b0) ∧ rtc(n, b0, b) → (∃ c. rtc(n, a, c) ∧ p(c, b)) ⊦ ∃ c. (∃ c0. p(a, c0) ∧ rtc(n, c0, c)) ∧ p(c, b)
| p(a, b0), p(b0, a0), p(a1, b), rtc(n, a0, b), rtc(n, b0, a1), ∀ a, b0, b. p(a, b0) ∧ rtc(n, b0, b) → (∃ c. rtc(n, a, c) ∧ p(c, b)) ⊦ ∃ c. (∃ c0. p(a, c0) ∧ rtc(n, c0, c)) ∧ p(c, b) |
p(a1, b), p(b0, a0), p(a, b0), rtc(n, b0, a1), rtc(n, a0, b), ∀ a, b0, b. p(a, b0) ∧ rtc(n, b0, b) → (∃ c. rtc(n, a, c) ∧ p(c, b)) ⊦ (∃ c0. p(a, c0) ∧ rtc(n, c0, a1)) ∧ p(a1, b)
Used terms: a1
| p(a1, b), p(b0, a0), p(a, b0), rtc(n, b0, a1), rtc(n, a0, b), ∀ a, b0, b. p(a, b0) ∧ rtc(n, b0, b) → (∃ c. rtc(n, a, c) ∧ p(c, b)) ⊦ (∃ c0. p(a, c0) ∧ rtc(n, c0, a1)) ∧ p(a1, b) |
p(a, b0), p(b0, a0), p(a1, b), rtc(n, a0, b), rtc(n, b0, a1), ∀ a, b0, b. p(a, b0) ∧ rtc(n, b0, b) → (∃ c. rtc(n, a, c) ∧ p(c, b)) ⊦ ∃ c0. p(a, c0) ∧ rtc(n, c0, a1)
| p(a, b0), p(b0, a0), p(a1, b), rtc(n, a0, b), rtc(n, b0, a1), ∀ a, b0, b. p(a, b0) ∧ rtc(n, b0, b) → (∃ c. rtc(n, a, c) ∧ p(c, b)) ⊦ ∃ c0. p(a, c0) ∧ rtc(n, c0, a1) |
Used terms: b0
| ∃ c. rtc(n0, a, c) ∧ p(c, b) ⊦ ∃ c. p(a, c) ∧ rtc(n0, c, b) |
p(b0, b), rtc(n0, a, b0) ⊦ ∃ c. p(a, c) ∧ rtc(n0, c, b)
| p(b0, b), rtc(n0, a, b0) ⊦ ∃ c. p(a, c) ∧ rtc(n0, c, b) |
p(b0, b), rtc(n +1, a, b0), ∀ b0, b, a. p(b0, b) ∧ rtc(n, a, b0) → (∃ c. p(a, c) ∧ rtc(n, c, b)) ⊦ ∃ c. p(a, c) ∧ rtc(n +1, c, b)
Used simplifier rules: rtc-base: ⊦ rtc(0, a, b) ↔ a = b; nat freely generated by 0, +1;;
| p(b0, b), rtc(n +1, a, b0), ∀ b0, b, a. p(b0, b) ∧ rtc(n, a, b0) → (∃ c. p(a, c) ∧ rtc(n, c, b)) ⊦ ∃ c. p(a, c) ∧ rtc(n +1, c, b) |
p(b0, b), p(a, b1), rtc(n, b1, b0), ∀ b0, b, a. p(b0, b) ∧ rtc(n, a, b0) → (∃ c. p(a, c) ∧ rtc(n, c, b)) ⊦ ∃ c. p(a, c) ∧ (∃ c0. p(c, c0) ∧ rtc(n, c0, b))
Used simplifier rules: rtc-rec: ⊦ rtc(n + 1, a, b) ↔ (∃ c. p(a, c) ∧ rtc(n, c, b)); c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m +1 = m + 1; (s)
| p(b0, b), p(a, b1), rtc(n, b1, b0), ∀ b0, b, a. p(b0, b) ∧ rtc(n, a, b0) → (∃ c. p(a, c) ∧ rtc(n, c, b)) ⊦ ∃ c. p(a, c) ∧ (∃ c0. p(c, c0) ∧ rtc(n, c0, b)) |
p(a, b1), p(b0, b), rtc(n, b1, b0), p(b0, b) ∧ rtc(n, b1, b0) → (∃ c. p(b1, c) ∧ rtc(n, c, b)), ∀ b0, b, a. p(b0, b) ∧ rtc(n, a, b0) → (∃ c. p(a, c) ∧ rtc(n, c, b)) ⊦ ∃ c. p(a, c) ∧ (∃ c0. p(c, c0) ∧ rtc(n, c0, b))
Used terms: b0, b, b1
| p(a, b1), p(b0, b), rtc(n, b1, b0), p(b0, b) ∧ rtc(n, b1, b0) → (∃ c. p(b1, c) ∧ rtc(n, c, b)), ∀ b0, b, a. p(b0, b) ∧ rtc(n, a, b0) → (∃ c. p(a, c) ∧ rtc(n, c, b)) ⊦ ∃ c. p(a, c) ∧ (∃ c0. p(c, c0) ∧ rtc(n, c0, b)) |
p(b0, b), p(a, b1), p(b1, a0), rtc(n, b1, b0), rtc(n, a0, b), ∀ b0, b, a. p(b0, b) ∧ rtc(n, a, b0) → (∃ c. p(a, c) ∧ rtc(n, c, b)) ⊦ ∃ c. p(a, c) ∧ (∃ c0. p(c, c0) ∧ rtc(n, c0, b))
| p(b0, b), p(a, b1), p(b1, a0), rtc(n, b1, b0), rtc(n, a0, b), ∀ b0, b, a. p(b0, b) ∧ rtc(n, a, b0) → (∃ c. p(a, c) ∧ rtc(n, c, b)) ⊦ ∃ c. p(a, c) ∧ (∃ c0. p(c, c0) ∧ rtc(n, c0, b)) |
p(b1, a0), p(a, b1), p(b0, b), rtc(n, a0, b), rtc(n, b1, b0), ∀ b0, b, a. p(b0, b) ∧ rtc(n, a, b0) → (∃ c. p(a, c) ∧ rtc(n, c, b)) ⊦ ∃ c. p(a, c) ∧ (∃ c0. p(c, c0) ∧ rtc(n, c0, b)), p(a, b1) ∧ (∃ c0. p(b1, c0) ∧ rtc(n, c0, b))
Used terms: b1
| p(b1, a0), p(a, b1), p(b0, b), rtc(n, a0, b), rtc(n, b1, b0), ∀ b0, b, a. p(b0, b) ∧ rtc(n, a, b0) → (∃ c. p(a, c) ∧ rtc(n, c, b)) ⊦ ∃ c. p(a, c) ∧ (∃ c0. p(c, c0) ∧ rtc(n, c0, b)), p(a, b1) ∧ (∃ c0. p(b1, c0) ∧ rtc(n, c0, b)) |
p(b0, b), p(a, b1), p(b1, a0), rtc(n, b1, b0), rtc(n, a0, b), ∀ b0, b, a. p(b0, b) ∧ rtc(n, a, b0) → (∃ c. p(a, c) ∧ rtc(n, c, b)) ⊦ ∃ c. p(a, c) ∧ (∃ c0. p(c, c0) ∧ rtc(n, c0, b)), ∃ c0. p(b1, c0) ∧ rtc(n, c0, b)
| p(b0, b), p(a, b1), p(b1, a0), rtc(n, b1, b0), rtc(n, a0, b), ∀ b0, b, a. p(b0, b) ∧ rtc(n, a, b0) → (∃ c. p(a, c) ∧ rtc(n, c, b)) ⊦ ∃ c. p(a, c) ∧ (∃ c0. p(c, c0) ∧ rtc(n, c0, b)), ∃ c0. p(b1, c0) ∧ rtc(n, c0, b) |
Used terms: a0
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.