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