| ⊦ rely(me, hO1, h1, hO2, h2) → !(me, hO1, hP) = !(me, hO2, hP) |
!(me, hO1, hP) ≠ !(me, hO2, hP), rely(me, hO1, h1, hO2, h2) ⊦
| !(me, hO1, hP) ≠ !(me, hO2, hP), rely(me, hO1, h1, hO2, h2) ⊦ |
!(me, hO1, hP) ≠ !(me, hO2, hP), rely(me, hO1, h1, hO2, h2) ⊦
| !(me, hO1, hP) ≠ !(me, hO2, hP), rely(me, hO1, h1, hO2, h2) ⊦ |
¬(!(me, hO1, hP)(h) ↔ !(me, hO2, hP)(h)), rely(me, hO1, h1, hO2, h2) ⊦
| ¬(!(me, hO1, hP)(h) ↔ !(me, hO2, hP)(h)), rely(me, hO1, h1, hO2, h2) ⊦ |
!(me, hO1, hP)(h), rely(me, hO1, h1, hO2, h2), ¬ !(me, hO2, hP)(h) ⊦
!(me, hO2, hP)(h), rely(me, hO1, h1, hO2, h2), ¬ !(me, hO1, hP)(h) ⊦
| !(me, hO1, hP)(h), rely(me, hO1, h1, hO2, h2), ¬ !(me, hO2, hP)(h) ⊦ |
⊦ !(id, of, hP)(h) ↔ hP(h) ∧ (∀ r. r ∈ h → of(r) = id)
hP(h), rely(me, hO1, h1, hO2, h2), ¬ !(me, hO2, hP)(h), ∀ r. r ∈ h → hO1(r) = me ⊦
Used terms: h, hP, hO1, me
| ⊦ !(id, of, hP)(h) ↔ hP(h) ∧ (∀ r. r ∈ h → of(r) = id) |
| hP(h), rely(me, hO1, h1, hO2, h2), ¬ !(me, hO2, hP)(h), ∀ r. r ∈ h → hO1(r) = me ⊦ |
hP(h), rely(me, hO1, h1, hO2, h2), ¬ !(me, hO2, hP)(h), ∀ r. r ∈ h → hO1(r) = me ⊦
| hP(h), rely(me, hO1, h1, hO2, h2), ¬ !(me, hO2, hP)(h), ∀ r. r ∈ h → hO1(r) = me ⊦ |
⊦ !(id, of, hP)(h) ↔ hP(h) ∧ (∀ r. r ∈ h → of(r) = id)
hP(h), rely(me, hO1, h1, hO2, h2), ∀ r. r ∈ h → hO1(r) = me, ¬ hP(h) ∨ (∃ r. ¬(r ∈ h → hO2(r) = me)) ⊦
Used terms: h, hP, hO2, me
| ⊦ !(id, of, hP)(h) ↔ hP(h) ∧ (∀ r. r ∈ h → of(r) = id) |
| hP(h), rely(me, hO1, h1, hO2, h2), ∀ r. r ∈ h → hO1(r) = me, ¬ hP(h) ∨ (∃ r. ¬(r ∈ h → hO2(r) = me)) ⊦ |
hO2(r) ≠ me, hP(h), rely(me, hO1, h1, hO2, h2), r ∈ h, ∀ r. r ∈ h → hO1(r) = me ⊦
| hO2(r) ≠ me, hP(h), rely(me, hO1, h1, hO2, h2), r ∈ h, ∀ r. r ∈ h → hO1(r) = me ⊦ |
hO2(r) ≠ me, hP(h), rely(me, hO1, h1, hO2, h2), r ∈ h, r ∈ h → hO1(r) = me ⊦
Used terms: r
| hO2(r) ≠ me, hP(h), rely(me, hO1, h1, hO2, h2), r ∈ h, r ∈ h → hO1(r) = me ⊦ |
hO2(r) ≠ hO1(r), hP(h), rely(hO1(r), hO1, h1, hO2, h2), r ∈ h ⊦
| hO2(r) ≠ hO1(r), hP(h), rely(hO1(r), hO1, h1, hO2, h2), r ∈ h ⊦ |
⊦ rely(me, of1, h1, of2, h2) ↔ (∀ r. (of1(r) = me ↔ of2(r) = me) ∧ (of1(r) = me → (r ∈ h1 ↔ r ∈ h2) ∧ (r ∈ h1 → h1[r] = h2[r])))
hO2(r) ≠ hO1(r), hP(h), r ∈ h, ∀ r0. (hO1(r0) = hO1(r) ↔ hO2(r0) = hO1(r)) ∧ (hO1(r0) = hO1(r) → (r0 ∈ h1 ↔ r0 ∈ h2) ∧ (r0 ∈ h1 → h1[r0] = h2[r0])) ⊦
Used terms: hO2, hO1, hO1(r), h1, h2
| ⊦ rely(me, of1, h1, of2, h2) ↔ (∀ r. (of1(r) = me ↔ of2(r) = me) ∧ (of1(r) = me → (r ∈ h1 ↔ r ∈ h2) ∧ (r ∈ h1 → h1[r] = h2[r]))) |
| hO2(r) ≠ hO1(r), hP(h), r ∈ h, ∀ r0. (hO1(r0) = hO1(r) ↔ hO2(r0) = hO1(r)) ∧ (hO1(r0) = hO1(r) → (r0 ∈ h1 ↔ r0 ∈ h2) ∧ (r0 ∈ h1 → h1[r0] = h2[r0])) ⊦ |
Used terms: r
| !(me, hO2, hP)(h), rely(me, hO1, h1, hO2, h2), ¬ !(me, hO1, hP)(h) ⊦ |
⊦ !(id, of, hP)(h) ↔ hP(h) ∧ (∀ r. r ∈ h → of(r) = id)
!(me, hO2, hP)(h), rely(me, hO1, h1, hO2, h2), ¬ hP(h) ∨ (∃ r. ¬(r ∈ h → hO1(r) = me)) ⊦
Used terms: h, hP, hO1, me
| ⊦ !(id, of, hP)(h) ↔ hP(h) ∧ (∀ r. r ∈ h → of(r) = id) |
| !(me, hO2, hP)(h), rely(me, hO1, h1, hO2, h2), ¬ hP(h) ∨ (∃ r. ¬(r ∈ h → hO1(r) = me)) ⊦ |
hO1(r) ≠ me, !(me, hO2, hP)(h), hP(h), rely(me, hO1, h1, hO2, h2), r ∈ h ⊦
Used simplifier rules: owned-P: ⊦ !(me, hO, hP)(h) ∧ ¬ hP(h) → false;
| hO1(r) ≠ me, !(me, hO2, hP)(h), hP(h), rely(me, hO1, h1, hO2, h2), r ∈ h ⊦ |
⊦ !(id, of, hP)(h) ↔ hP(h) ∧ (∀ r. r ∈ h → of(r) = id)
hO1(r) ≠ me, hP(h), rely(me, hO1, h1, hO2, h2), r ∈ h, ∀ r. r ∈ h → hO2(r) = me ⊦
Used terms: h, hP, hO2, me
| ⊦ !(id, of, hP)(h) ↔ hP(h) ∧ (∀ r. r ∈ h → of(r) = id) |
| hO1(r) ≠ me, hP(h), rely(me, hO1, h1, hO2, h2), r ∈ h, ∀ r. r ∈ h → hO2(r) = me ⊦ |
hO1(r) ≠ me, hP(h), rely(me, hO1, h1, hO2, h2), r ∈ h, ∀ r. r ∈ h → hO2(r) = me ⊦
| hO1(r) ≠ me, hP(h), rely(me, hO1, h1, hO2, h2), r ∈ h, ∀ r. r ∈ h → hO2(r) = me ⊦ |
hO1(r) ≠ me, hP(h), rely(me, hO1, h1, hO2, h2), r ∈ h, r ∈ h → hO2(r) = me ⊦
Used terms: r
| hO1(r) ≠ me, hP(h), rely(me, hO1, h1, hO2, h2), r ∈ h, r ∈ h → hO2(r) = me ⊦ |
hO1(r) ≠ hO2(r), hP(h), rely(hO2(r), hO1, h1, hO2, h2), r ∈ h ⊦
| hO1(r) ≠ hO2(r), hP(h), rely(hO2(r), hO1, h1, hO2, h2), r ∈ h ⊦ |
⊦ rely(me, of1, h1, of2, h2) ↔ (∀ r. (of1(r) = me ↔ of2(r) = me) ∧ (of1(r) = me → (r ∈ h1 ↔ r ∈ h2) ∧ (r ∈ h1 → h1[r] = h2[r])))
hO1(r) ≠ hO2(r), hP(h), r ∈ h, ∀ r0. (hO1(r0) = hO2(r) ↔ hO2(r0) = hO2(r)) ∧ (hO1(r0) = hO2(r) → (r0 ∈ h1 ↔ r0 ∈ h2) ∧ (r0 ∈ h1 → h1[r0] = h2[r0])) ⊦
Used terms: hO2, hO1, hO2(r), h1, h2
| ⊦ rely(me, of1, h1, of2, h2) ↔ (∀ r. (of1(r) = me ↔ of2(r) = me) ∧ (of1(r) = me → (r ∈ h1 ↔ r ∈ h2) ∧ (r ∈ h1 → h1[r] = h2[r]))) |
| hO1(r) ≠ hO2(r), hP(h), r ∈ h, ∀ r0. (hO1(r0) = hO2(r) ↔ hO2(r0) = hO2(r)) ∧ (hO1(r0) = hO2(r) → (r0 ∈ h1 ↔ r0 ∈ h2) ∧ (r0 ∈ h1 → h1[r0] = h2[r0])) ⊦ |
Used terms: 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.