\begin{document}

the Brogi 
paper program has another mistake:  the clause {\tt nonedge(b,a)} is 
subsumed by {\tt nonedge(_,a)}. It actually seems that the example 
has been concocted to make the algorithm work. Indeed now, it 
doesn�t work as expected and it�s very fragile. Check the output 
when to {\tt nonedge(_,a)} we substitute its full instantiation:

\begin{verbatim}
% with nonedge(c,_)

	:-  nonpath(c, Y, Xs)

N1		Y = _876,  Xs = []
N2		Y = _876,  Xs = [_935| _936]
N3		Y = a,  Xs = [b]
N4		Y = b,  Xs = [b]
N5		Y = _876,  Xs = [c]
N6		Y = a,  Xs = [a]
N7		Y = c,  Xs = [a]
N8		Y = _876,  Xs = [b, a| _938]
N9		Y = _876,  Xs = [b, b| _938]
N10		Y = _876,  Xs = [c, _937| _938]
N11		Y = _876,  Xs = [a, a| _938]
N12		Y = _876,  Xs = [a, c| _938]

%with explicit nonedge

	:-  nonpath(c, Y, Xs)

N1		Y = a,  Xs = []
N2		Y = b,  Xs = []
N3		Y = c,  Xs = []
N4		Y = _872,  Xs = [a| _932]
N5		Y = _872,  Xs = [b| _932]
N6		Y = _872,  Xs = [c| _932]
N7		Y = a,  Xs = [b]
N8		Y = b,  Xs = [b]
N9		Y = a,  Xs = [c]
N10		Y = b,  Xs = [c]
N11		Y = c,  Xs = [c]
N12		Y = a,  Xs = [a]
N13		Y = c,  Xs = [a]
N14		Y = _872,  Xs = [b, a| _934]
N15		Y = _872,  Xs = [b, b| _934]
N16		Y = _872,  Xs = [c, a| _934]
N17		Y = _872,  Xs = [c, b| _934]
N18		Y = _872,  Xs = [c, c| _934]
N19		Y = _872,  Xs = [a, a| _934]
N20		Y = _872,  Xs = [a, c| _934]
\end{verbatim}



\end{document}
