Journal of Symbolic Computation
On proving the termination of algorithms by machine
Artificial Intelligence
Comparing curried and uncurried rewriting
Journal of Symbolic Computation
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
Dependent Types for Program Termination Verification
Higher-Order and Symbolic Computation
Termination Analysis for Functional Programs using Term Orderings
SAS '95 Proceedings of the Second International Symposium on Static Analysis
TEA: Automatically Proving Termination of Programs in a Non-strict Higher-Order Functional Language
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
Practical Methods for Proving Program Termination
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
Type-based termination of recursive definitions
Mathematical Structures in Computer Science
Transformation techniques for context-sensitive rewrite systems
Journal of Functional Programming
LICS '04 Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science
Match-Bounded String Rewriting Systems
Applicable Algebra in Engineering, Communication and Computing
The size-change principle and dependency pairs for termination of term rewriting
Applicable Algebra in Engineering, Communication and Computing
Termination analysis and specialization-point insertion in offline partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Termination proofs for systems code
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
On Model-Checking Trees Generated by Higher-Order Recursion Schemes
LICS '06 Proceedings of the 21st Annual IEEE Symposium on Logic in Computer Science
Mechanizing and Improving Dependency Pairs
Journal of Automated Reasoning
Tyrolean termination tool: Techniques and features
Information and Computation
Termination analysis and call graph construction for higher-order functional programs
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Matrix Interpretations for Proving Termination of Term Rewriting
Journal of Automated Reasoning
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Termination Analysis of Java Bytecode
FMOODS '08 Proceedings of the 10th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Dependency Pairs for Rewriting with Built-In Numbers and Semantic Data Structures
RTA '08 Proceedings of the 19th international conference on Rewriting Techniques and Applications
Termination of rewriting under strategies
ACM Transactions on Computational Logic (TOCL)
Static contract checking for Haskell
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Types and higher-order recursion schemes for verification of higher-order programs
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Improving Context-Sensitive Dependency Pairs
LPAR '08 Proceedings of the 15th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning
LPAR '08 Proceedings of the 15th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning
From Outermost Termination to Innermost Termination
SOFSEM '09 Proceedings of the 35th Conference on Current Trends in Theory and Practice of Computer Science
A Transformational Approach to Prove Outermost Termination Automatically
Electronic Notes in Theoretical Computer Science (ENTCS)
Proving Termination of Integer Term Rewriting
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
From Outermost to Context-Sensitive Rewriting
RTA '09 Proceedings of the 20th International Conference on Rewriting Techniques and Applications
Automated termination proofs for logic programs by term rewriting
ACM Transactions on Computational Logic (TOCL)
A termination analyzer for Java bytecode based on path-length
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automating the dependency pair method
Information and Computation - Special issue: 19th international conference on automated deduction (CADE-19)
Multi-paradigm declarative languages
ICLP'07 Proceedings of the 23rd international conference on Logic programming
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Automated termination analysis for logic programs with cut*
Theory and Practice of Logic Programming
Termination graphs for Java bytecode
Verification, induction termination analysis
Context-sensitive dependency pairs
FSTTCS'06 Proceedings of the 26th international conference on Foundations of Software Technology and Theoretical Computer Science
Termination analysis of higher-order functional programs
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Termination of polynomial programs
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Automatic termination proofs for programs with shape-shifting heaps
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Termination analysis with calling context graphs
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
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
Automated termination analysis for Haskell: from term rewriting to programming languages
RTA'06 Proceedings of the 17th international conference on Term Rewriting and Applications
Lazy abstraction for size-change termination
LPAR'10 Proceedings of the 17th international conference on Logic for programming, artificial intelligence, and reasoning
Termination graphs for Java bytecode
Verification, induction termination analysis
Termination graphs for Java bytecode
Verification, induction termination analysis
A dependency pair framework for innermost complexity analysis of term rewrite systems
CADE'11 Proceedings of the 23rd international conference on Automated deduction
Proving Termination by Dependency Pairs and Inductive Theorem Proving
Journal of Automated Reasoning
Harnessing first order termination provers using higher order dependency pairs
FroCoS'11 Proceedings of the 8th international conference on Frontiers of combining systems
Automated termination proofs for Java programs with cyclic data
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Dependently typed programming with singletons
Proceedings of the 2012 Haskell Symposium
Symbolic evaluation graphs and term rewriting: a general methodology for analyzing logic programs
Proceedings of the 14th symposium on Principles and practice of declarative programming
On the Termination of Integer Loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
Binary reachability analysis of higher order functional programs
SAS'12 Proceedings of the 19th international conference on Static Analysis
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Hi-index | 0.00 |
There are many powerful techniques for automated termination analysis of term rewriting. However, up to now they have hardly been used for real programming languages. We present a new approach which permits the application of existing techniques from term rewriting to prove termination of most functions defined in Haskell programs. In particular, we show how termination techniques for ordinary rewriting can be used to handle those features of Haskell which are missing in term rewriting (e.g., lazy evaluation, polymorphic types, and higher-order functions). We implemented our results in the termination prover AProVE and successfully evaluated them on existing Haskell libraries.