| path(H[H[x.last].nxt].nxt ' + x, H), path(H[H[x.last].nxt].nxt ' + x0 + H[x.last].nxt ', H), H[x.last].nxt ∈ H, x.last ∈ H ⊦ x.last = H[H[x.last].nxt].nxt, H[x.last].nxt = null, H[x.last].nxt = H[H[x.last].nxt].nxt, x = [], x.last ∈ x0, H[H[x.last].nxt].nxt ∈ x, dups(x) |
x = x1 + r ', path(H[H[r].nxt].nxt ' + x, H), path(H[H[r].nxt].nxt ' + x0 + H[r].nxt ', H), H[r].nxt ∈ H, r ∈ H ⊦ r = H[H[r].nxt].nxt, H[r].nxt = null, H[r].nxt = H[H[r].nxt].nxt, x = [], r ∈ x0, H[H[r].nxt].nxt ∈ x, dups(x)
Used simplifier rules: x0 ≠ [] ⊦ r = x0.last ∧ x1 = x0.butlast ↔ x0 = x1 + r '; (elim) Used terms: x, r, x1