| H[r].nxt ∈ H, r ∈ H, reachable-n(H, n0, H[r].nxt, r0), n0 = 0 ∨ path(H[r].nxt ' + x, H) ∧ (H[r].nxt ' + x).last = r0 ⊦ n0 = 0, H[r].nxt = null, r = null, ∃ x. path(r ' + x, H) ∧ (r ' + x).last = r0 |
path(H[r].nxt ' + x, H), reachable-n(H, n0, H[r].nxt, (H[r].nxt ' + x).last), r ∈ H, H[r].nxt ∈ H ⊦ r = null, H[r].nxt = null, n0 = 0, ∃ x0. path(r ' + x0, H) ∧ (r ' + x0).last = (H[r].nxt ' + x).last