| ((r =>_ * P))(H), r ∈ H ⊦ ((r => o0 * P))(H[r, o1]) ↔ o0 = o1 |
((r => o * P))(H) ⊦ ((r => o0 * P))(H[r, o1]) ↔ o0 = o1
Used simplifier rules: mapex-in: ⊦ ((r =>_ * P))(H) → r ∈ H;%mapex: ⊦ r =>_ = _∃(λ o. r => o);%ex3-shift: ⊦ ((_∃ oP * P))(H) ↔ (∃ o. ((oP(o) * P))(H));%sep-com: ⊦ P0 * P1 = P1 * P0; from specification heap-sep%sep-ass: ⊦ (P0 * P1) * P2 = P0 * P1 * P2; from specification heap-sep