| r ∈ H, path(r ' + x, H[(r ' + x).last, ce]) ⊦ (r ' + x).last ∈ H, r ∈ x, dups(x), ∃ r0. reachable(r, r0, H) ∧ H[r0].nxt = (r ' + x).last ∧ H[r0].nxt ≠ null |
r ∈ H, path(r ' + x, H[(r ' + x).last, ce]) ⊦ x = [], (r ' + x).last ∈ H, r ∈ x, dups(x), ∃ r0. reachable(r, r0, H) ∧ H[r0].nxt = (r ' + x).last ∧ H[r0].nxt ≠ null
Used simplifier rules: path-one: ⊦ path(r ', H) ↔ ¬ ¬(r ∈ H ∧ r ≠ null);%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]%insin: ⊦ r ∈ H[r, ce]; from specification store[linheap] Used formulas: x = []