| # 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 = [], H[r].nxt ≠ null ∧ (∃ r1. reachable-1(H, H[r].nxt, r1) ∧ reachable-n(H, n, r1, x2.last)) |
# 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) ⊦ ∃ r1. reachable-1(H, H[r].nxt, r1) ∧ reachable-n(H, n, r1, x2.last), r = null, x2 = []
Used simplifier rules: null-not-start-of-path: ⊦ ¬ path(null ' + x, H);%a: ⊦ (x0 + x1) + x2 = x0 + x1 + x2; from specification list[reflist]