This paper presents a methodology for testing a general logic program containing function symbols and built-in predicates for safety and effective computability .
Safety is the property that the set of answers for a given query is finite.
A related issue is whether the evaluation strategy can effectively compute all answers and terminate. We consider these problems under the assumption that queries are evaluated using a bottom-up fixpoint computation. We also approximate the use of function symbols by considering Datalog programs with infinite base relations over which finiteness constraints and monotonicity constraints are considered. This algorithm takes certain procedures as parameters, and its applicability can be strengthened by making these procedures more sophisticated. This work provides a framework for testing safety and effective computability of recursive programs, and is based on a clique by clique analysis.