#hide. #external arc(X,Y). #show arc(X,Y). %% input #show hc(X,Y). %% output #show reached(X). %% output (can also remain hidden) #domain node(X;Y;X1;Y1). #options -d none. node(1..n). arc(X,Y) :- node(X;Y). %% for grounding start(1). { hc(X,Y) } :- start(X), arc(X,Y). { hc(X,Y) } :- reached(X), arc(X,Y). reached(Y) :- hc(X,Y). :- not reached(X). :- hc(X,Y), hc(X,Y1), Y != Y1. :- hc(X,Y), hc(X1,Y), X != X1.