| r ≠ null ⊦ r ∈ h → (∅ ++ r)(r := h(r)) ∪ (h -- r) = h |
r ≠ null, (∅ ++ r)(r := h(r)) ∪ (h -- r) ≠ h, r ∈ h ⊦
| r ≠ null, (∅ ++ r)(r := h(r)) ∪ (h -- r) ≠ h, r ∈ h ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r)))
r ≠ null, r ∈ h, ∃ r0. ¬((r0 ∈ (∅ ++ r)(r := h(r)) ∪ (h -- r) ↔ r0 ∈ h) ∧ (r0 ∈ (∅ ++ r)(r := h(r)) ∪ (h -- r) → ((∅ ++ r)(r := h(r)) ∪ (h -- r))(r0) = h(r0))) ⊦
Used terms: h, (∅ ++ r)(r := h(r)) ∪ (h -- r)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r))) |
| r ≠ null, r ∈ h, ∃ r0. ¬((r0 ∈ (∅ ++ r)(r := h(r)) ∪ (h -- r) ↔ r0 ∈ h) ∧ (r0 ∈ (∅ ++ r)(r := h(r)) ∪ (h -- r) → ((∅ ++ r)(r := h(r)) ∪ (h -- r))(r0) = h(r0))) ⊦ |
r ∈ h ⊦ (r0 ∈ (∅ ++ r)(r := h(r)) ∪ (h -- r) ↔ r0 ∈ h) ∧ (r0 ∈ (∅ ++ r)(r := h(r)) ∪ (h -- r) → ((∅ ++ r)(r := h(r)) ∪ (h -- r))(r0) = h(r0))
Used simplifier rules: ⊦ r ∈ h → r ≠ null; (s)
| r ∈ h ⊦ (r0 ∈ (∅ ++ r)(r := h(r)) ∪ (h -- r) ↔ r0 ∈ h) ∧ (r0 ∈ (∅ ++ r)(r := h(r)) ∪ (h -- r) → ((∅ ++ r)(r := h(r)) ∪ (h -- r))(r0) = h(r0)) |
⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1)
r ∈ h, (∅ ++ r)(r := h(r)) ⊥ h -- r ⊦ (r0 ∈ (∅ ++ r)(r := h(r)) ∨ r0 ∈ h -- r ↔ r0 ∈ h) ∧ (r0 ∈ (∅ ++ r)(r := h(r)) ∨ r0 ∈ h -- r → ((∅ ++ r)(r := h(r)) ∪ (h -- r))(r0) = h(r0))
Used simplifier rules: disj-singleton-write: r ≠ null ⊦ (∅ ++ r)(r := o) ⊥ h ↔ ¬ r ∈ h; ⊦ r ∈ h → r ≠ null; (s) ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; (s) Used terms: h -- r, (∅ ++ r)(r := h(r)), r0
| ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1) |
| r ∈ h, (∅ ++ r)(r := h(r)) ⊥ h -- r ⊦ (r0 ∈ (∅ ++ r)(r := h(r)) ∨ r0 ∈ h -- r ↔ r0 ∈ h) ∧ (r0 ∈ (∅ ++ r)(r := h(r)) ∨ r0 ∈ h -- r → ((∅ ++ r)(r := h(r)) ∪ (h -- r))(r0) = h(r0)) |
((∅ ++ r)(r := h(r)) ∪ (h -- r))(r0) ≠ h(r0), r ∈ h, r0 ∈ h ⊦
Used simplifier rules: disj-singleton-write: r ≠ null ⊦ (∅ ++ r)(r := o) ⊥ h ↔ ¬ r ∈ h; ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; (s) ⊦ ¬ r ∈ ∅; (s) r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ r ∈ h → r ≠ null; (s) ⊦ r ∈ h(r0 := o) ↔ r ∈ h; (s)
| ((∅ ++ r)(r := h(r)) ∪ (h -- r))(r0) ≠ h(r0), r ∈ h, r0 ∈ h ⊦ |
r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)(r) = (r ∈ h0 ⊃ h0(r);h1(r))
(r0 ∈ (∅ ++ r)(r := h(r)) ⊃ (∅ ++ r)(r := h(r))(r0);(h -- r)(r0)) ≠ h(r0), r ∈ h, r0 ∈ h, r0 ∈ (∅ ++ r)(r := h(r)) ∪ (h -- r), (∅ ++ r)(r := h(r)) ⊥ h -- r ⊦
Used simplifier rules: in-uni: ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1); disj-singleton-write: r ≠ null ⊦ (∅ ++ r)(r := o) ⊥ h ↔ ¬ r ∈ h; ⊦ r ∈ h(r0 := o) ↔ r ∈ h; (s) r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ ¬ r ∈ ∅; (s) ⊦ r ∈ h → r ≠ null; (s) ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; (s) Used terms: r0, h -- r, (∅ ++ r)(r := h(r))
| r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)(r) = (r ∈ h0 ⊃ h0(r);h1(r)) |
| (r0 ∈ (∅ ++ r)(r := h(r)) ⊃ (∅ ++ r)(r := h(r))(r0);(h -- r)(r0)) ≠ h(r0), r ∈ h, r0 ∈ h, r0 ∈ (∅ ++ r)(r := h(r)) ∪ (h -- r), (∅ ++ r)(r := h(r)) ⊥ h -- r ⊦ |
(r0 = r ⊃ h(r);h(r0)) ≠ h(r0), r ∈ h, r0 ∈ (∅ ++ r)(r := h(r)) ∪ (h -- r), r0 ∈ h ⊦
Used simplifier rules: disj-singleton-write: r ≠ null ⊦ (∅ ++ r)(r := o) ⊥ h ↔ ¬ r ∈ h; ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; (s) ⊦ r ∈ h → r ≠ null; (s) r ∈ h ⊦ r ≠ r0 → (h -- r0)(r) = h(r); (s) r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ ¬ r ∈ ∅; (s) ⊦ h(r0 := o)(r) = (r = r0 ∧ r0 ∈ h ⊃ o;h(r)); (s) ⊦ r ∈ h(r0 := o) ↔ r ∈ h; (s)
| (r0 = r ⊃ h(r);h(r0)) ≠ h(r0), r ∈ h, r0 ∈ (∅ ++ r)(r := h(r)) ∪ (h -- r), r0 ∈ h ⊦ |
Used formulas: r0 = r
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.