| ⊦ ext !(⌜af⌝ ) = ⌜e '⌝ + β ↔ (∃ al, a, af0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(⌜af0⌝ ) = β) |
⊦ ext !(α) = ⌜e '⌝ + β ↔ (∃ al, a, α0. α = ⌜al⌝ + ⌜a '⌝ + α0 ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(α0) = β)
ext !(⌜af⌝ ) = ⌜e '⌝ + β ↔ (∃ al, a, α0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + α0 ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(α0) = β) ⊦ ext !(⌜af⌝ ) = ⌜e '⌝ + β ↔ (∃ al, a, af0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(⌜af0⌝ ) = β)
Used terms: ext, ⌜af⌝ , e, β
| ⊦ ext !(α) = ⌜e '⌝ + β ↔ (∃ al, a, α0. α = ⌜al⌝ + ⌜a '⌝ + α0 ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(α0) = β) |
| ext !(⌜af⌝ ) = ⌜e '⌝ + β ↔ (∃ al, a, α0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + α0 ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(α0) = β) ⊦ ext !(⌜af⌝ ) = ⌜e '⌝ + β ↔ (∃ al, a, af0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(⌜af0⌝ ) = β) |
ext !(⌜af⌝ ) = ⌜e '⌝ + β, ext !(⌜af⌝ ) = ⌜e '⌝ + β ↔ (∃ al, a, α0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + α0 ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(α0) = β) ⊦ ∃ al, a, af0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(⌜af0⌝ ) = β
ext !(⌜af⌝ ) ≠ ⌜e '⌝ + β, ext !(⌜af⌝ ) = ⌜e '⌝ + β ↔ (∃ al, a, α0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + α0 ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(α0) = β), ∃ al, a, af0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(⌜af0⌝ ) = β ⊦
| ext !(⌜af⌝ ) = ⌜e '⌝ + β, ext !(⌜af⌝ ) = ⌜e '⌝ + β ↔ (∃ al, a, α0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + α0 ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(α0) = β) ⊦ ∃ al, a, af0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(⌜af0⌝ ) = β |
ext !(⌜al⌝ ) = [], ext !(⌜af⌝ ) = ⌜e '⌝ + ext !(α0), ext(a) = Some(e), ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + α0 ⊦ ∃ al, a, af0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(⌜af0⌝ ) = ext !(α0)
| ext !(⌜al⌝ ) = [], ext !(⌜af⌝ ) = ⌜e '⌝ + ext !(α0), ext(a) = Some(e), ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + α0 ⊦ ∃ al, a, af0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(⌜af0⌝ ) = ext !(α0) |
ext !(⌜af⌝ ) = ⌜e '⌝ + ext !(α0), ext !(⌜al⌝ ) = [], ext(a) = Some(e), α0 = ⌜af1⌝ , ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + α0 ⊦ ∃ al, a, af0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(⌜af0⌝ ) = ext !(α0)
Used simplifier rules: Stream('a) freely generated by ⌜ ⌝, ⌜ ⌝;; ⊦ σ0 + ⌜x⌝ = ⌜nf0⌝ ↔ σ0 = ⌜nf0⌝ ; (s) ⊦ ⌜x⌝ ≠ ⌜nf⌝ ; (s) append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream
| ext !(⌜af⌝ ) = ⌜e '⌝ + ext !(α0), ext !(⌜al⌝ ) = [], ext(a) = Some(e), α0 = ⌜af1⌝ , ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + α0 ⊦ ∃ al, a, af0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(⌜af0⌝ ) = ext !(α0) |
ext !(⌜al⌝ ) = [], ext !(⌜af⌝ ) = ⌜e '⌝ + ext !(⌜af1⌝ ), ext(a) = Some(e), ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af1⌝ ⊦ ∃ al, a, af0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(⌜af0⌝ ) = ext !(⌜af1⌝ )
| ext !(⌜al⌝ ) = [], ext !(⌜af⌝ ) = ⌜e '⌝ + ext !(⌜af1⌝ ), ext(a) = Some(e), ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af1⌝ ⊦ ∃ al, a, af0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(⌜af0⌝ ) = ext !(⌜af1⌝ ) |
Used terms: al, a, af1
| ext !(⌜af⌝ ) ≠ ⌜e '⌝ + β, ext !(⌜af⌝ ) = ⌜e '⌝ + β ↔ (∃ al, a, α0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + α0 ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(α0) = β), ∃ al, a, af0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(⌜af0⌝ ) = β ⊦ |
ext !(⌜al⌝ ) = [], ext(a) = Some(e), ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ , ext !(⌜af⌝ ) ≠ ⌜e '⌝ + ext !(⌜af0⌝ ) ⊦ ∃ al, a, α0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + α0 ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(α0) = ext !(⌜af0⌝ )
| ext !(⌜al⌝ ) = [], ext(a) = Some(e), ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + ⌜af0⌝ , ext !(⌜af⌝ ) ≠ ⌜e '⌝ + ext !(⌜af0⌝ ) ⊦ ∃ al, a, α0. ⌜af⌝ = ⌜al⌝ + ⌜a '⌝ + α0 ∧ ext(a) = Some(e) ∧ ext !(⌜al⌝ ) = [] ∧ ext !(α0) = ext !(⌜af0⌝ ) |
Used terms: al, a, ⌜af0⌝
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.