vertex(1). vertex(2). vertex(3). edge(1,2). edge(2,3). edge(3,1). color(r). color(b). color(g). colored(V,C) :- not othercolor(V,C), vertex(V),color(C). othercolor(V,C) :- colored(V,C1), C != C1, vertex(V),color(C),color(C1). :- edge(V,U),color(C), colored(V,C),colored(U,C). #hide . #show colored/2.