*--------------------------------------* Call | | Exit ---------> + descendant(X,Y) :- offspring(X,Y). + ---------> | | | descendant(X,Y) :- | <--------- + offspring(X,Z), descendant(Z,Y). + <--------- Fail | | Redo *--------------------------------------*