Deriving descriptions of possible values of program variables by means of abstract interpretation
Journal of Logic Programming
Polynomial interpretations as a basis for termination analysis of logic programs
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Analyses, optimizations and extensions of constraint handling rules: ph.d. summary
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Research Summary: Termination of CHR
ICLP '09 Proceedings of the 25th International Conference on Logic Programming
A complete and terminating execution model for constraint handling rules
Theory and Practice of Logic Programming
CLP projection for constraint handling rules
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
A transformational approach for proving properties of the CHR constraint store
LOPSTR'09 Proceedings of the 19th international conference on Logic-Based Program Synthesis and Transformation
Hi-index | 0.01 |
We propose a new constraint-based approach to termination analysis, applicable to Logic Programming (LP) and Constraint Handling Rules (CHR). Our approach further extends the existing constraint-based approaches for LP based on polynomial interpretations and introduces a whole new level of expressivity. We can handle problems such as bounded increase and integer arithmetic, elegantly. Furthermore, we are able to prove termination of programs that only terminate for subsets of the considered queries. Examples are algorithms that manipulate graphs and that only terminate if the graph in the input is cycle-free. This information cannot be represented, using the existing techniques in termination analysis. Therefore, we introduce invariance relations, representing relations among terms that hold on atoms during calls to the program. These relations can also be derived in a constraint-based manner and they can be used as a basis for a more expressive interpretation of the atoms of the program. We discuss our technique in the context of CHR, solving an important class of open problems containing transitivity rules. We also demonstrate the technique in an LP context and show that it is more powerful than existing constraint-based approaches.