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