bird(b1). penguin(p1). bird(X) :- penguin(X). flies(X) :- bird(X), not -flies(X). -flies(X) :- penguin(X). % these rules with function symbols cause clingo not to terminate. % regardless of where we put these rules in the file bird(f(X)) :- bird(X). penguin(f(X)) :- penguin(X). % nflies(X) :- -flies(X). % :- nflies(p1) ? :- flies(b1).