| # x2 = n + 1, (H[r].nxt ' + x1).last = x2.last, # x1 = n + 1, path(H[r].nxt ' + x2, H), r ∈ H, reachable-1(H, H[r].nxt, r0), reachable-n(H, n, r0, x2.last), path(H[r].nxt ' + x1, H) ⊦ r = null, x2 = [], reachable-1(H, r, H[r].nxt) ∧ (∃ r1. reachable-1(H, H[r].nxt, r1) ∧ reachable-n(H, n, r1, x2.last)) |
⊦ reachable-1(H, r, r0) ↔ r ≠ null ∧ r0 ≠ null ∧ r ∈ H ∧ r0 ∈ H ∧ H[r].nxt = r0
# x2 = n + 1, (H[r].nxt ' + x1).last = x2.last, # x1 = n + 1, path(H[r].nxt ' + x2, H), r ∈ H, reachable-1(H, H[r].nxt, r0), reachable-n(H, n, r0, x2.last), path(H[r].nxt ' + x1, H) ⊦ r = null, x2 = [], (r ≠ null ∧ H[r].nxt ≠ null ∧ r ∈ H ∧ H[r].nxt ∈ H ∧ H[r].nxt = H[r].nxt) ∧ (∃ r1. reachable-1(H, H[r].nxt, r1) ∧ reachable-n(H, n, r1, x2.last))
Used terms: H[r].nxt, r, H