| ¬ x ≠ [], ce.nxt = H[H[r0].nxt].nxt, (r ' + x).last = H[r0].nxt, path(r ' + x, H[r0, ce]), reachable(r, r0, H), H[r0].nxt ∈ H, H[r0].nxt ∈ H[r0, ce], r0 ∈ H, ∀ r1. ¬ reachable(H[r1].nxt, r1, H) ⊦ H[r0].nxt = null, r ∈ x, dups(x) |
ce.nxt = H[H[r0].nxt].nxt, r0 ∈ H, H[r0].nxt ∈ H[r0, ce], H[r0].nxt ∈ H, reachable(H[r0].nxt, r0, H), ∀ r1. ¬ reachable(H[r1].nxt, r1, H) ⊦ H[r0].nxt = null
Used simplifier rules: path-one: ⊦ path(r ', H) ↔ ¬ ¬(r ∈ H ∧ r ≠ null);%e-01: ⊦ ¬ dups([]); from specification list-dup[reflist]%in-empty: ⊦ ¬ r ∈ []; from specification list[reflist]%l: ⊦ r '.last = r; from specification list-last[reflist]%a: ⊦ (x0 + x1) + x2 = x0 + x1 + x2; from specification list[reflist]%app: ⊦ x0 + [] = x0; from specification list[reflist]