| ((r => mknode(r0, a, r1) * tr(r0, t0) * tr(r1, t1) * P0 * P1))(H) ⊦ ((_∃(λ r0, r1. r => mknode(r0, a, r1) * tr(r0, t0) * tr(r1, t1)) * P0 * true))(H) |
((r => mknode(r0, a, r1) * tr(r0, t0) * tr(r1, t1) * P0 * P1))(H) ⊦ ∃ r0, r1. (((r => mknode(r0, a, r1) * tr(r0, t0) * tr(r1, t1)) * P0 * true))(H)
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% ⊦ ((_∃ rrP * P))(H) ↔ (∃ r0, r1. ((rrP(r0, r1) * P))(H)); (s)