step(a, b). step(a, c). step(b, d). step(c, e). step(c, f). step(d, e). step(e, f). reach(A, A, [A]). reach(A, B, [A | Path]) :- step(A, C), reach(C, B, Path).