Witam wszystkich
Jestem naprawdę początkujący w języku PROLOG miałem zaledwie 3 zajęcia,ale mam za zadanie na następny tydzień,napisać program sprawdzający czy graf jest spójny.
Czyli zakładam ,że mam sprawdzić czy istnieje ścieżka dla każdej pary wierzchołków w grafie.

Jak na razie udało mi się tyle skleić:


graf(
[arc(a,b)],
[arc(a,f)],
[arc(b,c)],
[arc(c,d)],
[arc(c,e)],
[arc(e,d)],
[arc(f,c)],
[arc(f,e)],
[arc(f,g)],
[arc(g,c)],
[arc(c,a)]).

edge(X,Y):-arc(X,Y);arc(Y,X).
path(X,Y):-edge(X,Y).
path(X,Y):-edge(X,Z),path(Z,Y).

triangle(X,Y,Z):-arc(X,Y),arc(Y,Z),arc(Z,X).
cycle(X):-arc(X,Y),path(Y,X).

gs([]):-forall(member(edge(X,Y)),path(X,Y)).

gs to wyrażenie będzie miało sprawdzać czy graf jest spójny ,chciałbym zrobić to na liście ,ale nie mam pojęcia jak się za to zabrać do końca.

Czy ktoś mógłby mi wyjaśnić jak zapisać warunek ,że dla każdej pary ma istnieć ścieżka.

Pozdrawiam