| x.last = H[r0].nxt, ce.nxt = H[x.last].nxt, path(r ' + x, H[r0, ce]), reachable(r, r0, H), x.last ∈ H, r0 ∈ H, x.last ∈ H[r0, ce], ∀ r1. ¬ reachable(H[r1].nxt, r1, H) ⊦ x.last = null, x = [], dups(x), r ∈ x |
ce.nxt = H[r2].nxt, r2 = H[r0].nxt, x = x1 + r2 ', path(r ' + x, H[r0, ce]), reachable(r, r0, H), r2 ∈ H[r0, ce], r0 ∈ H, r2 ∈ H, ∀ r1. ¬ reachable(H[r1].nxt, r1, H) ⊦ r2 = null, x = [], dups(x), r ∈ x
Used simplifier rules: x0 ≠ [] ⊦ r = x0.last ∧ x1 = x0.butlast ↔ x0 = x1 + r '; (elim) Used terms: x, r2, x0