| r = H[(r ' + x).last].nxt, ce.nxt = H[r].nxt, path(r ' + x, H), r ∈ H, (r ' + x).last ∈ H ⊦ r = ce.nxt, r = null, r = (r ' + x).last, r ∈ x, dups(x), ∃ x0. path(r ' + x0, H[(r ' + x).last, ce]) ∧ (r ' + x0).last = r |
Used simplifier rules: path-one: ⊦ path(r ', H) ↔ ¬ ¬(r ∈ H ∧ r ≠ null);%path-first-in-H: ⊦ path(r ' + x, H) → (¬ r ∈ H ↔ false);%app: ⊦ x0 + [] = x0; from specification list[reflist]%a: ⊦ (x0 + x1) + x2 = x0 + x1 + x2; from specification list[reflist]%in-neq: ⊦ r ≠ r0 → (r ∈ H[r0, ce] ↔ r ∈ H); from specification store[linheap]%l: ⊦ r '.last = r; from specification list-last[reflist] Used terms: []