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