ACM SIGPLAN Notices
Termination of term rewriting using dependency pairs
Theoretical Computer Science - Trees in algebra and programming
The size-change principle for program termination
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
Structured Theory Development for a Mechanized Logic
Journal of Automated Reasoning
Integrating static analysis and general-purpose theorem proving for termination analysis
Proceedings of the 28th international conference on Software engineering
Ordinal Arithmetic: Algorithms and Mechanization
Journal of Automated Reasoning
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Termination of polynomial programs
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Abstraction refinement for termination
SAS'05 Proceedings of the 12th international conference on Static Analysis
Electronic Notes in Theoretical Computer Science (ENTCS)
ICSE COMPANION '07 Companion to the proceedings of the 29th International Conference on Software Engineering
Size-change termination with difference constraints
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proving Termination by Bounded Increase
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
Certified Size-Change Termination
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Adapting functional programs to higher order logic
Higher-Order and Symbolic Computation
Verifying liveness for asynchronous programs
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Ranking functions for size-change termination
ACM Transactions on Programming Languages and Systems (TOPLAS)
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Termination Analysis by Dependency Pairs and Inductive Theorem Proving
CADE-22 Proceedings of the 22nd International Conference on Automated Deduction
Using CLP Simplifications to Improve Java Bytecode Termination Analysis
Electronic Notes in Theoretical Computer Science (ENTCS)
A termination analyzer for Java bytecode based on path-length
ACM Transactions on Programming Languages and Systems (TOPLAS)
Summarization for termination: no return!
Formal Methods in System Design
Finding lexicographic orders for termination proofs in Isabelle/HOL
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
A SAT-based approach to size change termination with global ranking functions
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Automated termination proofs for haskell by term rewriting
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
The ACL2 sedan theorem proving system
TACAS'11/ETAPS'11 Proceedings of the 17th international conference on Tools and algorithms for the construction and analysis of systems: part of the joint European conferences on theory and practice of software
Proving Termination by Dependency Pairs and Inductive Theorem Proving
Journal of Automated Reasoning
Bound analysis of imperative programs with the size-change abstraction
SAS'11 Proceedings of the 18th international conference on Static analysis
Interactive termination proofs using termination cores
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Hi-index | 0.02 |
We introduce calling context graphs and various static and theorem proving based analyses that together provide a powerful method for proving termination of programs written in feature-rich, first order, functional programming languages. In contrast to previous work, our method is highly automated and handles any source of looping behavior in such languages, including recursive definitions, mutual recursion, the use of recursive data structures, etc. We have implemented our method for the ACL2 programming language and evaluated the result using the ACL2 regression suite, which consists of numerous libraries with a total of over 10,000 function definitions. Our method was able to automatically detect termination of over 98% of these functions.