edge(a,c).
edge(a,d).
edge(a,e).
edge(b,e).
edge(b,c).
edge(c,d).
reach(X,Y) :- edge(X,Y).
reach(X,Y) :-
edge(X,Z),
reach(Z,Y).
sibling(X,Y) :-
edge(Z,X),
edge(Z,Y),
X \== Y.