Bound Analysis of Imperative Programs with the Size-Change Abstraction

The size-change abstraction (SCA) is an important program abstraction for termination analysis, which has been successfully implemented in many tools for functional and logic programs. In this paper, we demonstrate that SCA is also a highly effective abstract domain for the bound analysis of imperative programs. We have implemented a bound analysis tool based on SCA for imperative programs. We abstract programs in a pathwise and context dependent manner, which enables our tool to analyze real-world programs effectively. Our work shows that SCA captures many of the essential ideas of previous termination and bound analysis and goes beyond in a conceptually simpler framework.

[1]  Thomas W. Reps,et al.  Lookahead Widening , 2006, CAV.

[2]  Wei-Ngan Chin,et al.  Inferring Disjunctive Postconditions , 2006, ASIAN.

[3]  Jakob Engblom,et al.  The worst-case execution-time problem—overview of methods and survey of tools , 2008, TECS.

[4]  Dirk Beyer,et al.  Software model checking via large-block encoding , 2009, 2009 Formal Methods in Computer-Aided Design.

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

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

[7]  Sumit Gulwani,et al.  SPEED: Symbolic Complexity Bound Analysis , 2009, CAV.

[8]  Alexander Krauss,et al.  Certified Size-Change Termination , 2007, CADE.

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

[10]  Martin Hofmann,et al.  Static determination of quantitative resource usage for higher-order programs , 2010, POPL '10.

[11]  Martin Hofmann,et al.  Multivariate amortized resource analysis , 2011, POPL '11.

[12]  Martin Hofmann,et al.  Multivariate amortized resource analysis , 2012, TOPL.

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

[14]  Sumit Gulwani,et al.  Computing Procedure Summaries for Interprocedural Analysis , 2007, ESOP.

[15]  Amir M. Ben-Amram Monotonicity Constraints for Termination in the Integer Domain , 2011, Log. Methods Comput. Sci..

[16]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[17]  Amir M. Ben-Amram A complexity tradeoff in ranking-function termination proofs , 2009, Acta Informatica.

[18]  Simon Goldsmith,et al.  Measuring empirical computational complexity , 2007, ESEC-FSE '07.

[19]  Sumit Gulwani,et al.  SPEED: precise and efficient static estimation of program computational complexity , 2009, POPL '09.

[20]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

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

[22]  Peter Lee,et al.  Trace-based program analysis , 1996, POPL '96.

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

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

[25]  David Monniaux,et al.  Automatic modular abstractions for linear constraints , 2008, POPL '09.

[26]  Sumit Gulwani,et al.  Control-flow refinement and progress invariants for bound analysis , 2009, PLDI '09.

[27]  Sumit Gulwani,et al.  The reachability-bound problem , 2010, PLDI '10.

[28]  Sumit Gulwani,et al.  A Numerical Abstract Domain Based on Expression Abstraction and Max Operator with Application in Timing Analysis , 2008, CAV.

[29]  Daniel Kroening,et al.  Termination Analysis with Compositional Transition Invariants , 2010, CAV.

[30]  Daniel Kroening,et al.  Loop Summarization Using Abstract Transformers , 2008, ATVA.

[31]  L. D. Moura,et al.  The YICES SMT Solver , 2006 .

[32]  Frank Pfenning,et al.  Automated Deduction - CADE-21, 21st International Conference on Automated Deduction, Bremen, Germany, July 17-20, 2007, Proceedings , 2007, CADE.

[33]  Andreas Podelski,et al.  Size-Change Termination and Transition Invariants , 2010, SAS.