| path(r ' + x, H), x.last ∈ H ⊦ x = [], r = x.last, reachable(H[r].nxt, x.last, H) |
⊦ reachable(r, r0, H) ↔ (∃ x. path(r ' + x, H) ∧ (r ' + x).last = r0)
path(r ' + x, H), x.last ∈ H ⊦ x = [], r = x.last, ∃ x0. path(H[r].nxt ' + x0, H) ∧ (H[r].nxt ' + x0).last = x.last
Used terms: H, x.last, H[r].nxt