| H0[r] = H3[r], !(id, O2, P1)(H3), !(me, O2, P)(H0), P0(H), rely(me, O1, H0 ∪ H, O2, H3 ∪ H2), r ∈ H0, r ∈ H0 ∪ H1, r ∈ H3, H3 ⊥ H2, H0 ⊥ H, H1 ⊥ H0 ⊦ id = me |
⊦ rely(me, O1, H1, O2, H2) ↔ (∀ r. (O1(r) = me ↔ O2(r) = me) ∧ (O1(r) = me → (r ∈ H1 ↔ r ∈ H2) ∧ (r ∈ H1 → H1[r] = H2[r])))
H0[r] = H3[r], !(me, O2, P)(H0), !(id, O2, P1)(H3), P0(H), r ∈ H3, r ∈ H0 ∪ H1, r ∈ H0, H1 ⊥ H0, H0 ⊥ H, H3 ⊥ H2, ∀ r. (O1(r) = me ↔ O2(r) = me) ∧ (O1(r) = me → (r ∈ H0 ∪ H ↔ r ∈ H3 ∪ H2) ∧ (r ∈ H0 ∪ H → (H0 ∪ H)[r] = (H3 ∪ H2)[r])) ⊦ id = me
Used terms: H3 ∪ H2, O2, H0 ∪ H, O1, me