| infgraph(g), allreachable(g), finroot(g), finout(g) ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a) |
allreachable(g), finout(g), finroot(g), infgraph(g) ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a)
| allreachable(g), finout(g), finroot(g), infgraph(g) ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a) |
⊦ finroot(g) ↔ (∃ s. ∀ a. isroot(g)(a) ↔ a ∈ s)
allreachable(g), finout(g), infgraph(g), ∃ s. ∀ a. isroot(g)(a) ↔ a ∈ s ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a)
Used terms: g
| ⊦ finroot(g) ↔ (∃ s. ∀ a. isroot(g)(a) ↔ a ∈ s) |
| allreachable(g), finout(g), infgraph(g), ∃ s. ∀ a. isroot(g)(a) ↔ a ∈ s ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a) |
∀ a. isroot(g)(a) ↔ a ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)) ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a)
Used simplifier rules: infgraph-def: ⊦ infgraph(g) ↔ (∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s); finout-def: ⊦ finout(g) ↔ (∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s); allreachable-def: ⊦ allreachable(g) ↔ (∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)));
| ∀ a. isroot(g)(a) ↔ a ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)) ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a) |
finout(g), ∀ a. a ∈ s → ¬ haspathanylength(g)(a) ⊦ ∃ s0. ∀ b. (∃ a. a ∈ s ∧ path(g)(a, b)) ↔ b ∈ s0
∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a), finout(g) ∧ (∀ a. a ∈ s → ¬ haspathanylength(g)(a))
∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s, ∃ s0. ∀ b. (∃ a. a ∈ s ∧ path(g)(a, b)) ↔ b ∈ s0 ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a)
Used terms: g, s
| finout(g), ∀ a. a ∈ s → ¬ haspathanylength(g)(a) ⊦ ∃ s0. ∀ b. (∃ a. a ∈ s ∧ path(g)(a, b)) ↔ b ∈ s0 |
| ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a), finout(g) ∧ (∀ a. a ∈ s → ¬ haspathanylength(g)(a)) |
# s ≠ 0, s ≠ ∅, haspathanylength(g)(a), a ∈ s, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a)
Used simplifier rules: finout-def: ⊦ finout(g) ↔ (∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s); size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic
| # s ≠ 0, s ≠ ∅, haspathanylength(g)(a), a ∈ s, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a) |
# s ≠ 0, s ≠ ∅, haspathanylength(g)(a), a ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)) ⊦ isroot(g)(a) ∧ haspathanylength(g)(a)
Used terms: a
| # s ≠ 0, s ≠ ∅, haspathanylength(g)(a), a ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)) ⊦ isroot(g)(a) ∧ haspathanylength(g)(a) |
# s ≠ 0, s ≠ ∅, haspathanylength(g)(a), a ∈ s, ¬ isroot(g)(a), ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s ⊦
| # s ≠ 0, s ≠ ∅, haspathanylength(g)(a), a ∈ s, ¬ isroot(g)(a), ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s ⊦ |
Used terms: a
| ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s, ∃ s0. ∀ b. (∃ a. a ∈ s ∧ path(g)(a, b)) ↔ b ∈ s0 ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a) |
∀ b. (∃ a. a ∈ s ∧ path(g)(a, b)) ↔ b ∈ s0, ∀ a. isroot(g)(a) ↔ a ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)) ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a)
| ∀ b. (∃ a. a ∈ s ∧ path(g)(a, b)) ↔ b ∈ s0, ∀ a. isroot(g)(a) ↔ a ∈ s, ∀ s. ∃ a. dom(g)(a) ∧ ¬ a ∈ s, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)) ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a) |
∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s, ∀ b. (∃ a. a ∈ s ∧ path(g)(a, b)) ↔ b ∈ s0, ∃ a. dom(g)(a) ∧ ¬ a ∈ s0 ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a)
Used terms: s0
| ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s, ∀ b. (∃ a. a ∈ s ∧ path(g)(a, b)) ↔ b ∈ s0, ∃ a. dom(g)(a) ∧ ¬ a ∈ s0 ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a) |
dom(g)(a), ¬ a ∈ s0, ∀ b. (∃ a. a ∈ s ∧ path(g)(a, b)) ↔ b ∈ s0, ∀ a. isroot(g)(a) ↔ a ∈ s, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)) ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a)
| dom(g)(a), ¬ a ∈ s0, ∀ b. (∃ a. a ∈ s ∧ path(g)(a, b)) ↔ b ∈ s0, ∀ a. isroot(g)(a) ↔ a ∈ s, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)) ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a) |
dom(g)(a), ¬ a ∈ s0, (∃ a0. a0 ∈ s ∧ path(g)(a0, a)) ↔ a ∈ s0, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a)
Used terms: a
| dom(g)(a), ¬ a ∈ s0, (∃ a0. a0 ∈ s ∧ path(g)(a0, a)) ↔ a ∈ s0, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a) |
dom(g)(a), ¬ a ∈ s0, ∀ a. isroot(g)(a) ↔ a ∈ s, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)) ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a), ∃ a0. a0 ∈ s ∧ path(g)(a0, a)
| dom(g)(a), ¬ a ∈ s0, ∀ a. isroot(g)(a) ↔ a ∈ s, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ b. dom(g)(b) → (∃ a. isroot(g)(a) ∧ path(g)(a, b)) ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a), ∃ a0. a0 ∈ s ∧ path(g)(a0, a) |
dom(g)(a), ¬ a ∈ s0, dom(g)(a) → (∃ a0. isroot(g)(a0) ∧ path(g)(a0, a)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s ⊦ ∃ a0. a0 ∈ s ∧ path(g)(a0, a), ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a)
Used terms: a
| dom(g)(a), ¬ a ∈ s0, dom(g)(a) → (∃ a0. isroot(g)(a0) ∧ path(g)(a0, a)), ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s, ∀ a. isroot(g)(a) ↔ a ∈ s ⊦ ∃ a0. a0 ∈ s ∧ path(g)(a0, a), ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a) |
dom(g)(a), isroot(g)(a0), path(g)(a0, a), ¬ a ∈ s0, ∀ a. isroot(g)(a) ↔ a ∈ s, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a), ∃ a0. a0 ∈ s ∧ path(g)(a0, a)
| dom(g)(a), isroot(g)(a0), path(g)(a0, a), ¬ a ∈ s0, ∀ a. isroot(g)(a) ↔ a ∈ s, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s ⊦ ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a), ∃ a0. a0 ∈ s ∧ path(g)(a0, a) |
isroot(g)(a0) ↔ a0 ∈ s, dom(g)(a), isroot(g)(a0), path(g)(a0, a), ¬ a ∈ s0, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s ⊦ ∃ a0. a0 ∈ s ∧ path(g)(a0, a), ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a)
Used terms: a0
| isroot(g)(a0) ↔ a0 ∈ s, dom(g)(a), isroot(g)(a0), path(g)(a0, a), ¬ a ∈ s0, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s ⊦ ∃ a0. a0 ∈ s ∧ path(g)(a0, a), ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a) |
# s ≠ 0, s ≠ ∅, dom(g)(a), isroot(g)(a0), path(g)(a0, a), a0 ∈ s, ¬ a ∈ s0, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s ⊦ ∃ a0. a0 ∈ s ∧ path(g)(a0, a), ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a)
Used simplifier rules: size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic
| # s ≠ 0, s ≠ ∅, dom(g)(a), isroot(g)(a0), path(g)(a0, a), a0 ∈ s, ¬ a ∈ s0, ∀ a. ∃ s. ∀ b. edge(g)(a, b) ↔ b ∈ s ⊦ ∃ a0. a0 ∈ s ∧ path(g)(a0, a), ∃ a. isroot(g)(a) ∧ haspathanylength(g)(a) |
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.