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