| ce.nxt = H[r0].nxt, ce.nxt = H[ce.nxt].nxt, reachable(r, r0, H), reachable(r, r0, H[r0, ce]), ce.nxt ∈ H, r0 ∈ H ⊦ ce.nxt = null, reachable(r, ce.nxt, H[r0, ce]) |
⊦ reachable(r, r1, H) → (reachable(r, H[r1].nxt, H) ↔ ¬(H[r1].nxt = null ∨ ¬ H[r1].nxt ∈ H))
Used simplifier rules: changenonnxt-reachable: ⊦ reachable(r, r0, H) ∧ ce.nxt = H[r1].nxt → (reachable(r, r0, H[r1, ce]) ↔ true);%endnotinH-notreachable: ⊦ ¬ r0 ∈ H → (reachable(r, r0, H) ↔ false);% ⊦ H[r, ce][r] = ce; (s)% ⊦ r ∈ H[r0, ce] ↔ r = r0 ∨ r ∈ H; (ws) Used terms: r, r0, H[r0, ce]