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