input edge(i32, i32)
output path(i32, i32)

path(X, Y) :- edge(X, Y).
path(X, Z) :- edge(X, Y), path(Y, Z).