| r ≠ null ∧ ¬ r ∈ H ⊦ r0 ≠ r → ((H -- r0) ++ r)[r, o] = (H ++ r)[r, o] -- r0 |
((H -- r0) ++ r)[r, o] ≠ (H ++ r)[r, o] -- r0, r ≠ null, r0 ≠ r, ¬ r ∈ H ⊦
| ((H -- r0) ++ r)[r, o] ≠ (H ++ r)[r, o] -- r0, r ≠ null, r0 ≠ r, ¬ r ∈ H ⊦ |
((H -- r0) ++ r)[r, o] ≠ (H ++ r)[r, o] -- r0, r ≠ null, r0 ≠ r, ¬ r ∈ H ⊦
| ((H -- r0) ++ r)[r, o] ≠ (H ++ r)[r, o] -- r0, r ≠ null, r0 ≠ r, ¬ r ∈ H ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
r ≠ null, r0 ≠ r, ¬ r ∈ H, ∃ r1. ¬ ((r1 ∈ ((H -- r0) ++ r)[r, o] ↔ r1 ∈ (H ++ r)[r, o] -- r0) ∧ (r1 ∈ ((H -- r0) ++ r)[r, o] → ((H -- r0) ++ r)[r, o][r1] = ((H ++ r)[r, o] -- r0)[r1])) ⊦
Used terms: (H ++ r)[r, o] -- r0, ((H -- r0) ++ r)[r, o]
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| r ≠ null, r0 ≠ r, ¬ r ∈ H, ∃ r1. ¬ ((r1 ∈ ((H -- r0) ++ r)[r, o] ↔ r1 ∈ (H ++ r)[r, o] -- r0) ∧ (r1 ∈ ((H -- r0) ++ r)[r, o] → ((H -- r0) ++ r)[r, o][r1] = ((H ++ r)[r, o] -- r0)[r1])) ⊦ |
r ≠ null, r0 ≠ r, ¬ r ∈ H ⊦ (r1 = r ∨ r1 ≠ r0 ∧ r1 ∈ H → r1 ≠ r0 ∧ (r1 = r ∨ r1 ∈ H)) ∧ (r1 = r ∨ r1 ≠ r0 ∧ r1 ∈ H → (r1 = r ⊃ o;((H -- r0) ++ r)[r1]) = ((H ++ r)[r, o] -- r0)[r1])
Used simplifier rules: in-write: ⊦ r ∈ h[r0, o] ↔ r ∈ h; at-write: ⊦ h[r0, o][r] = (r = r0 ∧ r0 ∈ h ⊃ o;h[r]); in-del: ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; in-alloc: r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h;
| r ≠ null, r0 ≠ r, ¬ r ∈ H ⊦ (r1 = r ∨ r1 ≠ r0 ∧ r1 ∈ H → r1 ≠ r0 ∧ (r1 = r ∨ r1 ∈ H)) ∧ (r1 = r ∨ r1 ≠ r0 ∧ r1 ∈ H → (r1 = r ⊃ o;((H -- r0) ++ r)[r1]) = ((H ++ r)[r, o] -- r0)[r1]) |
r ≠ null, r0 ≠ r, ¬ r ∈ H, r1 = r ∨ r1 ≠ r0 ∧ r1 ∈ H ⊦ r1 ≠ r0 ∧ (r1 = r ∨ r1 ∈ H)
(r1 = r ⊃ o;((H -- r0) ++ r)[r1]) ≠ ((H ++ r)[r, o] -- r0)[r1], r ≠ null, r0 ≠ r, ¬ r ∈ H, r1 = r ∨ r1 ≠ r0 ∧ r1 ∈ H ⊦
| r ≠ null, r0 ≠ r, ¬ r ∈ H, r1 = r ∨ r1 ≠ r0 ∧ r1 ∈ H ⊦ r1 ≠ r0 ∧ (r1 = r ∨ r1 ∈ H) |
r ≠ null, r0 ≠ r, ¬ r ∈ H, r1 = r ∨ r1 ≠ r0 ∧ r1 ∈ H ⊦ r1 ≠ r0 ∧ (r1 = r ∨ r1 ∈ H)
| r ≠ null, r0 ≠ r, ¬ r ∈ H, r1 = r ∨ r1 ≠ r0 ∧ r1 ∈ H ⊦ r1 ≠ r0 ∧ (r1 = r ∨ r1 ∈ H) |
| (r1 = r ⊃ o;((H -- r0) ++ r)[r1]) ≠ ((H ++ r)[r, o] -- r0)[r1], r ≠ null, r0 ≠ r, ¬ r ∈ H, r1 = r ∨ r1 ≠ r0 ∧ r1 ∈ H ⊦ |
(r1 = r ⊃ o;((H -- r0) ++ r)[r1]) ≠ ((H ++ r)[r, o] -- r0)[r1], r ≠ null, r0 ≠ r, ¬ r ∈ H, r1 = r ∨ r1 ≠ r0 ∧ r1 ∈ H ⊦
| (r1 = r ⊃ o;((H -- r0) ++ r)[r1]) ≠ ((H ++ r)[r, o] -- r0)[r1], r ≠ null, r0 ≠ r, ¬ r ∈ H, r1 = r ∨ r1 ≠ r0 ∧ r1 ∈ H ⊦ |
(r1 = r ⊃ o;((H -- r0) ++ r)[r1]) ≠ ((H ++ r)[r, o] -- r0)[r1], r ≠ null, r0 ≠ r, r1 ≠ r0, r1 ∈ H, ¬ r ∈ H ⊦
Used simplifier rules: in-write: ⊦ r ∈ h[r0, o] ↔ r ∈ h; at-del: r ∈ h ⊦ r ≠ r0 → (h -- r0)[r] = h[r]; at-write: ⊦ h[r0, o][r] = (r = r0 ∧ r0 ∈ h ⊃ o;h[r]); in-alloc: r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h;
| (r1 = r ⊃ o;((H -- r0) ++ r)[r1]) ≠ ((H ++ r)[r, o] -- r0)[r1], r ≠ null, r0 ≠ r, r1 ≠ r0, r1 ∈ H, ¬ r ∈ H ⊦ |
((H -- r0) ++ r)[r1] ≠ (H ++ r)[r1], r ≠ null, r0 ≠ r, r1 ≠ r0, r1 ∈ H, ¬ r ∈ H ⊦
Used simplifier rules: in-write: ⊦ r ∈ h[r0, o] ↔ r ∈ h; in-alloc: r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; at-del: r ∈ h ⊦ r ≠ r0 → (h -- r0)[r] = h[r]; at-write: ⊦ h[r0, o][r] = (r = r0 ∧ r0 ∈ h ⊃ o;h[r]);
| ((H -- r0) ++ r)[r1] ≠ (H ++ r)[r1], r ≠ null, r0 ≠ r, r1 ≠ r0, r1 ∈ H, ¬ r ∈ H ⊦ |
((H -- r0) ++ r)[r1] ≠ (H ++ r)[r1], r ≠ null, r0 ≠ r, r1 ≠ r, r1 ≠ r0, r1 ∈ H, ¬ r ∈ H ⊦
Used formulas: r1 = r
| ((H -- r0) ++ r)[r1] ≠ (H ++ r)[r1], r ≠ null, r0 ≠ r, r1 ≠ r, r1 ≠ r0, r1 ∈ H, ¬ r ∈ H ⊦ |
((H -- r0) ++ r)[r1] ≠ (H ++ r)[r1], r ≠ null, r0 ≠ r, r1 ≠ r, r1 ≠ r0, r1 ∈ H, ¬ r ∈ H ⊦
| ((H -- r0) ++ r)[r1] ≠ (H ++ r)[r1], r ≠ null, r0 ≠ r, r1 ≠ r, r1 ≠ r0, r1 ∈ H, ¬ r ∈ H ⊦ |
r ∈ h, r0 ≠ null, ¬ r0 ∈ h ⊦ r ≠ r0 → (h ++ r0)[r] = h[r]
(H -- r0)[r1] ≠ (H ++ r)[r1], r ≠ null, r0 ≠ r, r1 ≠ r, r1 ≠ r0, r1 ∈ H, r1 ∈ H -- r0, ¬ r ∈ H -- r0, ¬ r ∈ H ⊦
Used simplifier rules: in-del: ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; Used terms: r1, r, H -- r0
| r ∈ h, r0 ≠ null, ¬ r0 ∈ h ⊦ r ≠ r0 → (h ++ r0)[r] = h[r] |
| (H -- r0)[r1] ≠ (H ++ r)[r1], r ≠ null, r0 ≠ r, r1 ≠ r, r1 ≠ r0, r1 ∈ H, r1 ∈ H -- r0, ¬ r ∈ H -- r0, ¬ r ∈ H ⊦ |
H[r1] ≠ (H ++ r)[r1], r ≠ null, r0 ≠ r, r1 ≠ r, r1 ≠ r0, r1 ∈ H, ¬ r ∈ H ⊦
Used simplifier rules: at-del: r ∈ h ⊦ r ≠ r0 → (h -- r0)[r] = h[r]; in-del: ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h;
| H[r1] ≠ (H ++ r)[r1], r ≠ null, r0 ≠ r, r1 ≠ r, r1 ≠ r0, r1 ∈ H, ¬ r ∈ H ⊦ |
r ∈ h, r0 ≠ null, ¬ r0 ∈ h ⊦ r ≠ r0 → (h ++ r0)[r] = h[r]
Used terms: r1, r, H
| r ∈ h, r0 ≠ null, ¬ r0 ∈ h ⊦ r ≠ r0 → (h ++ r0)[r] = h[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.