| H[H[r].nxt].nxt = H[ce.nxt].nxt, ce.nxt ∈ H, H[r].nxt ∈ H, r ∈ H, path(ce.nxt ' + x0, H[H[r].nxt, ce]) ⊦ r = H[r].nxt, ce.nxt = null, H[r].nxt = null, (ce.nxt ' + x0).last = ce.nxt, r = null, ce.nxt ' + x0 = [], reachable(H[r].nxt, ce.nxt, H), reachable(H[r].nxt, (ce.nxt ' + x0).last, H), H[ce.nxt].nxt ≠ null ∧ H[ce.nxt].nxt ∈ H |
x0 = r0 + x, H[H[r].nxt].nxt = H[ce.nxt].nxt, ce.nxt ∈ H, H[r].nxt ∈ H, r ∈ H, path(ce.nxt ' + x0, H[H[r].nxt, ce]) ⊦ r = H[r].nxt, ce.nxt = null, H[r].nxt = null, (ce.nxt ' + x0).last = ce.nxt, r = null, ce.nxt ' + x0 = [], reachable(H[r].nxt, ce.nxt, H), reachable(H[r].nxt, (ce.nxt ' + x0).last, H), H[ce.nxt].nxt ≠ null ∧ H[ce.nxt].nxt ∈ H
Used simplifier rules: reflist freely generated by [], +;;%app: ⊦ x0 + [] = x0; from specification list[reflist]%a: ⊦ (x0 + x1) + x2 = x0 + x1 + x2; from specification list[reflist]%l: ⊦ r '.last = r; from specification list-last[reflist]