| H1 ++ r = H0 ∪ H4 ∪ H3, !(me, O2, P)(H4), !(me, O2, r =>_)(H0), r =>_(H0), P0(H3), rely(me, O1(r; me), H1 ++ r, O2, H2), H0 ⊥ H3, H0 ⊥ H4, H4 ⊥ H3 ⊦ r = null, ((!(me, O1, P) * P0))(H4 ∪ H3), ((!(me, O1, P) * P0))(H1), r ∈ H1, P(H4) ∧ (∀ r. r ∈ H4 → O1(r) = me) |
H1 ++ r = H0 ∪ H4 ∪ H3, !(me, O2, P)(H4), !(me, O2, r =>_)(H0), r =>_(H0), P(H4), P0(H3), rely(me, O1(r; me), H1 ++ r, O2, H2), r0 ∈ H4, H0 ⊥ H3, H0 ⊥ H4, H4 ⊥ H3 ⊦ O1(r0) = me, r = null, ((!(me, O1, P) * P0))(H4 ∪ H3), ((!(me, O1, P) * P0))(H1), r ∈ H1
Used simplifier rules: owned-P: ⊦ !(me, O, P)(H) ∧ ¬ P(H) → false;