Я очень новичок в Prolog. Я определил в graph.pl следующий график:

И вот мой код Пролога:
edge(a,e).
edge(e,d).
edge(d,c).
edge(c,b).
edge(b,a).
edge(d,a).
edge(e,c).
edge(f,b).
path(X,X).
path(X,Y):- edge(X,Z) ; path(Z,Y).
Я понимаю это так: существует путь между вершиной X и вершиной Y, только если существует ребро между вершиной X и вершиной Z И есть путь между вершинами Z и vertex Y (некоторая рекурсия).
Правильно ли это для представленного графика? Когда я спрашиваю Пролог о пути между вершиной A и вершиной F, он дает мне true... который даже не прав! Что может быть неправильным в этом коде?