cheapFlight(newyork, [ohio, indiana, newjersey]). cheapFlight(newjersey, [ohio, newyork]). cheapFlight(ohio, [newyork, indiana, newjersey]). cheapFlight(indiana, [ohio, illinois, newyork, texas]). cheapFlight(texas, [utah, illinois, indiana]). cheapFlight(illinois, [indiana, texas]). cheapFlight(utah, [washington, california, texas]). cheapFlight(washington, [utah, california]). cheapFlight(california, [washington, utah]). connected(A, A, Acc, Acc). connected(A, B, Acc, Path) :- cheapFlight(A, DirectRoutes), member(B, DirectRoutes), append(Acc, [B], Path). connected(A, B, Acc, Path) :- cheapFlight(A, [Via|DirectRoutes]), append(Acc, [Via], AccNew), connected(Via, B, AccNew, Path). connectedPath(A, B, Path) :- append([], [A], AccP), connected(A, B, AccP, Path).