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