Proving program termination

In contrast to popular belief, proving termination is not always impossible.

[1]  K. Hensel Journal für die reine und angewandte Mathematik , 1892 .

[2]  J. Farkas Theorie der einfachen Ungleichungen. , 1902 .

[3]  C. J. Keyser Contributions to the Founding of the Theory of Transfinite Numbers , 1916 .

[4]  D. König Sur les correspondances multivoques des ensembles , 2022 .

[5]  Frank Plumpton Ramsey,et al.  On a Problem of Formal Logic , 1930 .

[6]  A. Turing On Computable Numbers, with an Application to the Entscheidungsproblem. , 1937 .

[7]  Hugh G. ApSimon "An Impossible Program" , 1965, Comput. J..

[8]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[9]  K. Mani Chandy,et al.  Proofs of Networks of Processes , 1981, IEEE Transactions on Software Engineering.

[10]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.

[11]  Bowen Alpern,et al.  Defining Liveness , 1984, Inf. Process. Lett..

[12]  A. M. Turing,et al.  Checking a large routine , 1989 .

[13]  Alfons Geser,et al.  Relative Termination , 1990 .

[14]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[15]  Zohar Manna,et al.  Temporal verification of reactive systems - safety , 1995 .

[16]  Burghard von Karger,et al.  On the Union of Well-Founded Relations , 1998, Log. J. IGPL.

[17]  L. McMillanmcmillan Circular Compositional Reasoning about Liveness , 1999 .

[18]  Henny B. Sipma,et al.  Synthesis of Linear Ranking Functions , 2001, TACAS.

[19]  Nachum Dershowitz,et al.  A General Framework for Automatic Termination Analysis of Logic Programs , 2000, Applicable Algebra in Engineering, Communication and Computing.

[20]  Neil D. Jones,et al.  The size-change principle for program termination , 2001, POPL '01.

[21]  Thomas A. Henzinger,et al.  Lazy abstraction , 2002, POPL '02.

[22]  Viktor Schuppan,et al.  Liveness Checking as Safety Checking , 2002, FMICS.

[23]  John P. Gallagher,et al.  One Loop at a Time , 2003 .

[24]  Jürgen Giesl,et al.  Automated Termination Proofs with AProVE , 2004, RTA.

[25]  Andreas Podelski,et al.  Transition invariants , 2004, Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science, 2004..

[26]  Andreas Podelski,et al.  A Complete Method for the Synthesis of Linear Ranking Functions , 2004, VMCAI.

[27]  Henny B. Sipma,et al.  Linear Ranking with Reachability , 2005, CAV.

[28]  Zohar Manna,et al.  Termination and Invariance Analysis of Loops , 2005, ATVA.

[29]  Henny B. Sipma,et al.  Termination Analysis of Integer Linear Loops , 2005, CONCUR.

[30]  Amir Pnueli,et al.  Separating Fairness and Well-Foundedness for the Analysis of Fair Discrete Systems , 2005, TACAS.

[31]  Henny B. Sipma,et al.  The Polyranking Principle , 2005, ICALP.

[32]  Andreas Podelski,et al.  Transition predicate abstraction and fair termination , 2005, POPL '05.

[33]  Henny B. Sipma,et al.  Termination of Polynomial Programs , 2005, VMCAI.

[34]  Jürgen Giesl,et al.  Automated Termination Analysis for Haskell: From Term Rewriting to Programming Languages , 2006, RTA.

[35]  Mark Braverman,et al.  Termination of Integer Linear Programs , 2006, CAV.

[36]  Andreas Podelski,et al.  Termination proofs for systems code , 2006, PLDI '06.

[37]  Peter W. O'Hearn,et al.  Automatic Termination Proofs for Programs with Shape-Shifting Heaps , 2006, CAV.

[38]  Kenneth L. McMillan,et al.  Lazy Abstraction with Interpolants , 2006, CAV.

[39]  G. Stix Send in the Terminator. , 2006 .

[40]  Panagiotis Manolios,et al.  Termination Analysis with Calling Context Graphs , 2006, CAV.

[41]  Sriram K. Rajamani,et al.  Thorough static analysis of device drivers , 2006, EuroSys.

[42]  Bruno Dutertre,et al.  A Fast Linear-Arithmetic Solver for DPLL(T) , 2006, CAV.

[43]  Viktor Vafeiadis,et al.  A Marriage of Rely/Guarantee and Separation Logic , 2007, CONCUR.

[44]  Alan J. Hu,et al.  Proving Termination by Divergence , 2007, Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007).

[45]  Peter W. O'Hearn,et al.  Variance analyses from invariance analyses , 2007, POPL '07.

[46]  Andreas Podelski,et al.  Proving that programs eventually do something good , 2007, POPL '07.

[47]  Andreas Podelski,et al.  Proving thread termination , 2007, PLDI '07.

[48]  Edmund M. Clarke,et al.  Arithmetic Strengthening for Shape Analysis , 2007, SAS.

[49]  Peter W. O'Hearn,et al.  Scalable Shape Analysis for Systems Code , 2008, CAV.

[50]  Sumit Gulwani,et al.  Ranking Abstractions , 2008, ESOP.

[51]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[52]  Andreas Podelski,et al.  Heap Assumptions on Demand , 2008, CAV.

[53]  Sumit Gulwani,et al.  Proving Conditional Termination , 2008, CAV.

[54]  Horatiu Jula,et al.  Deadlock Immunity: Enabling Systems to Defend Against Deadlocks , 2008, OSDI.

[55]  Supratik Chakraborty Termination Of Linear Programs , 2008 .

[56]  Thomas A. Henzinger,et al.  Proving non-termination , 2008, POPL '08.

[57]  Viktor Vafeiadis,et al.  Proving that non-blocking algorithms don't block , 2009, POPL '09.

[58]  Ahmed Bouajjani,et al.  Programs with lists are counter automata , 2011, Formal Methods Syst. Des..