Introduction to algorithms
Termination proofs for logic programs
Termination proofs for logic programs
The early British computer conferences
Effectiveness of global analysis in strict independence-based automatic parallelization
ILPS '94 Proceedings of the 1994 International Symposium on Logic programming
Modular termination proofs for logic and pure PROLOG programs
Advances in logic programming theory
High level reading and data structure compilation
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proving termination with multiset orderings
Communications of the ACM
The size-change principle for program termination
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Partial Evaluation of the Euclidean Algorithm, Revisited
Higher-Order and Symbolic Computation
Dependent Types for Program Termination Verification
Higher-Order and Symbolic Computation
Program Termination Analysis in Polynomial Time
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Combining Norms to Prove Termination
VMCAI '02 Revised Papers from the Third International Workshop on Verification, Model Checking, and Abstract Interpretation
Automatically Proving Termination Where Simplification Orderings Fail
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Automated Termination Proofs with Measure Functions
KI '95 Proceedings of the 19th Annual German Conference on Artificial Intelligence: Advances in Artificial Intelligence
ALP '97-HOA '97 Proceedings of the 6th International Joint Conference on Algebraic and Logic Programming
General size-change termination and lexicographic descent
The essence of computation
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The size-change principle and dependency pairs for termination of term rewriting
Applicable Algebra in Engineering, Communication and Computing
Size-change termination for term rewriting
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
Testing for termination with monotonicity constraints
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Size-change termination with difference constraints
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Comparative Study of Industrial Static Analysis Tools
Electronic Notes in Theoretical Computer Science (ENTCS)
A Hybrid Type System for Lock-Freedom of Mobile Processes
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Ranking functions for size-change termination
ACM Transactions on Programming Languages and Systems (TOPLAS)
Büchi Complementation and Size-Change Termination
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,
Size-Change Termination, Monotonicity Constraints and Ranking Functions
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
A termination analyzer for Java bytecode based on path-length
ACM Transactions on Programming Languages and Systems (TOPLAS)
A hybrid type system for lock-freedom of mobile processes
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Size-change termination and transition invariants
SAS'10 Proceedings of the 17th international conference on Static analysis
Lazy abstraction for size-change termination
LPAR'10 Proceedings of the 17th international conference on Logic for programming, artificial intelligence, and reasoning
Size invariant and ranking function synthesis in a functional language
WFLP'11 Proceedings of the 20th international conference on Functional and constraint logic programming
Hybrid contract checking via symbolic simplification
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Fast and accurate strong termination analysis with an application to partial evaluation
WFLP'09 Proceedings of the 18th international conference on Functional and Constraint Logic Programming
Efficient büchi universality checking
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
On the termination of integer loops
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
On the Termination of Integer Loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
A size-change termination algorithm takes as input abstract information about a program in the form of size-change graphs and uses it to determine whether any infinite computation would imply that some data decrease in size infinitely. Since such an infinite descent is presumed impossible, this proves program termination. The property of the graphs that implies program termination is called SCT. There are many examples of practical programs whose termination can be verified by creating size-change graphs and testing them for SCT.The size-change graph abstraction is useful because the graphs often carry sufficient information to deduce termination, and at the same time are simple enough to be analyzed automatically. However, there is a tradeoff between the completeness and efficiency of this analysis, and complete algorithms in the literature can easily be pushed to an exponential combinatorial search by certain patterns in the graph structures.We therefore propose a novel algorithm to detect common forms of parameter-descent behavior efficiently. Specifically, we target lexicographic descent, multiset descent, and min- and max-descent. Our algorithm makes it possible to verify practical instances of SCT while guarding against unwarranted combinatorial search. It has worst-case time complexity cubic in the input size, and its effectiveness is demonstrated empirically using a test suite of over 90 programs.