| o = o1, ((r => o0 * P))(H) ⊦ ⟪if ¬ r ∈ H then abort else H[r] := o⟫ ((r => o1 * P))(H) |
o = o1, ((r => o0 * P))(H) ⊦ ⟪H[r] := o⟫ ((r => o1 * P))(H)
Used simplifier rules: sep-ass: ⊦ (P0 * P1) * P2 = P0 * P1 * P2; from specification heap-sep%sep-com: ⊦ P0 * P1 = P1 * P0; from specification heap-sep% ⊦ ((r => o * P))(H) → r ∈ H; (s)