| reachable(r0, r1, H), r0 ∈ H, r1 ∈ H, ∃ x. path(r ' + x, H) ∧ (r ' + x).last = r0 ⊦ reachable(r, r0, H[r1, ce]), reachable(r1, r0, H) |
path(r ' + x, H), reachable((r ' + x).last, r1, H), r1 ∈ H, (r ' + x).last ∈ H ⊦ reachable(r1, (r ' + x).last, H), reachable(r, (r ' + x).last, H[r1, ce])