##function (vertex) vertex hc. vertex(1). vertex(2). vertex(3). vertex(4). arc(2,1). arc(1,2). arc(2,3). arc(3,4). arc(4,3). arc(4,1). initial(1). reached(2) :- initial(1), hc(1)==2, arc(1,2). reached(1) :- reached(4), hc(4)==1, arc(4,1). reached(3) :- reached(4), hc(4)==3, arc(4,3). reached(4) :- reached(3), hc(3)==4, arc(3,4). reached(3) :- reached(2), hc(2)==3, arc(2,3). reached(1) :- reached(2), hc(2)==1, arc(2,1). reached(2) :- reached(1), hc(1)==2, arc(1,2). :- vertex(1), not reached(1). :- vertex(2), not reached(2). :- vertex(3), not reached(3). :- vertex(4), not reached(4). :- hc(1)==1, vertex(1), vertex(1), not arc(1,1). :- hc(2)==1, vertex(2), vertex(1), not arc(2,1). :- hc(3)==1, vertex(3), vertex(1), not arc(3,1). :- hc(4)==1, vertex(4), vertex(1), not arc(4,1). :- hc(1)==2, vertex(1), vertex(2), not arc(1,2). :- hc(2)==2, vertex(2), vertex(2), not arc(2,2). :- hc(3)==2, vertex(3), vertex(2), not arc(3,2). :- hc(4)==2, vertex(4), vertex(2), not arc(4,2). :- hc(1)==3, vertex(1), vertex(3), not arc(1,3). :- hc(2)==3, vertex(2), vertex(3), not arc(2,3). :- hc(3)==3, vertex(3), vertex(3), not arc(3,3). :- hc(4)==3, vertex(4), vertex(3), not arc(4,3). :- hc(1)==4, vertex(1), vertex(4), not arc(1,4). :- hc(2)==4, vertex(2), vertex(4), not arc(2,4). :- hc(3)==4, vertex(3), vertex(4), not arc(3,4). :- hc(4)==4, vertex(4), vertex(4), not arc(4,4).