.decl edge(x:number, y:number)
.input edge

.decl reachable(x:number, y:number)
.output reachable

reachable(x, y) :- edge(x, y).
reachable(x, y) :- reachable(x, z), edge(z, y).
