% -*- prolog -*-

equal(a,a).
equal(b,b).
equal(c,c).

black(a, b).
white(b, c).
white(b, a).
blackpath(X,X) :- X = X.
blackpath(X,Y) :- black(X,Z), whitepath(Z,Y).
whitepath(X,X) :- X = X.
whitepath(X,Y) :- white(X,Z), blackpath(Z,Y).

edge(a,b).
edge(b,c).

path(X,Y) :- edge(X,Y).
path(X,Y) :- path(X,Z), edge(Z,Y).


q1(X,Y) :- p(X,Z), r(Z,Y), lt(X,Y).
q1(X,Y) :- h(X,Y).

p(1,2).
r(2,3).

p(3,2).
p(2,1).
