| reachable(r, r0, H[r0, ce]), ce.nxt = H[ce.nxt].nxt, ce.nxt = H[r0].nxt, r0 ∈ H, ce.nxt ∈ H, reachable(r, r0, H) ⊦ ce.nxt = null, reachable(r, ce.nxt, H[r0, ce]) |
ce.nxt = H[r0].nxt, ce.nxt = H[ce.nxt].nxt, reachable(r, r0, H), ce.nxt ∈ H, r0 ∈ H, reachable(r, r0, H[r0, ce]) ⊦ ce.nxt = null, reachable(r, ce.nxt, H[r0, ce])
Used simplifier rules: reach-alloc: ⊦ reachable(r, r1, H) → r1 ∈ H;%insin: ⊦ r ∈ H[r, ce]; from specification store[linheap]