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