Automating control for logic programs
Journal of Logic Programming
Efficient tests for top-down termination of logical rules
Journal of the ACM (JACM)
Termination proofs for logic programs
Termination proofs for logic programs
Termination detection in logic programs using argument sizes (extended abstract)
PODS '91 Proceedings of the tenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Inference of inequality constraints in logic programs (extended abstracts)
PODS '91 Proceedings of the tenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Effectiveness of global analysis in strict independence-based automatic parallelization
ILPS '94 Proceedings of the 1994 International Symposium on Logic programming
Fixed-Parameter Tractability and Completeness I: Basic Results
SIAM Journal on Computing
Modular termination proofs for logic and pure PROLOG programs
Advances in logic programming theory
Computability and complexity: from a programming perspective
Computability and complexity: from a programming perspective
On the complexity of integer programming
Journal of the ACM (JACM)
The size-change principle for program termination
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Practical Methods for Proving Program Termination
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
ALP '97-HOA '97 Proceedings of the 6th International Joint Conference on Algebraic and Logic Programming
LICS '04 Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science
The size-change principle and dependency pairs for termination of term rewriting
Applicable Algebra in Engineering, Communication and Computing
Program termination analysis in polynomial time
ACM Transactions on Programming Languages and Systems (TOPLAS)
Ranking functions for size-change termination
ACM Transactions on Programming Languages and Systems (TOPLAS)
Testing for termination with monotonicity constraints
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Size-Change termination and bound analysis
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Termination analysis with calling context graphs
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Abstraction refinement for termination
SAS'05 Proceedings of the 12th international conference on Static Analysis
ACM Transactions on Computational Logic (TOCL)
Size-change termination and transition invariants
SAS'10 Proceedings of the 17th international conference on Static analysis
Multi-dimensional rankings, program termination, and complexity bounds of flowchart programs
SAS'10 Proceedings of the 17th international conference on Static analysis
Closed-Form Upper Bounds in Static Cost Analysis
Journal of Automated Reasoning
On the termination of integer loops
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Verification of gap-order constraint abstractions of counter systems
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)
On the linear ranking problem for integer linear-constraint loops
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verification of gap-order constraint abstractions of counter systems
Theoretical Computer Science
Hi-index | 0.00 |
This article considers an algorithmic problem related to the termination analysis of programs. More specifically, we are given bounds on differences in sizes of data values before and after every transition in the program's control-flow graph. Our goal is to infer program termination via the following reasoning (“the size-change principle”): if in any infinite (hypothetic) execution of the program, some size must descend unboundedly, the program must always terminate, since infinite descent of a natural number is impossible. The problem of inferring termination from such abstract information is not the halting problem for programs and may well be decidable. If this is the case, the decision algorithm forms a “back end” of a termination verifier, and it is interesting to find out the computational complexity of the problem. A restriction of the problem described above, which only uses monotonicity information (but not difference bounds), is already known to be decidable. We prove that the unrestricted problem is undecidable, which gives a theoretical argument for studying restricted cases. We consider a case where the termination proof is allowed to make use of at most one bound per target variable in each transition. For this special case, which we claim is practically significant, we give (for the first time) an algorithm and show that the problem is in PSPACE, in fact that it is PSPACE-complete. The algorithm is based on combinatorial arguments and results from the theory of integer programming not previously used for similar problems. The algorithm has interesting connections to other work in termination, in particular to methods for generating linear ranking functions or invariants.