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.
Standard input is empty
GNU Prolog 1.3.1 By Daniel Diaz Copyright (C) 1999-2009 Daniel Diaz
The brand new service which powers Ideone!
Widget for compiling and running the source code in a web browser!