Hello all, new member here and a little confused too.
We know that transitive closure is not expressible in First Order Logic (search in google and you will find some proofs for that).
Also, Prolog is a subset of First Order Logic, so what cannot be expressed in FOL, cannot be expressed in Prolog too (is this right???)
So, I have come across this Prolog Predicate that computes if two nodes on the graph are connected (transitive closure of the edge predicate)
connected(Source,Target) :- edge(Source,Target).
connected(Source,Target) :-
edge(Source,Intermediate),
connected(Intermediate,Target).
Where's the error???
Thanks.