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