Abstract
Termination is an important and well-studied property for logic programs. However, almost all approaches for automated termination analysis focus on definite logic programs, whereas real-world Prolog programs typically use the cut operator. We introduce a novel pre-processing method which automatically transforms Prolog programs into logic programs without cuts, where termination of the cut-free program implies termination of the original program. Hence after this pre-processing, any technique for proving termination of definite logic programs can be applied. We implemented this pre-processing in our termination prover AProVE and evaluated it successfully with extensive experiments.
Keywords: automated termination analysis; cut; definite logic programs.
Original language | English |
---|---|
Pages (from-to) | 365-381 |
Journal | Theory and Practice of Logic Programming |
Volume | 10 |
Issue number | 4-6 |
DOIs | |
Publication status | Published - 2010 |