col(r ; g ; b). % var C is local in this rule. % More specificlly, it is bound to the (lhs) cardinality contraint. % Also, it varies over all instantiations of col(C). 1 { color(X, C) : col(C) } 1 :- node(X). :- edge(X, Y), color(X, C), color(Y, C). #show color/2.