| ⊦ rely(me, hO0, h0, hO1, h1) ∧ rely(me, hO1, h1, hO2, h2) → rely(me, hO0, h0, hO2, h2) |
rely(me, hO0, h0, hO1, h1), rely(me, hO1, h1, hO2, h2), ¬ rely(me, hO0, h0, hO2, h2) ⊦
| rely(me, hO0, h0, hO1, h1), rely(me, hO1, h1, hO2, h2), ¬ rely(me, hO0, h0, hO2, h2) ⊦ |
rely(me, hO1, h1, hO2, h2), rely(me, hO0, h0, hO1, h1), ¬ rely(me, hO0, h0, hO2, h2) ⊦
| rely(me, hO1, h1, hO2, h2), rely(me, hO0, h0, hO1, h1), ¬ rely(me, hO0, h0, hO2, 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])))
rely(me, hO0, h0, hO1, h1), rely(me, hO1, h1, hO2, h2), ∃ r. ¬((hO0(r) = me ↔ hO2(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h2) ∧ (r ∈ h0 → h0[r] = h2[r]))) ⊦
Used terms: hO2, hO0, me, h0, 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]))) |
| rely(me, hO0, h0, hO1, h1), rely(me, hO1, h1, hO2, h2), ∃ r. ¬((hO0(r) = me ↔ hO2(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h2) ∧ (r ∈ h0 → h0[r] = h2[r]))) ⊦ |
rely(me, hO1, h1, hO2, h2), rely(me, hO0, h0, hO1, h1) ⊦ (hO0(r) = me ↔ hO2(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h2) ∧ (r ∈ h0 → h0[r] = h2[r]))
| rely(me, hO1, h1, hO2, h2), rely(me, hO0, h0, hO1, h1) ⊦ (hO0(r) = me ↔ hO2(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h2) ∧ (r ∈ h0 → h0[r] = h2[r])) |
⊦ 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])))
rely(me, hO0, h0, hO1, h1), ∀ r. (hO1(r) = me ↔ hO2(r) = me) ∧ (hO1(r) = me → (r ∈ h1 ↔ r ∈ h2) ∧ (r ∈ h1 → h1[r] = h2[r])) ⊦ (hO0(r) = me ↔ hO2(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h2) ∧ (r ∈ h0 → h0[r] = h2[r]))
Used terms: hO2, hO1, me, 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]))) |
| rely(me, hO0, h0, hO1, h1), ∀ r. (hO1(r) = me ↔ hO2(r) = me) ∧ (hO1(r) = me → (r ∈ h1 ↔ r ∈ h2) ∧ (r ∈ h1 → h1[r] = h2[r])) ⊦ (hO0(r) = me ↔ hO2(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h2) ∧ (r ∈ h0 → h0[r] = h2[r])) |
hO1(r) = me ↔ hO2(r) = me, rely(me, hO0, h0, hO1, h1), hO1(r) = me → (r ∈ h1 ↔ r ∈ h2) ∧ (r ∈ h1 → h1[r] = h2[r]) ⊦ (hO0(r) = me ↔ hO2(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h2) ∧ (r ∈ h0 → h0[r] = h2[r]))
Used terms: r
| hO1(r) = me ↔ hO2(r) = me, rely(me, hO0, h0, hO1, h1), hO1(r) = me → (r ∈ h1 ↔ r ∈ h2) ∧ (r ∈ h1 → h1[r] = h2[r]) ⊦ (hO0(r) = me ↔ hO2(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h2) ∧ (r ∈ h0 → h0[r] = h2[r])) |
hO1(r) = me ↔ hO2(r) = me, rely(me, hO0, h0, hO1, h1), hO2(r) = me → (r ∈ h1 ↔ r ∈ h2) ∧ (r ∈ h1 → h1[r] = h2[r]) ⊦ (hO0(r) = me ↔ hO2(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h2) ∧ (r ∈ h0 → h0[r] = h2[r]))
| hO1(r) = me ↔ hO2(r) = me, rely(me, hO0, h0, hO1, h1), hO2(r) = me → (r ∈ h1 ↔ r ∈ h2) ∧ (r ∈ h1 → h1[r] = h2[r]) ⊦ (hO0(r) = me ↔ hO2(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h2) ∧ (r ∈ h0 → h0[r] = h2[r])) |
⊦ 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) = me ↔ hO2(r) = me, hO2(r) = me → (r ∈ h1 ↔ r ∈ h2) ∧ (r ∈ h1 → h1[r] = h2[r]), ∀ r. (hO0(r) = me ↔ hO1(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) ⊦ (hO0(r) = me ↔ hO2(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h2) ∧ (r ∈ h0 → h0[r] = h2[r]))
Used terms: hO1, hO0, me, h0, h1
| ⊦ 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) = me ↔ hO2(r) = me, hO2(r) = me → (r ∈ h1 ↔ r ∈ h2) ∧ (r ∈ h1 → h1[r] = h2[r]), ∀ r. (hO0(r) = me ↔ hO1(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) ⊦ (hO0(r) = me ↔ hO2(r) = me) ∧ (hO0(r) = me → (r ∈ h0 ↔ r ∈ h2) ∧ (r ∈ h0 → h0[r] = h2[r])) |
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.