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