| r = r0 ∨ ce.nxt ≠ null ∧ ce.nxt ∈ H ∧ reachable(ce.nxt, r0, H[r, ce]) ⊦ ce.nxt = r, r = null, reachable(r, r0, H[r, ce]) |
reachable(ce.nxt, r0, H[r, ce]), ce.nxt ∈ H, r0 ∈ H ⊦ ce.nxt = null, r = r0, r = null, reachable(r, r0, H[r, ce])
Used simplifier rules: self-reachable: ⊦ reachable(r, r, H) ↔ r ≠ null ∧ r ∈ H;%reach-alloc: ⊦ reachable(r, r1, H) → r1 ∈ H;% ⊦ r ≠ r0 → (r ∈ H[r0, ce] ↔ r ∈ H); (s)% ⊦ r ∈ H[r, ce]; (s)