Proving correctness of a program consists in showing partial correctness (that is, the program meets its specification) and termination (that is, the program cannot run forever). Methods for deciding termination of programs cannot exist because termination is in general undecidable. This motivates the search for sufficient conditions that guarantee termination of a program. If such a technique is successful, it will return the answer: “Yes, the program is terminating.” In all other cases, it might not be able to determine whether the program terminates. In the last decade, the problem of (automatically) proving termination of logic programs has been receiving increasing attention. Many methods have been proposed to prove termination of logic programs; we will not attempt to review all of them here. Instead, we refer to the overview article of De Schreye and Decorte [SD94] ; more recent techniques are discussed in Krishna Rao et al. [KRKS98].
KeywordsLogic Program Test Suite Predicate Symbol Ground Term Output Position
Unable to display preview. Download preview PDF.