| ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1) |
¬(r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1), h0 ⊥ h1 ⊦
| ¬(r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1), h0 ⊥ h1 ⊦ |
¬(r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1), h0 ⊥ h1 ⊦
| ¬(r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1), h0 ⊥ h1 ⊦ |
¬(r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1), h0 ⊥ h1, ∀ h, r, h0. # h < # h1 → ¬(r ∈ h0 ∪ h ↔ r ∈ h0 ∨ r ∈ h) ∧ h0 ⊥ h → false ⊦
Used simplifier rules: <; (wellfounded) Used terms: # h1
| ¬(r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1), h0 ⊥ h1, ∀ h, r, h0. # h < # h1 → ¬(r ∈ h0 ∪ h ↔ r ∈ h0 ∨ r ∈ h) ∧ h0 ⊥ h → false ⊦ |
h1 ≠ ∅, ¬(r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1), h0 ⊥ h1, ∀ h, r, h0. # h < # h1 → ¬(r ∈ h0 ∪ h ↔ r ∈ h0 ∨ r ∈ h) ∧ h0 ⊥ h → false ⊦
Used simplifier rules: uni-emp: ⊦ h0 ∪ ∅ = h0; ⊦ ¬ a ∈ ∅; (s) Used formulas: h1 = ∅
| h1 ≠ ∅, ¬(r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1), h0 ⊥ h1, ∀ h, r, h0. # h < # h1 → ¬(r ∈ h0 ∪ h ↔ r ∈ h0 ∨ r ∈ h) ∧ h0 ⊥ h → false ⊦ |
⊦ st = ∅ ↔ ¬(∃ a, d, st0. st = st0(a := d) ∧ ¬ a ∈ st0)
¬(r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1), h0 ⊥ h1, ∃ a, d, st0. h1 = st0(a := d) ∧ ¬ a ∈ st0, ∀ h, r, h0. # h < # h1 → ¬(r ∈ h0 ∪ h ↔ r ∈ h0 ∨ r ∈ h) ∧ h0 ⊥ h → false ⊦
Used terms: h1
| ⊦ st = ∅ ↔ ¬(∃ a, d, st0. st = st0(a := d) ∧ ¬ a ∈ st0) |
| ¬(r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1), h0 ⊥ h1, ∃ a, d, st0. h1 = st0(a := d) ∧ ¬ a ∈ st0, ∀ h, r, h0. # h < # h1 → ¬(r ∈ h0 ∪ h ↔ r ∈ h0 ∨ r ∈ h) ∧ h0 ⊥ h → false ⊦ |
¬(r ∈ h0 ∪ h(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), h0 ⊥ h(r0 := d), ¬ r0 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦
Used simplifier rules: ⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st; (s)
| ¬(r ∈ h0 ∪ h(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), h0 ⊥ h(r0 := d), ¬ r0 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦ |
h0 ⊥ h1 ⊦ h0 ∪ h1(r := o) = (h0 ∪ h1)(r := o)
¬(r ∈ h0 ∪ h(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), h0 ⊥ h(r0 := d), ¬ h0 ⊥ h, ¬ r0 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦
¬(r ∈ (h0 ∪ h)(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), h0 ⊥ h(r0 := d), h0 ⊥ h, ¬ r0 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦
Used terms: h0, h, r0, d
| h0 ⊥ h1 ⊦ h0 ∪ h1(r := o) = (h0 ∪ h1)(r := o) |
| ¬(r ∈ h0 ∪ h(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), h0 ⊥ h(r0 := d), ¬ h0 ⊥ h, ¬ r0 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦ |
⊦ h0 ⊥ h1 ↔ (∀ r. ¬ r ∈ h0 ∨ ¬ r ∈ h1)
¬(r ∈ h0 ∪ h(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), ¬ h0 ⊥ h, ¬ r0 ∈ h, ∀ r. ¬ r ∈ h0 ∨ ¬ r ∈ h(r0 := d), ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦
Used terms: h0, h(r0 := d)
| ⊦ h0 ⊥ h1 ↔ (∀ r. ¬ r ∈ h0 ∨ ¬ r ∈ h1) |
| ¬(r ∈ h0 ∪ h(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), ¬ h0 ⊥ h, ¬ r0 ∈ h, ∀ r. ¬ r ∈ h0 ∨ ¬ r ∈ h(r0 := d), ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦ |
¬(r ∈ h0 ∪ h(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), ¬ h0 ⊥ h, ¬ r0 ∈ h, ∀ r1. ¬ r1 ∈ h0 ∨ r1 ≠ r0 ∧ ¬ r1 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦
Used simplifier rules: ⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st; (s)
| ¬(r ∈ h0 ∪ h(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), ¬ h0 ⊥ h, ¬ r0 ∈ h, ∀ r1. ¬ r1 ∈ h0 ∨ r1 ≠ r0 ∧ ¬ r1 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦ |
⊦ h0 ⊥ h1 ↔ (∀ r. ¬ r ∈ h0 ∨ ¬ r ∈ h1)
¬(r ∈ h0 ∪ h(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), ¬ r0 ∈ h, ∃ r. ¬(¬ r ∈ h0 ∨ ¬ r ∈ h), ∀ r1. ¬ r1 ∈ h0 ∨ r1 ≠ r0 ∧ ¬ r1 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦
Used terms: h0, h
| ⊦ h0 ⊥ h1 ↔ (∀ r. ¬ r ∈ h0 ∨ ¬ r ∈ h1) |
| ¬(r ∈ h0 ∪ h(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), ¬ r0 ∈ h, ∃ r. ¬(¬ r ∈ h0 ∨ ¬ r ∈ h), ∀ r1. ¬ r1 ∈ h0 ∨ r1 ≠ r0 ∧ ¬ r1 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦ |
¬(r ∈ h0 ∪ h(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), r1 ∈ h0, r1 ∈ h, ¬ r0 ∈ h, ∀ r1. ¬ r1 ∈ h0 ∨ r1 ≠ r0 ∧ ¬ r1 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦
| ¬(r ∈ h0 ∪ h(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), r1 ∈ h0, r1 ∈ h, ¬ r0 ∈ h, ∀ r1. ¬ r1 ∈ h0 ∨ r1 ≠ r0 ∧ ¬ r1 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦ |
Used terms: r1
| ¬(r ∈ (h0 ∪ h)(r0 := d) ↔ r ∈ h0 ∨ r = r0 ∨ r ∈ h), h0 ⊥ h(r0 := d), h0 ⊥ h, ¬ r0 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦ |
¬(r ∈ h0 ∪ h ↔ r ∈ h0 ∨ r ∈ h), r ≠ r0, h0 ⊥ h, h0 ⊥ h(r0 := d), ¬ r0 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦
Used simplifier rules: ⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st; (s)
| ¬(r ∈ h0 ∪ h ↔ r ∈ h0 ∨ r ∈ h), r ≠ r0, h0 ⊥ h, h0 ⊥ h(r0 := d), ¬ r0 ∈ h, ∀ h0, r, h2. # h0 < # h(r0 := d) → ¬(r ∈ h2 ∪ h0 ↔ r ∈ h2 ∨ r ∈ h0) ∧ h2 ⊥ h0 → false ⊦ |
Used simplifier rules: ⊦ ¬ a ∈ st → # st(a := d) = # st + 1; (s) ⊦ m < n + 1 ↔ ¬ n < m; (s) ⊦ ¬ n < n; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic Used terms: h, r, h0
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.