Generating Asymptotically Non-Terminating Initial Values for Linear Programs
Rachid Rebiha, Nadir Matringe, Arnaldo Vieira Moura

TL;DR
This paper introduces a method to generate and analyze initial variable values that lead to non-termination in linear loop programs, providing tools for automatic analysis of program termination behavior.
Contribution
It presents a novel approach to compute semi-linear sets of asymptotically non-terminating initial values and extends the analysis to affine integer and rational programs.
Findings
Sets of non-terminating initial values can be symbolically represented.
The approach provides a precise under-approximation of terminating inputs.
Decidability results are extended to integer and rational programs.
Abstract
We present the notion of asymptotically non-terminating initial variable values for linear loop programs. Those values are directly associated to initial variable values for which the corresponding program does not terminate. Our theoretical contributions provide us with powerful computational methods for automatically generating sets of asymptotically non-terminating initial variable values. Such sets are represented symbolically and exactly by a semi-linear space, e.g., characterized by conjunctions and disjunctions of linear equalities and inequalities. Moreover, by taking their complements, we obtain a precise under-approximation of the set of inputs for which the program does terminate. We can then reduce the termination problem of linear programs to the emptiness check of a specific set of asymptotically non-terminating initial variable values. Our static input data analysis is…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Logic, programming, and type systems · Software Testing and Debugging Techniques
