// Type declarations
.type S <: symbol

// Set output flag depending on stage
.decl A (x:S, y:S)
.output A ()

// Transitive Closure
A(x,z) :- A(x,y), A(y,z).

// Facts
A("a","b").
A("b","c").
A("c","d").
A("d","e").
