Compositional Shape Analysis by Means of Bi-Abduction

作者: Cristiano Calcagno , Dino Distefano , Peter W. O’Hearn , Hongseok Yang

DOI: 10.1145/2049697.2049700

关键词:

摘要: The accurate and efficient treatment of mutable data structures is one the outstanding problem areas in automatic program verification analysis. Shape analysis a form that attempts to infer descriptions program, prove these are not misused or corrupted. It more challenging expensive forms analysis, due complexity aliasing need look arbitrarily deeply into heap. This article describes method boosting shape analyses by defining compositional method, where each procedure analyzed independently its callers. algorithm uses restricted fragment separation logic, assigns collection Hoare triples procedure; provide an over-approximation structure usage. Our brings usual benefits compositionality---increased potential scale, ability deal with incomplete programs, graceful way imprecision---to for first time.The rests on generalized abduction (inference explanatory hypotheses), which we call bi-abduction. Bi-abduction displays as kind inverse frame problem: it jointly infers anti-frames (missing portions state) frames (portions state touched operation), basis new algorithm. We have implemented our report case studies smaller programs evaluate quality discovered specifications, larger code bases (e.g., sendmail, imap server, Linux distribution) illustrate level automation scalability obtain from method.This makes number specific technical contributions proof procedures algorithms, but sense important contribution holistic: explanation demonstration how massive increase possible using abductive inference.

参考文章(71)
Ahmed Bouajjani, Peter Habermehl, Pierre Moro, Tomáš Vojnar, Verifying Programs with Dynamic 1-Selector-Linked Structures in Regular Model Checking Tools and Algorithms for the Construction and Analysis of Systems. pp. 13- 29 ,(2005) , 10.1007/978-3-540-31980-1_2
Uday S. Reddy, Hongseok Yang, Local reasoning for stateful programs University of Illinois at Urbana-Champaign. ,(2001)
Cristiano Calcagno, Dino Distefano, Viktor Vafeiadis, Bi-abductive Resource Invariant Synthesis asian symposium on programming languages and systems. pp. 259- 274 ,(2009) , 10.1007/978-3-642-10672-9_19
Dino Distefano, Ivana Filipović, Memory leaks detection in java by bi-abductive inference fundamental approaches to software engineering. pp. 278- 292 ,(2010) , 10.1007/978-3-642-12029-9_20
Tal Lev-Ami, Neil Immerman, Mooly Sagiv, Abstraction for Shape Analysis with Fast and Precise Transformers Computer Aided Verification. ,vol. 4144, pp. 547- 561 ,(2006) , 10.1007/11817963_49
Parosh Aziz Abdulla, Ahmed Bouajjani, Jonathan Cederberg, Frédéric Haziza, Ahmed Rezine, None, Monotonic Abstraction for Programs with Dynamic Memory Heaps computer aided verification. pp. 341- 354 ,(2008) , 10.1007/978-3-540-70545-1_33
Patrick Cousot, Radhia Cousot, Jerôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, Xavier Rival, The ASTREÉ Analyzer Programming Languages and Systems. ,vol. 3444, pp. 21- 30 ,(2005) , 10.1007/978-3-540-31987-0_3
Cristiano Calcagno, Dino Distefano, Peter W. O’Hearn, Hongseok Yang, Beyond Reachability: Shape Abstraction in the Presence of Pointer Arithmetic Static Analysis. ,vol. 4134, pp. 182- 203 ,(2006) , 10.1007/11823230_13
Andreas Podelski, Andrey Rybalchenko, Thomas Wies, Heap Assumptions on Demand computer aided verification. pp. 314- 327 ,(2008) , 10.1007/978-3-540-70545-1_31
Thomas Eiter, Kazuhisa Makino, On computing all abductive explanations national conference on artificial intelligence. pp. 62- 67 ,(2002) , 10.5555/777092.777105