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