| path(H[H[r].nxt].nxt ' + x1 + r ', H), path(H[H[r].nxt].nxt ' + x0 + H[r].nxt ', H), H[r].nxt ∈ H, r ∈ H ⊦ H[r].nxt = null, H[r].nxt = H[H[r].nxt].nxt, r = H[H[r].nxt].nxt, dups(x1), r ∈ x0, H[H[r].nxt].nxt ∈ x1, r ∈ x1 |
path(r ' + x, H), path(r ' + y, H) ⊦ x = y ∨ (∃ r0, y0. x = y + r0 ' + y0) ∨ (∃ r0, x0. y = x + r0 ' + x0)
path(H[H[r].nxt].nxt ' + x0 + H[r].nxt ', H), path(H[H[r].nxt].nxt ' + x1 + r ', H), r ∈ H, H[r].nxt ∈ H, x0 + H[r].nxt ' = x1 + r ' ∨ (∃ r0, y0. x0 + H[r].nxt ' = (x1 + r ') + r0 ' + y0) ∨ (∃ r0, x2. x1 + r ' = (x0 + H[r].nxt ') + r0 ' + x2) ⊦ H[r].nxt = H[H[r].nxt].nxt, H[r].nxt = null, r = H[H[r].nxt].nxt, dups(x1), r ∈ x1, H[H[r].nxt].nxt ∈ x1, r ∈ x0
Used terms: H[H[r].nxt].nxt, x0 + H[r].nxt ', H, x1 + r '