Theory of linear and integer programming
Theory of linear and integer programming
Static analysis of linear congruence equalities among variables of a program
TAPSOFT '91 Proceedings of the international joint conference on theory and practice of software development on Colloquium on trees in algebra and programming (CAAP '91): vol 1
Some efficient solutions to the affine scheduling problem: I. One-dimensional time
International Journal of Parallel Programming
ICS '96 Proceedings of the 10th international conference on Supercomputing
Optimal fine and medium grain parallelism detection in polyhedral reduced dependence graphs
International Journal of Parallel Programming
The Organization of Computations for Uniform Recurrence Equations
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
Inadequacy of computable loop invariants
ACM Transactions on Computational Logic (TOCL)
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
Introduction to Mathematical Theory of Computation
Introduction to Mathematical Theory of Computation
Scheduling and Automatic Parallelization
Scheduling and Automatic Parallelization
Synthesis of Linear Ranking Functions
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Handling Memory Cache Policy with Integer Points Counting
Euro-Par '97 Proceedings of the Third International Euro-Par Conference on Parallel Processing
On the Optimality of Feautrier's Scheduling Algorithm
Euro-Par '02 Proceedings of the 8th International Euro-Par Conference on Parallel Processing
Practical Methods for Proving Program Termination
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
LICS '04 Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science
The worst-case execution-time problem—overview of methods and survey of tools
ACM Transactions on Embedded Computing Systems (TECS)
Size-change termination with difference constraints
ACM Transactions on Programming Languages and Systems (TOPLAS)
SPEED: precise and efficient static estimation of program computational complexity
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Control-flow refinement and progress invariants for bound analysis
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Size-Change Termination, Monotonicity Constraints and Ranking Functions
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Combining widening and acceleration in linear relation analysis
SAS'06 Proceedings of the 13th international conference on Static Analysis
ICALP'05 Proceedings of the 32nd international conference on Automata, Languages and Programming
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Linear ranking with reachability
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Accelerated Invariant Generation for C Programs with Aspic and C2fsm
Electronic Notes in Theoretical Computer Science (ENTCS)
More precise yet widely applicable cost analysis
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
Certification of safe polynomial memory bounds
FM'11 Proceedings of the 17th international conference on Formal methods
Size invariant and ranking function synthesis in a functional language
WFLP'11 Proceedings of the 20th international conference on Functional and constraint logic programming
Normalisation of Loops with Covariant Variables
Electronic Notes in Theoretical Computer Science (ENTCS)
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
Proving termination starting from the end
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Better termination proving through cooperation
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Abstract acceleration of general linear loops
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
Proving the termination of a flowchart program can be done by exhibiting a ranking function, i.e., a function from the program states to a well-founded set, which strictly decreases at each program step. A standard method to automatically generate such a function is to compute invariants for each program point and to search for a ranking in a restricted class of functions that can be handled with linear programming techniques. Previous algorithms based on affine rankings either are applicable only to simple loops (i.e., single-node flowcharts) and rely on enumeration, or are not complete in the sense that they are not guaranteed to find a ranking in the class of functions they consider, if one exists. Our first contribution is to propose an efficient algorithm to compute ranking functions: It can handle flowcharts of arbitrary structure, the class of candidate rankings it explores is larger, and our method, although greedy, is provably complete. Our second contribution is to show how to use the ranking functions we generate to get upper bounds for the computational complexity (number of transitions) of the source program. This estimate is a polynomial, which means that we can handle programs with more than linear complexity. We applied the method on a collection of test cases from the literature. We also show the links and differences with previous techniques based on the insertion of counters.