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