| ((oP(o) * P0))(H1), P(H0), H1 ⊥ H0, ∀ r. r ∈ H1 → O(r) = me ⊦ ((!(me, O, _∃ oP * P0) * P))(H1 ∪ H0), ((_∃ oP * P0))(H1) ∧ (∀ r. r ∈ H1 → O(r) = me) |
((oP(o) * P0))(H1), P(H0), H1 ⊥ H0, ∀ r. r ∈ H1 → O(r) = me ⊦ ((!(me, O, _∃ oP * P0) * P))(H1 ∪ H0), ∃ o. ((oP(o) * P0))(H1)
Used simplifier rules: sep-com: ⊦ P0 * P1 = P1 * P0; from specification heap-sep%sep-ass: ⊦ (P0 * P1) * P2 = P0 * P1 * P2; from specification heap-sep% ⊦ ((_∃ oP * P))(H) ↔ (∃ o. ((oP(o) * P))(H)); (s)