% Ejercicio 1 GRAFOS
%
%
% Regla para verificar si un vértice forma un bucle en el grafo
bucle(Vertice, [Vertices, Aristas]) :-
member(Vertice, Vertices), % Verificar si el vértice está en la lista de vértices
member([Vertice, Vertice], Aristas), % Verificar si hay una arista que conecta el vértice consigo mismo
write("Hay un bucle en el vertice: "), writeln(Vertice),
!.
bucle(Vertice, [Vertices, _]) :-
\+ member(Vertice, Vertices),
writeln("El vertice no se encuentra en el grafo"),
fail.
bucle(Vertice, [Vertices, Aristas]) :-
member(Vertice, Vertices),
\+ member([Vertice, Vertice], Aristas),
write("No se forma bucle en el vertice: "), writeln(Vertice),
fail.
% Ejemplo de uso
% ?- bucle(d, [[a,b,c,d,e],[[a,c],[b,a],[b,c],[b,e],[c,e],[d,a],[d,b],[d,d],[d,e],[e,d]]]).