| path(r ' + x + H[r0].nxt ', H), reachable(r, r0, H), H[r0].nxt ∈ H, r0 ∈ H ⊦ H[r0].nxt = null, r0 = r, r0 ∈ x, reachable(r, (r ' + x).last, H) ∧ H[r0].nxt = H[(r ' + x).last].nxt ∧ ¬ reachable(r0, (r ' + x).last, H) |
path(r ' + x + H[r0].nxt ', H), reachable(r, r0, H), H[r0].nxt ∈ H, r0 ∈ H ⊦ H[r0].nxt = null, r0 = r, r0 ∈ x, reachable(r, (r ' + x).last, H) ∧ ¬ reachable(r0, (r ' + x).last, H)
Used simplifier rules: path-last-nxt: ⊦ path(r ' + x + r0 ', H) → (H[(r ' + x).last].nxt ≠ r0 ↔ false);%a: ⊦ (x0 + x1) + x2 = x0 + x1 + x2; from specification list[reflist]