| ⊦ ((adP ⊗_ st * P))(H) ↔ (∃ a, d, st0. ¬ a ∈ st0 ∧ st = st0[a, d] ∧ ((adP(a, d) * adP ⊗_ st0 * P))(H)), st = ∅ |
((adP ⊗_ st * P))(H) ⊦ st = ∅, ∃ a, d, st0. ¬ a ∈ st0 ∧ st = st0[a, d] ∧ ((adP(a, d) * adP ⊗_ st0 * P))(H)
Used simplifier rules: Sep-ins: ⊦ ¬ a ∈ st → adP ⊗_ st[a, d] = adP(a, d) * adP ⊗_ st;%sep-com: ⊦ P0 * P1 = P1 * P0; from specification heap-sep%sep-ass: ⊦ (P0 * P1) * P2 = P0 * P1 * P2; from specification heap-sep