| path(r ' + x, H[r2, ce]), r2 ∈ x, r ∈ H, x.last ∈ H ⊦ dups(x), reachable(r, x.last, H), r2 ∈ H, r ∈ x, ∃ r0. reachable(r, r0, H) ∧ H[r0].nxt = r2 ∧ H[r0].nxt ≠ null ∧ reachable(ce.nxt, x.last, H) |
⊦ r ∈ x0 ↔ (∃ x1, x2. x0 = x1 + (r + x2))
path(r ' + x, H[r2, ce]), x.last ∈ H, r ∈ H, ∃ x1, x2. x = x1 + (r2 + x2) ⊦ dups(x), reachable(r, x.last, H), r ∈ x, r2 ∈ H, ∃ r0. reachable(r, r0, H) ∧ H[r0].nxt = r2 ∧ H[r0].nxt ≠ null ∧ reachable(ce.nxt, x.last, H)
Used terms: x, r2