|Publication Type||Journal Article|
|Year of Publication||2005|
|Authors||Mesnard F, Bagnara R|
|Journal||Theory and Practice of Logic Programming|
|Keywords||abstract interpretation, logic programming, software verification, static analysis, termination analysis, termination inference|
We present cTI, the first system for universal left-termination inference of logic programs. Termination inference generalizes termination analysis and checking. Traditionally, a termination analyzer tries to prove that a given class of queries terminates. This class must be provided to the system, for instance by means of user annotations. Moreover, the analysis must be redone every time the class of queries of interest is updated. Termination inference, in contrast, requires neither user annotations nor recomputation. In this approach, terminating classes for all predicates are inferred at once. We describe the architecture of cTI and report an extensive experimental evaluation of the system covering many classical examples from the logic programming termination literature and several Prolog programs of respectable size and complexity.