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