Все, вроде сделал:
Код
domains
top=symbol
Vlist=top*
rebro=rebro(top,top)
Rlist=rebro*
gr=graf(Vlist,Rlist)
predicates
path(top,top,Vlist,Vlist,gr)
memberV(top,Vlist)
memberR(rebro,Rlist)
gamil(gr,Vlist)
allV(top,Vlist)
clauses
gamil(G,P):-
G=graf(Vlist,Rlist),
P=[A|V],
path(A,B,[A],V,G),
memberR(rebro(B,A),Rlist),
allV(X,V).
path(A,B,V,[B|V],graf(Vlist,Rlist)):-
memberR(rebro(A,B),Rlist),
not(memberV(B,V)).
path(A,B,V,V2,graf(Vlist,Rlist)):-
memberR(rebro(A,N),Rlist),
not(memberV(N,V)),
V1=[N|V],
path(N,B,V1,V2,graf(Vlist,Rlist)).
allV(X,L):-
memberV(X,L).
memberV(A, [A|_]).
memberV(A, [_|L]):-memberV(A,L).
memberR(A, [A|_]).
memberR(A, [_|L]):-memberR(A,L).
только вот почему он выводить несколько раз одно и тоже решение?? непонятно