Convergence: Integrating termination and abort-freedom

Abstract The condition under which a computation terminates, and the question of whether a computation terminates for a given initial state, have been the focus of much interest since the early days of computing. In this paper we argue that it is advantageous to study the property of termination in conjunction with the property of abort-freedom, i.e. the property of a program to execute without raising exceptional conditions; also, we model the two properties in a single mathematical framework, and illustrate how this integrated framework gives a better outcome than the separate analysis of the two aspects.

[1]  A. Rybalchenko,et al.  Transition invariants , 2004, LICS 2004.

[2]  Daniel Kroening,et al.  Loopfrog - loop summarization for static analysis , 2010, WING@ETAPS/IJCAR.

[3]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[4]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[5]  Jorge Sousa Pinto,et al.  Rigorous Software Development - An Introduction to Program Verification , 2011, Undergraduate Topics in Computer Science.

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

[7]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

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

[9]  Shuvendu K. Lahiri,et al.  Constructing Quantified Invariants via Predicate Abstraction , 2004, VMCAI.

[10]  Ying Li,et al.  A survey of systems for detecting serial run‐time errors , 2006, Concurr. Comput. Pract. Exp..

[11]  Lamia Labed Jilani,et al.  Invariant assertions, invariant relations, and invariant functions , 2013, Sci. Comput. Program..

[12]  Henny B. Sipma,et al.  Practical Methods for Proving Program Termination , 2002, CAV.

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

[14]  Peter W. O'Hearn,et al.  Local Reasoning about Programs that Alter Data Structures , 2001, CSL.

[15]  Deepak Kapur,et al.  Termination Analysis of Imperative Programs Using Bitvector Arithmetic , 2012, VSTTE.

[16]  Étienne Payet,et al.  A termination analyzer for Java bytecode based on path-length , 2010, TOPL.

[17]  Lamia Labed Jilani,et al.  Invariant functions and invariant relations: An alternative to invariant assertions , 2013, J. Symb. Comput..

[18]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[19]  Andreas Podelski,et al.  Boolean Heaps , 2005, SAS.

[20]  Andreas Podelski,et al.  Proving program termination , 2011, Commun. ACM.

[21]  Patrick Cousot,et al.  Abstract interpretation , 1996, CSUR.

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

[23]  Andreas Podelski,et al.  Transition Invariants and Transition Predicate Abstraction for Program Termination , 2011, TACAS.

[24]  Robert S. Boyer,et al.  A computational logic handbook , 1979, Perspectives in computing.

[25]  Kwangkeun Yi,et al.  Termination Analysis with Algorithmic Learning , 2012, CAV.

[26]  Ryszard Janicki,et al.  Computing Properties of Numerical Imperative Programs by Symbolic Computation , 2008, Fundam. Informaticae.

[27]  Samir Genaim,et al.  Complexity of Bradley-Manna-Sipma Lexicographic Ranking Functions , 2015, CAV.

[28]  Bertrand Meyer,et al.  Proving Pointer Program Properties. Part 1: Context and overview , 2003, J. Object Technol..

[29]  Alexander Aiken,et al.  How is aliasing used in systems software? , 2006, SIGSOFT '06/FSE-14.

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

[31]  Patrick Cousot,et al.  Varieties of Static Analyzers: A Comparison with ASTREE , 2007, First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering (TASE '07).

[32]  Fred B. Schneider,et al.  A Logical Approach to Discrete Math , 1993, Texts and Monographs in Computer Science.

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

[34]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

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

[36]  Patrick Cousot,et al.  Automatic synthesis of optimal invariant assertions: Mathematical foundations , 1977 .

[37]  Corinne Ancourt,et al.  A Modular Static Analysis Approach to Affine Loop Invariants Detection , 2010, Electron. Notes Theor. Comput. Sci..

[38]  Daniel Kroening,et al.  Loop Summarization and Termination Analysis , 2011, TACAS.

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

[40]  Klaus Wissing Static Analysis of Dynamic Properties - Automatic Program Verification to Prove the Absence of Dynamic Runtime Errors , 2007, GI Jahrestagung.

[41]  Patrick Cousot,et al.  Astrée: Proving the Absence of Runtime Errors , 2010 .

[42]  Wolfram Kahl,et al.  Relational Methods in Computer Science , 1997, Advances in Computing Sciences.

[43]  Ashish Tiwari,et al.  Termination of Linear Programs , 2004, CAV.

[44]  Kenneth L. McMillan,et al.  Quantified Invariant Generation Using an Interpolating Saturation Prover , 2008, TACAS.

[45]  Greg Nelson,et al.  Verifying reachability invariants of linked structures , 1983, POPL '83.

[46]  Lamia Labed Jilani,et al.  A versatile concept for the analysis of loops , 2012, J. Log. Algebraic Methods Program..

[47]  Jules Desharnais,et al.  Strongest invariant functions: Their use in the systematic analysis of while statements , 2004, Acta Informatica.

[48]  Peter W. O'Hearn,et al.  Disproving termination with overapproximation , 2014, 2014 Formal Methods in Computer-Aided Design (FMCAD).

[49]  Patrick Cousot,et al.  A static analyzer for large safety-critical software , 2003, PLDI.

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

[51]  Ali Mili,et al.  Mathematics for reasoning about loop functions , 2009, Sci. Comput. Program..

[52]  Koushik Sen,et al.  Looper: Lightweight Detection of Infinite Loops at Runtime , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[53]  Supratik Chakraborty,et al.  Bottom-up shape analysis using LISF , 2011, TOPL.

[54]  Claude Marché,et al.  Multi-prover Verification of C Programs , 2004, ICFEM.

[55]  Bertrand Meyer Proving Pointer Program Properties. Part 2: The Overall Object Structure , 2003, J. Object Technol..

[56]  Florian Zuleger,et al.  Ramsey vs. Lexicographic Termination Proving , 2013, TACAS.

[57]  Carl E. Landwehr,et al.  Basic concepts and taxonomy of dependable and secure computing , 2004, IEEE Transactions on Dependable and Secure Computing.

[58]  Reinhard Wilhelm,et al.  Parametric shape analysis via 3-valued logic , 1999, POPL '99.

[59]  Philipp Rümmer,et al.  Non-termination Checking for Imperative Programs , 2008, TAP.

[60]  Sumit Gulwani,et al.  Lifting abstract interpreters to quantified logical domains , 2008, POPL '08.

[61]  Tobias Nipkow,et al.  Proving pointer programs in higher-order logic , 2005, Inf. Comput..

[62]  Lamia Labed Jilani,et al.  Reflexive transitive invariant relations: A basis for computing loop functions , 2010, J. Symb. Comput..