| # 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)) |
# 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))
Used simplifier rules: path-first-in-H: ⊦ path(r ' + x, H) → (¬ r ∈ H ↔ false);%a: ⊦ (x0 + x1) + x2 = x0 + x1 + x2; from specification list[reflist]