1 2 3 4 5 6 7 8 9 10
.decl Edge(x: int32, y: int32) .decl A(x: int32, y: int32) .decl B(x: int32, y: int32) .input Edge(IO="file", filename="Edge.csv", delimiter=",") .output A A(x, y) :- B(x, y). fixpoint { B(x, y) :- Edge(x, y). B(x, z) :- Edge(x, y), B(y, z). }