General
Material
Lecture 1
Lecture 2
Lecture 3
Lecture 4
Lecture 5

Hint

The general structure of the predicate travel/2 is just as for the predicates path/2 and ancestor_of/2: we can travel from X to Y if we can get from X to Y in one single step, and we can travel from X to Y if we can make one step to Z and it is possible to travel from Z to Y. The only difference with travel is that there are several possibilities of what 'one step' can look like, because we can do it by car, train, or plane.

Solution

Back to the exercise.