Counterexamples to termination for the direct sum of term rewriting systems
Information Processing Letters
Journal of Symbolic Computation
Theoretical Computer Science
Narrowing directed by a graph of terms
RTA-91 Proceedings of the 4th international conference on Rewriting techniques and applications
Rules and strategies for transforming functional and logic programs
ACM Computing Surveys (CSUR)
Term rewriting and all that
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Goal independency and call patterns in the analysis of logic programs
SAC '94 Proceedings of the 1994 ACM symposium on Applied computing
Termination of term rewriting using dependency pairs
Theoretical Computer Science - Trees in algebra and programming
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Termination of Linear Rewriting Systems (Preliminary Version)
Proceedings of the 8th Colloquium on Automata, Languages and Programming
Narrowing Approximations as an Optimization for Equational Logic Programs
PLILP '93 Proceedings of the 5th International Symposium on Programming Language Implementation and Logic Programming
Safe Folding/Unfolding with Conditional Narrowing
ALP '97-HOA '97 Proceedings of the 6th International Joint Conference on Algebraic and Logic Programming
Rules + strategies for transforming lazy functional logic programs
Theoretical Computer Science
cTI: a constraint-based termination inference tool for ISO-Prolog
Theory and Practice of Logic Programming
Nontermination inference of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Termination of String Rewriting Proved Automatically
Journal of Automated Reasoning
A calculus of logical relations for over- and underapproximating static analyses
Science of Computer Programming
Tyrolean termination tool: Techniques and features
Information and Computation
Abstract diagnosis of functional programs
LOPSTR'02 Proceedings of the 12th international conference on Logic based program synthesis and transformation
RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
AProVE 1.2: automatic termination proofs in the dependency pair framework
IJCAR'06 Proceedings of the Third international joint conference on Automated Reasoning
Proving and disproving termination of higher-order functions
FroCoS'05 Proceedings of the 5th international conference on Frontiers of Combining Systems
Simplification Orderings: History Of Results
Fundamenta Informaticae
A non-termination criterion for binary constraint logic programs
Theory and Practice of Logic Programming
RTA '09 Proceedings of the 20th International Conference on Rewriting Techniques and Applications
RTA '09 Proceedings of the 20th International Conference on Rewriting Techniques and Applications
Experiments with Non-Termination Analysis for Java Bytecode
Electronic Notes in Theoretical Computer Science (ENTCS)
SOFSEM '10 Proceedings of the 36th Conference on Current Trends in Theory and Practice of Computer Science
Proving non-looping non-termination automatically
IJCAR'12 Proceedings of the 6th international joint conference on Automated Reasoning
Automated detection of non-termination and nullpointerexceptions for Java Bytecode
FoVeOOS'11 Proceedings of the 2011 international conference on Formal Verification of Object-Oriented Software
Hi-index | 5.23 |
In this paper, we present a fully automatizable approach to detecting loops in standard term rewriting. Our method is based on semi-unification and an unfolding operation which processes both forwards and backwards and considers variable subterms. We also describe a technique to reduce the explosion of rules caused by the unfolding process. The idea is to eliminate from the set of unfoldings some rules that are estimated as useless for detecting loops. This is done by an approximation which consists in pruning the left-hand or right-hand side of the rules used to unfold. The analyser that we have implemented is able to solve most of the examples from the Termination Competition'07 that do not terminate due to a loop.