| x = x1 + r1 ', path(r ' + x, H[r1, ce]), r ∈ H ⊦ x = [], dups(x), r1 ∈ H, r ∈ x, ∃ r0. reachable(r, r0, H) ∧ H[r0].nxt = r1 ∧ H[r0].nxt ≠ null |
path(r ' + x1 + r1 ', H[r1, ce]), r ∈ H ⊦ dups(x1), r ∈ x1, r1 ∈ H, r1 ∈ x1, ∃ r0. reachable(r, r0, H) ∧ H[r0].nxt = r1 ∧ H[r0].nxt ≠ null
Used simplifier rules: ⊦ dups(x0 + r ') ↔ r ∈ x0 ∨ dups(x0); (ws)% ⊦ r ∈ r0 ' ↔ r = r0; (s)% ⊦ r ∈ x0 + x1 ↔ r ∈ x0 ∨ r ∈ x1; (s)%a: ⊦ (x0 + x1) + x2 = x0 + x1 + x2; from specification list[reflist]% ⊦ x0 + r ' ≠ []; (s)