| ⊦ (r => o ⊗ hP)(h) ↔ (hP(h -- r) ∨ hP(h)) ∧ r ∈ h ∧ h(r) = o |
¬((r => o ⊗ hP)(h) ↔ (hP(h -- r) ∨ hP(h)) ∧ r ∈ h ∧ h(r) = o) ⊦
| ¬((r => o ⊗ hP)(h) ↔ (hP(h -- r) ∨ hP(h)) ∧ r ∈ h ∧ h(r) = o) ⊦ |
⊦ (hP0 ⊗ hP1)(h) ↔ (∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ hP0(h0 ∪ h2) ∧ hP1(h1 ∪ h2))
⊦ (∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ (r => o)(h0 ∪ h2) ∧ hP(h1 ∪ h2)) ↔ (hP(h -- r) ∨ hP(h)) ∧ r ∈ h ∧ h(r) = o
Used simplifier rules: sharing-ass: ⊦ hP0 ⊗ hP1 ⊗ hP2 = (hP0 ⊗ hP1) ⊗ hP2; from specification heap-sep sharing-com: ⊦ hP0 ⊗ hP1 = hP1 ⊗ hP0; from specification heap-sep Used terms: h, r => o, hP
| ⊦ (hP0 ⊗ hP1)(h) ↔ (∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ hP0(h0 ∪ h2) ∧ hP1(h1 ∪ h2)) |
| ⊦ (∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ (r => o)(h0 ∪ h2) ∧ hP(h1 ∪ h2)) ↔ (hP(h -- r) ∨ hP(h)) ∧ r ∈ h ∧ h(r) = o |
⊦ (∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ h0 ∪ h2 = (∅ ++ r)(r := o) ∧ r ≠ null ∧ hP(h1 ∪ h2)) ↔ (hP(h -- r) ∨ hP(h)) ∧ r ∈ h ∧ h(r) = o
Used simplifier rules: maplet: ⊦ (r => o)(h) ↔ h = (∅ ++ r)(r := o) ∧ r ≠ null;
| ⊦ (∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ h0 ∪ h2 = (∅ ++ r)(r := o) ∧ r ≠ null ∧ hP(h1 ∪ h2)) ↔ (hP(h -- r) ∨ hP(h)) ∧ r ∈ h ∧ h(r) = o |
∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ h0 ∪ h2 = (∅ ++ r)(r := o) ∧ r ≠ null ∧ hP(h1 ∪ h2) ⊦ (hP(h -- r) ∨ hP(h)) ∧ r ∈ h ∧ h(r) = o
h(r) = o, r ∈ h, hP(h -- r) ∨ hP(h) ⊦ ∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ h0 ∪ h2 = (∅ ++ r)(r := o) ∧ r ≠ null ∧ hP(h1 ∪ h2)
| ∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ h0 ∪ h2 = (∅ ++ r)(r := o) ∧ r ≠ null ∧ hP(h1 ∪ h2) ⊦ (hP(h -- r) ∨ hP(h)) ∧ r ∈ h ∧ h(r) = o |
h0 ∪ h2 = (∅ ++ r)(r := o), r ≠ null, h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o
| h0 ∪ h2 = (∅ ++ r)(r := o), r ≠ null, h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o |
h0 ∪ h2 = (∅ ++ r)(r := o), r ≠ null, h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o
h0 ∪ h2 = (∅ ++ r)(r := o), r ≠ null, h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), ¬ r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o
Used formulas: r ∈ h2
| h0 ∪ h2 = (∅ ++ r)(r := o), r ≠ null, h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o |
h0 ∪ h2 = (∅ ++ r)(r := o), h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o
Used simplifier rules: ⊦ r ∈ h → r ≠ null; (s)
| h0 ∪ h2 = (∅ ++ r)(r := o), h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o |
h0 ∪ h2 = (∅ ++ r)(r := o), h2 = (∅ ++ r)(r := o), h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o
h0 ∪ h2 = (∅ ++ r)(r := o), h2 ≠ (∅ ++ r)(r := o), h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o
Used formulas: h2 = (∅ ++ r)(r := o)
| h0 ∪ h2 = (∅ ++ r)(r := o), h2 = (∅ ++ r)(r := o), h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o |
h0 ∪ (∅ ++ r)(r := o) = (∅ ++ r)(r := o), h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1, ¬ r ∈ h0 ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o
Used simplifier rules: ⊦ h ⊥ ∅; (s) r ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)(r := o) ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0; (s) ⊦ ¬ r ∈ ∅; (s) ⊦ r ∈ h → r ≠ null; (s) ⊦ r ∈ h(r0 := o) ↔ r ∈ h; (s)
| h0 ∪ (∅ ++ r)(r := o) = (∅ ++ r)(r := o), h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1, ¬ r ∈ h0 ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o |
h0 ∪ (∅ ++ r)(r := o) = (∅ ++ r)(r := o), h0 = ∅, h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1, ¬ r ∈ h0 ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o
h0 ∪ (∅ ++ r)(r := o) = (∅ ++ r)(r := o), h0 ≠ ∅, h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1, ¬ r ∈ h0 ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o
Used formulas: h0 = ∅
| h0 ∪ (∅ ++ r)(r := o) = (∅ ++ r)(r := o), h0 = ∅, h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1, ¬ r ∈ h0 ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o |
hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1 ⊦ r ∈ h1 ∪ (∅ ++ r)(r := o) ∧ (h1 ∪ (∅ ++ r)(r := o))(r) = o
Used simplifier rules: ⊦ ∅ ∪ h = h; (s) ⊦ ¬ r ∈ ∅; (s) ⊦ ∅ ⊥ h; (s) ⊦ r ∈ h → (h(r := d) = h(r := d1) ↔ d = d1); (s)
| hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1 ⊦ r ∈ h1 ∪ (∅ ++ r)(r := o) ∧ (h1 ∪ (∅ ++ r)(r := o))(r) = o |
⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1)
h1 ⊥ (∅ ++ r)(r := o), hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1 ⊦ (r ∈ h1 ∨ r ∈ (∅ ++ r)(r := o)) ∧ (h1 ∪ (∅ ++ r)(r := o))(r) = o
Used simplifier rules: ⊦ r ∈ h → r ≠ null; (s) ⊦ ¬ r ∈ ∅; (s) r ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)(r := o) ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0; (s) ⊦ h ⊥ ∅; (s) Used terms: r, h1, (∅ ++ r)(r := o)
| ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1) |
| h1 ⊥ (∅ ++ r)(r := o), hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1 ⊦ (r ∈ h1 ∨ r ∈ (∅ ++ r)(r := o)) ∧ (h1 ∪ (∅ ++ r)(r := o))(r) = o |
(h1 ∪ (∅ ++ r)(r := o))(r) ≠ o, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1 ⊦
Used simplifier rules: r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ ¬ r ∈ ∅; (s) ⊦ r ∈ h → r ≠ null; (s) ⊦ r ∈ h(r0 := o) ↔ r ∈ h; (s) ⊦ h ⊥ ∅; (s) r ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)(r := o) ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0; (s)
| (h1 ∪ (∅ ++ r)(r := o))(r) ≠ o, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1 ⊦ |
r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)(r) = (r ∈ h0 ⊃ h0(r);h1(r))
Used simplifier rules: ⊦ h(r0 := o)(r) = (r = r0 ∧ r0 ∈ h ⊃ o;h(r)); (s) ⊦ r ∈ h → r ≠ null; (s) ⊦ ¬ r ∈ ∅; (s) r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1); (s) ⊦ r ∈ h(r0 := o) ↔ r ∈ h; (s) r ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)(r := o) ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0; (s) ⊦ h ⊥ ∅; (s) Used terms: h1, (∅ ++ r)(r := o), r
| r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)(r) = (r ∈ h0 ⊃ h0(r);h1(r)) |
| h0 ∪ (∅ ++ r)(r := o) = (∅ ++ r)(r := o), h0 ≠ ∅, h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1, ¬ r ∈ h0 ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r)))
h0 ≠ ∅, h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1, ¬ r ∈ h0, ∀ r0. (r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 ∈ (∅ ++ r)(r := o)) ∧ (r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (∅ ++ r)(r := o)(r0)) ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o
Used terms: h0 ∪ (∅ ++ r)(r := o), (∅ ++ r)(r := o)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r))) |
| h0 ≠ ∅, h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1, ¬ r ∈ h0, ∀ r0. (r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 ∈ (∅ ++ r)(r := o)) ∧ (r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (∅ ++ r)(r := o)(r0)) ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o |
h0 ≠ ∅, h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1, ¬ r ∈ h0, ∀ r0. (r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 = r) ∧ (r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))) ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o
Used simplifier rules: r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ ¬ r ∈ ∅; (s) ⊦ r ∈ h → r ≠ null; (s) ⊦ h(r0 := o)(r) = (r = r0 ∧ r0 ∈ h ⊃ o;h(r)); (s) ⊦ r ∈ h(r0 := o) ↔ r ∈ h; (s)
| h0 ≠ ∅, h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1, ¬ r ∈ h0, ∀ r0. (r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 = r) ∧ (r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))) ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r)))
h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1, ¬ r ∈ h0, ∃ r. ¬((r ∈ ∅ ↔ r ∈ h0) ∧ (r ∈ ∅ → ∅(r) = h0(r))), ∀ r0. (r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 = r) ∧ (r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))) ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o
Used terms: h0, ∅
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r))) |
| h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, ¬ r ∈ h1, ¬ r ∈ h0, ∃ r. ¬((r ∈ ∅ ↔ r ∈ h0) ∧ (r ∈ ∅ → ∅(r) = h0(r))), ∀ r0. (r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 = r) ∧ (r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))) ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o |
h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, r0 ∈ h0, ¬ r ∈ h1, ¬ r ∈ h0, ∀ r0. (r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 = r) ∧ (r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))) ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o
Used simplifier rules: ⊦ ¬ r ∈ ∅; (s)
| h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, r0 ∈ h0, ¬ r ∈ h1, ¬ r ∈ h0, ∀ r0. (r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 = r) ∧ (r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))) ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o |
r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 = r, h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, r0 ∈ h0, ¬ r ∈ h1, ¬ r ∈ h0, ∀ r0. (r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 = r) ∧ (r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))), r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0)) ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o
Used terms: r0
| r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 = r, h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, r0 ∈ h0, ¬ r ∈ h1, ¬ r ∈ h0, ∀ r0. (r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 = r) ∧ (r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))), r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0)) ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o |
h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, r0 ∈ h0, ¬ r ∈ h1, ¬ r ∈ h0, ¬ r0 ∈ h0 ∪ (∅ ++ r)(r := o), ∀ r0. (r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 = r) ∧ (r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))) ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o
| h0 ⊥ h1, hP(h1 ∪ (∅ ++ r)(r := o)), r ∈ ∅ ++ r, r0 ∈ h0, ¬ r ∈ h1, ¬ r ∈ h0, ¬ r0 ∈ h0 ∪ (∅ ++ r)(r := o), ∀ r0. (r0 ∈ h0 ∪ (∅ ++ r)(r := o) ↔ r0 = r) ∧ (r0 ∈ h0 ∪ (∅ ++ r)(r := o) → (h0 ∪ (∅ ++ r)(r := o))(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))) ⊦ (hP((h0 ∪ h1 ∪ (∅ ++ r)(r := o)) -- r) ∨ hP(h0 ∪ h1 ∪ (∅ ++ r)(r := o))) ∧ r ∈ h0 ∪ h1 ∪ (∅ ++ r)(r := o) ∧ (h0 ∪ h1 ∪ (∅ ++ r)(r := o))(r) = o |
⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1)
Used simplifier rules: ⊦ r ∈ h → r ≠ null; (s) ⊦ ¬ r ∈ ∅; (s) r ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)(r := o) ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0; (s) ⊦ h ⊥ ∅; (s) Used terms: r0, h0, (∅ ++ r)(r := o)
| ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1) |
| h0 ∪ h2 = (∅ ++ r)(r := o), h2 ≠ (∅ ++ r)(r := o), h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r)))
h0 ∪ h2 = (∅ ++ r)(r := o), h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2, ∃ r0. ¬((r0 ∈ h2 ↔ r0 ∈ (∅ ++ r)(r := o)) ∧ (r0 ∈ h2 → h2(r0) = (∅ ++ r)(r := o)(r0))) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o
Used terms: h2, (∅ ++ r)(r := o)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r))) |
| h0 ∪ h2 = (∅ ++ r)(r := o), h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2, ∃ r0. ¬((r0 ∈ h2 ↔ r0 ∈ (∅ ++ r)(r := o)) ∧ (r0 ∈ h2 → h2(r0) = (∅ ++ r)(r := o)(r0))) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o |
h0 ∪ h2 = (∅ ++ r)(r := o), h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o, (r0 ∈ h2 → r0 = r) ∧ (r0 ∈ h2 → h2(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0)))
Used simplifier rules: r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ ¬ r ∈ ∅; (s) ⊦ r ∈ h → r ≠ null; (s) ⊦ h(r0 := o)(r) = (r = r0 ∧ r0 ∈ h ⊃ o;h(r)); (s) ⊦ r ∈ h(r0 := o) ↔ r ∈ h; (s)
| h0 ∪ h2 = (∅ ++ r)(r := o), h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o, (r0 ∈ h2 → r0 = r) ∧ (r0 ∈ h2 → h2(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))) |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r)))
h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2, ∀ r0. (r0 ∈ h0 ∪ h2 ↔ r0 ∈ (∅ ++ r)(r := o)) ∧ (r0 ∈ h0 ∪ h2 → (h0 ∪ h2)(r0) = (∅ ++ r)(r := o)(r0)) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o, (r0 ∈ h2 → r0 = r) ∧ (r0 ∈ h2 → h2(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0)))
Used terms: h0 ∪ h2, (∅ ++ r)(r := o)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r))) |
| h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2, ∀ r0. (r0 ∈ h0 ∪ h2 ↔ r0 ∈ (∅ ++ r)(r := o)) ∧ (r0 ∈ h0 ∪ h2 → (h0 ∪ h2)(r0) = (∅ ++ r)(r := o)(r0)) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o, (r0 ∈ h2 → r0 = r) ∧ (r0 ∈ h2 → h2(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))) |
h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2, ∀ r1. (r1 ∈ h0 ∨ r1 ∈ h2 → r1 = r) ∧ (r1 ∈ h0 ∨ r1 ∈ h2 → (r1 ∈ h0 ⊃ h0(r1);h2(r1)) = (r1 = r ⊃ o;(∅ ++ r)(r1))) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o, (r0 ∈ h2 → r0 = r) ∧ (r0 ∈ h2 → h2(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0)))
Used simplifier rules: r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ ¬ r ∈ ∅; (s) ⊦ r ∈ h → r ≠ null; (s) ⊦ h(r0 := o)(r) = (r = r0 ∧ r0 ∈ h ⊃ o;h(r)); (s) r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)(r) = (r ∈ h0 ⊃ h0(r);h1(r)); (s) ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1); (s) ⊦ r ∈ h1 ∧ h0 ⊥ h1 → ¬ r ∈ h0; (as) ⊦ r ∈ h(r0 := o) ↔ r ∈ h; (s)
| h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2, ∀ r1. (r1 ∈ h0 ∨ r1 ∈ h2 → r1 = r) ∧ (r1 ∈ h0 ∨ r1 ∈ h2 → (r1 ∈ h0 ⊃ h0(r1);h2(r1)) = (r1 = r ⊃ o;(∅ ++ r)(r1))) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o, (r0 ∈ h2 → r0 = r) ∧ (r0 ∈ h2 → h2(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))) |
h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2, r0 ∈ h0 ∨ r0 ∈ h2 → r0 = r, r0 ∈ h0 ∨ r0 ∈ h2 → (r0 ∈ h0 ⊃ h0(r0);h2(r0)) = (r0 = r ⊃ o;(∅ ++ r)(r0)), ∀ r1. (r1 ∈ h0 ∨ r1 ∈ h2 → r1 = r) ∧ (r1 ∈ h0 ∨ r1 ∈ h2 → (r1 ∈ h0 ⊃ h0(r1);h2(r1)) = (r1 = r ⊃ o;(∅ ++ r)(r1))) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o, (r0 ∈ h2 → r0 = r) ∧ (r0 ∈ h2 → h2(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0)))
Used terms: r0
| h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), r ∈ h2, r0 ∈ h0 ∨ r0 ∈ h2 → r0 = r, r0 ∈ h0 ∨ r0 ∈ h2 → (r0 ∈ h0 ⊃ h0(r0);h2(r0)) = (r0 = r ⊃ o;(∅ ++ r)(r0)), ∀ r1. (r1 ∈ h0 ∨ r1 ∈ h2 → r1 = r) ∧ (r1 ∈ h0 ∨ r1 ∈ h2 → (r1 ∈ h0 ⊃ h0(r1);h2(r1)) = (r1 = r ⊃ o;(∅ ++ r)(r1))) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o, (r0 ∈ h2 → r0 = r) ∧ (r0 ∈ h2 → h2(r0) = (r0 = r ⊃ o;(∅ ++ r)(r0))) |
Used simplifier rules: ⊦ r ∈ h1 ∧ h0 ⊥ h1 → ¬ r ∈ h0; (as) ⊦ r ∈ h0 ∧ h0 ⊥ h1 → ¬ r ∈ h1; (as) Used formulas: r0 ∈ h0
| h0 ∪ h2 = (∅ ++ r)(r := o), r ≠ null, h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), ¬ r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o |
h0 ∪ h2 = (∅ ++ r)(r := o), h2 ≠ ∅, r ≠ null, h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), ¬ r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o
Used simplifier rules: ⊦ h ⊥ ∅; (s) ⊦ h0 ⊥ h1 → (h0 ∪ h1) -- r = (h0 -- r) ∪ (h1 -- r); (s) ⊦ h0 ∪ ∅ = h0; (s) ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1); (s) r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)(r) = (r ∈ h0 ⊃ h0(r);h1(r)); (s) r ≠ null ⊦ (∅ ++ r)(r := o) ⊥ h ↔ ¬ r ∈ h; (s) r ∈ h ⊦ h(r := o) -- r = h -- r; (s) ¬ r ∈ h, r ≠ null ⊦ (h ++ r) -- r = h; (s) ⊦ ¬ r ∈ h → h -- r = h; (s) ⊦ ∅ ∪ h = h; (s) ⊦ r ∈ h(r0 := o) ↔ r ∈ h; (s) ⊦ h(r0 := o)(r) = (r = r0 ∧ r0 ∈ h ⊃ o;h(r)); (s) ⊦ ¬ r ∈ ∅; (s) r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) Used formulas: h2 = ∅
| h0 ∪ h2 = (∅ ++ r)(r := o), h2 ≠ ∅, r ≠ null, h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), ¬ r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r)))
h0 ∪ h2 = (∅ ++ r)(r := o), r ≠ null, h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), ¬ r ∈ h2, ∃ r. ¬((r ∈ ∅ ↔ r ∈ h2) ∧ (r ∈ ∅ → ∅(r) = h2(r))) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o
Used terms: h2, ∅
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r))) |
| h0 ∪ h2 = (∅ ++ r)(r := o), r ≠ null, h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), ¬ r ∈ h2, ∃ r. ¬((r ∈ ∅ ↔ r ∈ h2) ∧ (r ∈ ∅ → ∅(r) = h2(r))) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o |
h0 ∪ h2 = (∅ ++ r)(r := o), r ≠ null, h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), r0 ∈ h2, ¬ r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o
Used simplifier rules: ⊦ ¬ r ∈ ∅; (s)
| h0 ∪ h2 = (∅ ++ r)(r := o), r ≠ null, h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), r0 ∈ h2, ¬ r ∈ h2 ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r)))
r ≠ null, h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), r0 ∈ h2, ¬ r ∈ h2, ∀ r0. (r0 ∈ h0 ∪ h2 ↔ r0 ∈ (∅ ++ r)(r := o)) ∧ (r0 ∈ h0 ∪ h2 → (h0 ∪ h2)(r0) = (∅ ++ r)(r := o)(r0)) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o
Used terms: h0 ∪ h2, (∅ ++ r)(r := o)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r))) |
| r ≠ null, h0 ⊥ h1, h0 ⊥ h2, h1 ⊥ h2, hP(h1 ∪ h2), r0 ∈ h2, ¬ r ∈ h2, ∀ r0. (r0 ∈ h0 ∪ h2 ↔ r0 ∈ (∅ ++ r)(r := o)) ∧ (r0 ∈ h0 ∪ h2 → (h0 ∪ h2)(r0) = (∅ ++ r)(r := o)(r0)) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o |
r ≠ null, h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), r0 ∈ h2, ¬ r ∈ h2, ∀ r1. (r1 ∈ h0 ∨ r1 ∈ h2 ↔ r1 = r) ∧ (r1 ∈ h0 ∨ r1 ∈ h2 → (r1 ∈ h0 ⊃ h0(r1);h2(r1)) = (r1 = r ⊃ o;(∅ ++ r)(r1))) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o
Used simplifier rules: 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 ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)(r) = (r ∈ h0 ⊃ h0(r);h1(r)); (s) ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1); (s) ⊦ r ∈ h(r0 := o) ↔ r ∈ h; (s)
| r ≠ null, h0 ⊥ h2, h0 ⊥ h1, h1 ⊥ h2, hP(h1 ∪ h2), r0 ∈ h2, ¬ r ∈ h2, ∀ r1. (r1 ∈ h0 ∨ r1 ∈ h2 ↔ r1 = r) ∧ (r1 ∈ h0 ∨ r1 ∈ h2 → (r1 ∈ h0 ⊃ h0(r1);h2(r1)) = (r1 = r ⊃ o;(∅ ++ r)(r1))) ⊦ (hP((h0 ∪ h1 ∪ h2) -- r) ∨ hP(h0 ∪ h1 ∪ h2)) ∧ r ∈ h0 ∪ h1 ∪ h2 ∧ (h0 ∪ h1 ∪ h2)(r) = o |
Used terms: r0
| h(r) = o, r ∈ h, hP(h -- r) ∨ hP(h) ⊦ ∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ h0 ∪ h2 = (∅ ++ r)(r := o) ∧ r ≠ null ∧ hP(h1 ∪ h2) |
r ∈ h, hP(h -- r) ∨ hP(h) ⊦ ∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ h0 ∪ h2 = (∅ ++ r)(r := (h0 ∪ h1 ∪ h2)(r)) ∧ hP(h1 ∪ h2)
Used simplifier rules: ⊦ r ∈ h → r ≠ null; (s)
| r ∈ h, hP(h -- r) ∨ hP(h) ⊦ ∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ h0 ∪ h2 = (∅ ++ r)(r := (h0 ∪ h1 ∪ h2)(r)) ∧ hP(h1 ∪ h2) |
hP(h -- r), r ∈ h ⊦ ∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ h0 ∪ h2 = (∅ ++ r)(r := (h0 ∪ h1 ∪ h2)(r)) ∧ hP(h1 ∪ h2)
hP(h), r ∈ h ⊦ ∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ h0 ∪ h2 = (∅ ++ r)(r := (h0 ∪ h1 ∪ h2)(r)) ∧ hP(h1 ∪ h2)
| hP(h -- r), r ∈ h ⊦ ∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ h0 ∪ h2 = (∅ ++ r)(r := (h0 ∪ h1 ∪ h2)(r)) ∧ hP(h1 ∪ h2) |
Used simplifier rules: ⊦ ¬ r ∈ ∅; (s) r ≠ null ⊦ (∅ ++ r)(r := o) ⊥ h ↔ ¬ r ∈ h; (s) ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; (s) ⊦ h ⊥ ∅; (s) ⊦ r ∈ h → r ≠ null; (s) r ≠ null ⊦ r ∈ h → (∅ ++ r)(r := h(r)) ∪ (h -- r) = h; (s) ⊦ h0 ∪ ∅ = h0; (s) Used terms: (∅ ++ r)(r := h(r)), h -- r, ∅
| hP(h), r ∈ h ⊦ ∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ h0 ∪ h2 = (∅ ++ r)(r := (h0 ∪ h1 ∪ h2)(r)) ∧ hP(h1 ∪ h2) |
hP(h), r ∈ h ⊦ ∅ ⊥ (∅ ++ r)(r := h(r)) ∧ ∅ ⊥ h -- r ∧ h -- r ⊥ (∅ ++ r)(r := h(r)) ∧ h = ∅ ∪ (h -- r) ∪ (∅ ++ r)(r := h(r)) ∧ ∅ ∪ (∅ ++ r)(r := h(r)) = (∅ ++ r)(r := (∅ ∪ (h -- r) ∪ (∅ ++ r)(r := h(r)))(r)) ∧ hP((h -- r) ∪ (∅ ++ r)(r := h(r)))
Used terms: ∅, h -- r, (∅ ++ r)(r := h(r))
| hP(h), r ∈ h ⊦ ∅ ⊥ (∅ ++ r)(r := h(r)) ∧ ∅ ⊥ h -- r ∧ h -- r ⊥ (∅ ++ r)(r := h(r)) ∧ h = ∅ ∪ (h -- r) ∪ (∅ ++ r)(r := h(r)) ∧ ∅ ∪ (∅ ++ r)(r := h(r)) = (∅ ++ r)(r := (∅ ∪ (h -- r) ∪ (∅ ++ r)(r := h(r)))(r)) ∧ hP((h -- r) ∪ (∅ ++ r)(r := h(r))) |
hP(h), r ∈ h ⊦ h = (h -- r) ∪ (∅ ++ r)(r := h(r)) ∧ (∅ ++ r)(r := h(r)) = (∅ ++ r)(r := ((h -- r) ∪ (∅ ++ r)(r := h(r)))(r)) ∧ hP((h -- r) ∪ (∅ ++ r)(r := h(r)))
Used simplifier rules: ⊦ ∅ ∪ h = h; (s) ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; (s) ⊦ h ⊥ ∅; (s) r ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)(r := o) ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0; (s) ⊦ ¬ r ∈ ∅; (s) ⊦ r ∈ h → r ≠ null; (s) ⊦ ∅ ⊥ h; (s)
| hP(h), r ∈ h ⊦ h = (h -- r) ∪ (∅ ++ r)(r := h(r)) ∧ (∅ ++ r)(r := h(r)) = (∅ ++ r)(r := ((h -- r) ∪ (∅ ++ r)(r := h(r)))(r)) ∧ hP((h -- r) ∪ (∅ ++ r)(r := h(r))) |
(h -- r) ∪ (∅ ++ r)(r := h(r)) ≠ h, hP(h), r ∈ h ⊦ h = (h -- r) ∪ (∅ ++ r)(r := h(r)) ∧ (∅ ++ r)(r := h(r)) = (∅ ++ r)(r := ((h -- r) ∪ (∅ ++ r)(r := h(r)))(r)) ∧ hP((h -- r) ∪ (∅ ++ r)(r := h(r)))
Used formulas: (h -- r) ∪ (∅ ++ r)(r := h(r)) = h
| (h -- r) ∪ (∅ ++ r)(r := h(r)) ≠ h, hP(h), r ∈ h ⊦ h = (h -- r) ∪ (∅ ++ r)(r := h(r)) ∧ (∅ ++ r)(r := h(r)) = (∅ ++ r)(r := ((h -- r) ∪ (∅ ++ r)(r := h(r)))(r)) ∧ hP((h -- r) ∪ (∅ ++ r)(r := h(r))) |
(h -- r) ∪ (∅ ++ r)(r := h(r)) ≠ h, hP(h), r ∈ h ⊦
| (h -- r) ∪ (∅ ++ r)(r := h(r)) ≠ h, hP(h), r ∈ h ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r)))
hP(h), r ∈ h, ∃ r0. ¬((r0 ∈ h ↔ r0 ∈ (h -- r) ∪ (∅ ++ r)(r := h(r))) ∧ (r0 ∈ h → h(r0) = ((h -- r) ∪ (∅ ++ r)(r := h(r)))(r0))) ⊦
Used terms: (h -- r) ∪ (∅ ++ r)(r := h(r)), h
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0(r) = h1(r))) |
| hP(h), r ∈ h, ∃ r0. ¬((r0 ∈ h ↔ r0 ∈ (h -- r) ∪ (∅ ++ r)(r := h(r))) ∧ (r0 ∈ h → h(r0) = ((h -- r) ∪ (∅ ++ r)(r := h(r)))(r0))) ⊦ |
hP(h), r ∈ h ⊦ (r0 ∈ h ↔ r0 ∈ (h -- r) ∪ (∅ ++ r)(r := h(r))) ∧ (r0 ∈ h → h(r0) = ((h -- r) ∪ (∅ ++ r)(r := h(r)))(r0))
| hP(h), r ∈ h ⊦ (r0 ∈ h ↔ r0 ∈ (h -- r) ∪ (∅ ++ r)(r := h(r))) ∧ (r0 ∈ h → h(r0) = ((h -- r) ∪ (∅ ++ r)(r := h(r)))(r0)) |
⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1)
h -- r ⊥ (∅ ++ r)(r := h(r)), hP(h), r ∈ h ⊦ (r0 ∈ h ↔ r0 ∈ h -- r ∨ r0 ∈ (∅ ++ r)(r := h(r))) ∧ (r0 ∈ h → h(r0) = ((h -- r) ∪ (∅ ++ r)(r := h(r)))(r0))
Used simplifier rules: ⊦ r ∈ h → r ≠ null; (s) ⊦ ¬ r ∈ ∅; (s) r ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)(r := o) ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0; (s) ⊦ h ⊥ ∅; (s) ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; (s) Used terms: r0, h -- r, (∅ ++ r)(r := h(r))
| ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1) |
| h -- r ⊥ (∅ ++ r)(r := h(r)), hP(h), r ∈ h ⊦ (r0 ∈ h ↔ r0 ∈ h -- r ∨ r0 ∈ (∅ ++ r)(r := h(r))) ∧ (r0 ∈ h → h(r0) = ((h -- r) ∪ (∅ ++ r)(r := h(r)))(r0)) |
h(r0) ≠ ((h -- r) ∪ (∅ ++ r)(r := h(r)))(r0), hP(h), r ∈ h, r0 ∈ h ⊦
Used simplifier rules: ⊦ ¬ 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 ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; (s) ⊦ h ⊥ ∅; (s) r ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)(r := o) ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0; (s)
| h(r0) ≠ ((h -- r) ∪ (∅ ++ r)(r := h(r)))(r0), hP(h), r ∈ h, r0 ∈ h ⊦ |
r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)(r) = (r ∈ h0 ⊃ h0(r);h1(r))
h(r0) ≠ (r0 ∈ h -- r ⊃ (h -- r)(r0);(∅ ++ r)(r := h(r))(r0)), h -- r ⊥ (∅ ++ r)(r := h(r)), hP(h), r ∈ h, r0 ∈ h, r0 ∈ (h -- r) ∪ (∅ ++ r)(r := h(r)) ⊦
Used simplifier rules: ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1); (s) ⊦ r ∈ h(r0 := o) ↔ r ∈ h; (s) r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ r ∈ h → r ≠ null; (s) ⊦ ¬ r ∈ ∅; (s) r ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)(r := o) ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0; (s) ⊦ h ⊥ ∅; (s) ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; (s) Used terms: h -- r, (∅ ++ r)(r := h(r)), r0
| r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)(r) = (r ∈ h0 ⊃ h0(r);h1(r)) |
| h(r0) ≠ (r0 ∈ h -- r ⊃ (h -- r)(r0);(∅ ++ r)(r := h(r))(r0)), h -- r ⊥ (∅ ++ r)(r := h(r)), hP(h), r ∈ h, r0 ∈ h, r0 ∈ (h -- r) ∪ (∅ ++ r)(r := h(r)) ⊦ |
h(r0) ≠ (r0 ≠ r ⊃ h(r0);h(r)), hP(h), r ∈ h, r0 ∈ (h -- r) ∪ (∅ ++ r)(r := h(r)), r0 ∈ h ⊦
Used simplifier rules: ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; (s) ⊦ h ⊥ ∅; (s) r ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)(r := o) ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0; (s) ⊦ ¬ r ∈ ∅; (s) ⊦ r ∈ h → r ≠ null; (s) r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ h(r0 := o)(r) = (r = r0 ∧ r0 ∈ h ⊃ o;h(r)); (s) r ∈ h ⊦ r ≠ r0 → (h -- r0)(r) = h(r); (s)
| h(r0) ≠ (r0 ≠ r ⊃ h(r0);h(r)), hP(h), r ∈ h, r0 ∈ (h -- r) ∪ (∅ ++ r)(r := h(r)), r0 ∈ h ⊦ |
⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1)
Used simplifier rules: ⊦ r ∈ h → r ≠ null; (s) ⊦ ¬ r ∈ ∅; (s) r ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)(r := o) ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0; (s) ⊦ h ⊥ ∅; (s) ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; (s) Used terms: r0, h -- r, (∅ ++ r)(r := h(r))
| ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1) |
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.