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