  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.
