% ==========================================================================
% $Id: color.pl,v 1.1 2014/01/28 06:18:50 jlang Exp $
% CSI2120 example Code for lecture 7
% ==========================================================================
% (C)opyright:
%
%   Jochen Lang
%   SITE, University of Ottawa
%   800 King Edward Ave.
%   Ottawa, On., K1N 6N5
%   Canada. 
%   http://www.eecs.uottawa.ca/~jlang
% 
% Creator: jlang (Jochen Lang)
% Email:   jlang@eecs.uottawa.ca
% ==========================================================================
% $Log: color.pl,v $
% Revision 1.1  2014/01/28 06:18:50  jlang
% Added tree and graph examples.
%
% ==========================================================================
color(g(Ns,Edges),Colors,GC):-
   generate(Ns,Colors,GC),
   test(Edges,GC).
generate([],_,[]).
generate([N|Ns],Colors,[(N,C)|Q]):-
   member(C,Colors), 
   generate(Ns,Colors,Q).
test([],_).
test([edge(N1,N2,_)|Ns],GC):-
   member((N1,C1),GC), 
   member((N2,C2),GC), 
   C1\=C2,                 
   test(Ns,GC).
