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