| ((r => o0 * P))(H0), P0(H), rely(me, O1, H0[r, o1] ∪ H, O2, H2), H0 ⊥ H, ∀ r. r ∈ H0 → O2(r) = me ⊦ ((!(me, O2, r => o1 * P) * P0))(H0[r, o1] ∪ H), !(me, O2, r => o1 * P)(H0[r, o1]) ∧ (∀ r0. ¬ r0 ∈ H0[r, o1] ∨ ¬ r0 ∈ H) |
((r => o0 * P))(H0), P0(H), rely(me, O1, H0[r, o1] ∪ H, O2, H2), H0 ⊥ H, ∀ r. r ∈ H0 → O2(r) = me ⊦ !(me, O2, r => o1 * P)(H0[r, o1]), ((!(me, O2, r => o1 * P) * P0))(H0[r, o1] ∪ H)
Used simplifier rules: ⊦ r ∈ H1 ∧ H0 ⊥ H1 → (r ∈ H0 ↔ false); (s)% ⊦ r ∈ H[r0, o] ↔ r ∈ H; (s)