Summary-Based Inter-Procedural Analysis via Modular Trace Refinement

We propose a generalisation of trace refinement for the verification of inter-procedural programs. Our method is a top-down modular, summary-based approach, and analyses inter-procedural programs by building function summaries on-demand and improving the summaries each time a function is analysed. Our method is sound, and complete relative to the existence of a modular Hoare proof for a non-recursive program. We have implemented a prototype analyser that demonstrates the main features of our approach and yields promising results.

[1]  Isil Dillig,et al.  Sound, complete and scalable path-sensitive analysis , 2008, PLDI '08.

[2]  Jochen Hoenicke,et al.  Refinement of Trace Abstraction , 2009, SAS.

[3]  Jochen Hoenicke,et al.  Software Model Checking for People Who Love Automata , 2013, CAV.

[4]  Dirk Beyer,et al.  CPAchecker: A Tool for Configurable Software Verification , 2009, CAV.

[5]  Sebastian Biallas,et al.  PtrTracker: Pragmatic pointer analysis , 2013, 2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM).

[6]  S. Rajamani,et al.  A decade of software model checking with SLAM , 2011, Commun. ACM.

[7]  Marsha Chechik,et al.  Whale: An Interpolation-Based Algorithm for Inter-procedural Verification , 2012, VMCAI.

[8]  Grigory Fedyukovich,et al.  Interpolation-Based Function Summaries in Bounded Model Checking , 2011, Haifa Verification Conference.

[9]  Alan J. Hu,et al.  Calysto: scalable and precise extended static checking , 2008, ICSE.

[10]  Jochen Hoenicke,et al.  SMTInterpol: An Interpolating SMT Solver , 2012, SPIN.

[11]  Thomas W. Reps,et al.  Precise interprocedural dataflow analysis via graph reachability , 1995, POPL '95.

[12]  Thomas A. Henzinger,et al.  The software model checker Blast , 2007, International Journal on Software Tools for Technology Transfer.

[13]  Thomas Given-Wilson,et al.  High Performance Static Analysis for Industry , 2012, TAPAS@SAS.

[14]  Sriram K. Rajamani,et al.  Compositional may-must program analysis: unleashing the power of alternation , 2010, POPL '10.

[15]  Isil Dillig,et al.  An overview of the saturn project , 2007, PASTE '07.

[16]  Alex Aiken,et al.  Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages , 1999, POPL 2003.

[17]  William Craig,et al.  Three uses of the Herbrand-Gentzen theorem in relating model theory and proof theory , 1957, Journal of Symbolic Logic.

[18]  Jochen Hoenicke,et al.  Nested interpolants , 2010, POPL '10.