| 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, x0 + H[r].nxt ' = x1 + r ' ∨ x0 + H[r].nxt ' = (x1 + r ') + r0 ' + y ∨ x1 + r ' = (x0 + H[r].nxt ') + r1 ' + x ⊦ r = H[H[r].nxt].nxt, H[r].nxt = null, H[r].nxt = H[H[r].nxt].nxt, r ∈ x0, H[H[r].nxt].nxt ∈ x1, r ∈ x1, dups(x1) |
x1 + r ' = (x0 + H[r].nxt ') + r1 ' + x, 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 ⊦ r = H[H[r].nxt].nxt, H[r].nxt = null, H[r].nxt = H[H[r].nxt].nxt, r ∈ x0, H[H[r].nxt].nxt ∈ x1, r ∈ x1, dups(x1)
Used simplifier rules: in-15: ⊦ x0 + r ' = x1 → r ∈ x1; (forward) from specification list[reflist]%a: ⊦ (x0 + x1) + x2 = x0 + x1 + x2; from specification list[reflist]%in-append: ⊦ r ∈ x0 + x1 ↔ ¬ ¬(r ∈ x0 ∨ r ∈ x1); from specification list[reflist]%in-rec: ⊦ r ∈ r0 ' + x0 ↔ ¬ ¬(r = r0 ∨ r ∈ x0); from specification list[reflist]%neq-03: ⊦ ¬ r ∈ x ∧ r ≠ r0 → x + r0 ' ≠ x0 + r ' + x1; from specification list[reflist]%app-06: ⊦ x0 + r ' = x1 + r0 ' ↔ x0 = x1 ∧ r = r0; from specification list[reflist]