© 2012 Carnegie Mellon University From Underapproximations to Overapproximations and Back! Arie Gurfinkel Software Engineering Institute Carnegie Mellon.

Slides:



Advertisements
Similar presentations
Model Checking Base on Interoplation
Advertisements

1 Verification by Model Checking. 2 Part 1 : Motivation.
Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Carnegie Mellon University Software Engineering Institute CERT® Knowledgebase Copyright © 1997 Carnegie Mellon University VU#14202 UNIX rlogin with stack.
© 2013 Carnegie Mellon University UFO: From Underapproximations to Overapproximations and Back! Arie Gurfinkel (SEI/CMU) with Aws Albarghouthi and Marsha.
© 2006 Carnegie Mellon University Combining Predicate and Numeric Abstraction for Software Model Checking Software Engineering Institute Carnegie Mellon.
Abstraction and Modular Reasoning for the Verification of Software Corina Pasareanu NASA Ames Research Center.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
© Anvesh Komuravelli Spacer Automatic Abstraction in SMT-Based Unbounded Software Model Checking Anvesh Komuravelli Carnegie Mellon University Joint work.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
© 2011 Carnegie Mellon University System of Systems V&V John B. Goodenough October 19, 2011.
© 2011 Carnegie Mellon University B OXES : Abstract Domain of Boxes Arie Gurfinkel and Sagar Chaki Software Engineering Institute Carnegie Mellon University.
Chapter 2 The Software Process
© 2010 Carnegie Mellon University B OXES : A Symbolic Abstract Domain of Boxes Arie Gurfinkel and Sagar Chaki Software Engineering Institute Carnegie Mellon.
Rigorous Software Development CSCI-GA Instructor: Thomas Wies Spring 2012 Lecture 13.
© 2013 Carnegie Mellon University Vinta: Verification with INTerpolation and Abstract interpretation Arie Gurfinkel (SEI/CMU) with Aws Albarghouthi and.
© 2013 Carnegie Mellon University Academy for Software Engineering Education and Training, 2013 Session Architect: Tony Cowling Session Chair: Nancy Mead.
© 2013 Carnegie Mellon University Measuring Assurance Case Confidence using Baconian Probabilities Charles B. Weinstock John B. Goodenough Ari Z. Klein.
© 2010 Carnegie Mellon University ® CMMI is registered in the U.S. Patent and Trademark Office by Carnegie Mellon University. V&V Principles Verification.
© 2012 Carnegie Mellon University UFO: Verification with Interpolants and Abstract Interpretation Arie Gurfinkel and Sagar Chaki Software Engineering Institute.
© 2010 Carnegie Mellon University Acquisition Implications of SOA Adoption Software Engineering Institute Carnegie Mellon University Pittsburgh, PA
© 2015 Carnegie Mellon University Property Directed Polyhedral Abstraction Nikolaj Bjørner and Arie Gurfinkel VMCAI 2015.
Symmetry-Aware Predicate Abstraction for Shared-Variable Concurrent Programs Alastair Donaldson, Alexander Kaiser, Daniel Kroening, and Thomas Wahl Computer.
© 2013 Carnegie Mellon University Static Analysis of Real-Time Embedded Systems with REK Arie Gurfinkel 1 joint work with Sagar Chaki 1, Ofer Strichman.
Using Statically Computed Invariants Inside the Predicate Abstraction and Refinement Loop Himanshu Jain Franjo Ivančić Aarti Gupta Ilya Shlyakhter Chao.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
Software Engineering: Where are we? And where do we go from here? V Software Engineering Lecture 23 Clark Barrett New York University 4/17/2006.
© 2011 Carnegie Mellon University Should-Cost: A Use for Parametric Estimates Additional uses for estimation tools Presenters:Bob Ferguson (SEMA) Date:November.
Formal Verification Group © Copyright IBM Corporation 2008 IBM Haifa Labs SAT-based unbounded model checking using interpolation Based on a paper “Interpolation.
© 2011 Carnegie Mellon University QUELCE: Quantifying Uncertainty in Early Lifecycle Cost Estimation Presenters:Dave Zubrow PhD Bob Ferguson (SEMA) Date:November.
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
Introduction to Software Testing
© 2013 Carnegie Mellon University Vinta: Verification with INTerpolation and Abstract iterpretation Arie Gurfinkel Software Engineering Institute Carnegie.
Ipek Ozkaya, COCOMO Forum © 2012 Carnegie Mellon University Affordability and the Value of Architecting Ipek Ozkaya Research, Technology.
LÊ QU Ố C HUY ID: QLU OUTLINE  What is data mining ?  Major issues in data mining 2.
Chapter : Software Process
UML - Development Process 1 Software Development Process Using UML (2)
© 2010 Carnegie Mellon University Team Software Process.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
© 2015 Carnegie Mellon University Interpolating Property Directed Reachability Software Engineering Institute Carnegie Mellon University Pittsburgh, PA.
© 2013 Carnegie Mellon University Vinta: Verification with INTerpolation and Abstract iterpretation Arie Gurfinkel (SEI/CMU) with Aws Albarghouthi and.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
Identify steps for understanding and solving the
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Software Engineering - I
Systems Analysis and Design in a Changing World, Fourth Edition
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
© 2014 Carnegie Mellon University Synthesizing Safe Bit-Precise Invariants Arie Gurfinkel (SEI / CMU) Anton Belov (UCD / Synopsys) Joao Marques-Silva (UCD)
SEN 460 Software Quality Assurance. Bahria University Karachi Campus Waseem Akhtar Mufti B.E(UIT), M.S(S.E) AAU Denmark Assistant Professor Department.
Author Software Engineering Institute
© 2015 Carnegie Mellon University Parametric Symbolic Reachability Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Arie.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
Quality Assurance in the Presence of Variability Kim Lauenroth, Andreas Metzger, Klaus Pohl Institute for Computer Science and Business Information Systems.
Finding Security Vulnerabilities in a Network Protocol Using Formal Verification Methods Orna Grumberg Technion, Israel Joint work with Adi Sosnovich and.
© Anvesh Komuravelli Spacer Model Checking with Proofs and Counterexamples Anvesh Komuravelli Carnegie Mellon University Joint work with Arie Gurfinkel,
1 CERT BFF: From Start To PoC June 09, 2016 © 2016 Carnegie Mellon University This material has been approved for public release and unlimited distribution.
1 Integration of Process Initiatives And Assessments Common Process Framework Integration of Management System Standards and Initiatives (QMS/CMMI/Lean/PMBP)
The software model checker BLAST Dirk Beyer, Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar Presented by Yunho Kim TexPoint fonts used in EMF. Read.
Secure Software Workforce Development Panel Session
Software Testing.
Michael Spiegel, Esq Timothy Shimeall, Ph.D.
Interpolating Property Directed Reachability
Metrics-Focused Analysis of Network Flow Data
Model-Driven Analysis Frameworks for Embedded Systems
Introduction to Software Testing
Inferring Simple Solutions to Recursion-free Horn Clauses via Sampling
QUELCE: Quantifying Uncertainty in Early Lifecycle Cost Estimation
Capability Maturity Model
Presentation transcript:

© 2012 Carnegie Mellon University From Underapproximations to Overapproximations and Back! Arie Gurfinkel Software Engineering Institute Carnegie Mellon University joint work with Aws Albarghouthi and Marsha Chechik from University of Toronto TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A

2 UFO Arie Gurfinkel © 2012 Carnegie Mellon University NO WARRANTY THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN “AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. Use of any trademarks in this presentation is not intended in any way to infringe on the rights of the trademark holder. This Presentation may be reproduced in its entirety, without modification, and freely distributed in written or electronic form without requesting formal permission. Permission is required for any other use. Requests for permission should be directed to the Software Engineering Institute at This work was created in the performance of Federal Government Contract Number FA C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. The Government of the United States has a royalty-free government-purpose license to use, duplicate, or disclose the work, in whole or in part and in any manner, and to have or permit others to do so, for government purposes pursuant to the copyright license under the clause at

3 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Software Engineering Institute (SEI) Department of Defense R&D Laboratory (FFRDC) Created in 1984 Under contract to Carnegie Mellon University Offices in Pittsburgh, PA; Washington, DC; and Frankfurt, Germany SEI Mission: advance software engineering and related disciplines to ensure the development and operation of systems with predictable and improved cost, schedule, and quality.

4 UFO Arie Gurfinkel © 2012 Carnegie Mellon University SEI Technical Programs Networked Systems Survivability (CERT) Secure Software and Systems Cyberthreat and Vulnerability Analysis Enterprise Workforce Development Forensics Software Engineering Process Management (SEPM) Capability Maturity Model Integration (CMMI) Team Software Process (TSP) Software Engineering Measurement and Analysis (SEMA) Acquisition Support (ASP) Research, Technology, and System Solutions (RTSS) Architecture-Centric Engineering Product Line Practice System of Systems Practice System of Systems Software Assurance Ultra-Large-Scale (ULS) System Perspective Independent Research and Development (IR&D)

5 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Research, Technology, and System Solutions (RTSS) Program Mission Discover the mutual influences of structure and behavior for software-reliant systems at all scales to assure key quality attributes for the achievement of business and mission goals. Vision Assured and flexible system capabilities at all scales

6 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Problems Faced by the DoD Ultra-large-scale systems webs of software- reliant systems, people, economies, and cultures Embedded systems software embedded in hardware devices Stand-alone systems software applications Software product lines families of similar systems Systems of systems federations of independent systems DoD’s ability to rapidly develop and field software-reliant capability across a variety of systems is deficient. Part of the reason rests with DoD’s acquisition process; part of the reason is technical. Software systems science and engineering are inadequate to determine how to structure and adapt systems at all scales manage interactions among these types of systems assure software-reliant capabilities that are sufficiently reliable, secure, responsive, and adaptable to change Predict and control behavior Assure and bound behavior Coupling to organizational structure and practices increases

7 UFO Arie Gurfinkel © 2012 Carnegie Mellon University RTSS: Research Mapping Ultra-large-scale systems Embedded systems Stand-alone systems Software product lines Systems of systems Product Line Practice focus Architecture-Centric Engineering addresses all scales of systems Quality attribute foundations and analysis Architecture-centric practices Architecture principles for ULS systems SoS Practice focus SoS Software Assurance focus Engineering and technology for SoS Integrated practices for SoS Failure patterns and mitigations in SoS Theories, Principles, and Methods Barriers/incentives to assurance technology adoption

8 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Outline Software Engineering Institute (SEI) Introduction Conclusion

9 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Software is Everywhere

10 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Software is Full of Bugs! “Software easily rates as the most poorly constructed, unreliable, and least maintainable technological artifacts invented by man” Paul Strassman, former CIO of Xerox “Software easily rates as the most poorly constructed, unreliable, and least maintainable technological artifacts invented by man” Paul Strassman, former CIO of Xerox

11 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Software Bugs are Expensive! Intel Pentium FDIV Bug Estimated cost: $500 Million Y2K bug Estimated cost: >$500 Billion Northeast Blackout of 2003 “a programming error identified as the cause of alarm failure” Estimated cost: $6-$10 Billion “The cost of software bugs to the U.S. economy is estimated at $60 B/year” NIST, 2002 “The cost of software bugs to the U.S. economy is estimated at $60 B/year” NIST, 2002

12 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Some Examples of Software Disasters Between 1985 and 1987, Therac-25 gave patients massive overdoses of radiation, approximately 100 times the intended dose. Three patients died as a direct consequence. On February 25, 1991, during the Gulf War, an American Patriot Missile battery in Dharan, Saudi Arabia, failed to track and intercept an incoming Iraqi Scud missile. The Scud struck an American Army barracks, killing 28 soldiers and injuring around 100 other people. On June 4, 1996 an unmanned Ariane 5 rocket launched by the European Space Agency forty seconds after lift-off. The rocket was on its first voyage, after a decade of development costing $7 billion. The destroyed rocket and its cargo were valued at $500 million. Details at

13 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Recent Examples In July 2010, The Food and Drug Administration ordered Baxter International to recall all of its Colleague infusion pumps in use and provide a refund or no-cost replacement to United States customers. It has been working with Baxter since 1999 to correct numerous device flaws. Some of the issues were caused by simple buffer overflow. In December 2010, the Skype network went down for 3 days. The source of the outage was traced to a software bug in Skype version 5. In January 2011, two German researchers have shown that most “feature” mobile phones can be “killed” by sending a simple SMS message (SMS of Death). The attack exploits many bugs in the implementation of SMS protocol in the phones. It can potentially bring down all mobile communication…

14 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Software Engineering is very complex Complicated algorithms Many interconnected components Legacy systems Huge programming APIs … Software Engineers need better tools to deal with this complexity! Why so many bugs?

15 UFO Arie Gurfinkel © 2012 Carnegie Mellon University What Software Engineers Need Are … Tools that give better confidence than testing while remaining easy to use And at the same time, are … fully automatic … (reasonably) easy to use … provide (measurable) guarantees … come with guidelines and methodologies to apply effectively … apply to real software systems

16 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Software Model Checking with Predicate Abstraction e.g., Microsoft’s SDV Software Model Checking with Predicate Abstraction e.g., Microsoft’s SDV Automated Software Analysis Program Automated Analysis Automated Analysis Correct Incorrect Abstract Interpretation with Numeric Abstraction e.g., ASTREE, Polyspace Abstract Interpretation with Numeric Abstraction e.g., ASTREE, Polyspace

17 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Outline of The Rest Over- and Under-approximation Driven Approaches UFO: From Under- to Over- and Back! Exploration Strategy Refinement Strategy Conclusion

18 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Overapproximation-driven Approach (CEGAR) Program Is safe? Safe Is cex feasible? Refine post operator Cex Interpolation or WP Interpolation or WP Compute invariant using abstract post Compute invariant using abstract post SMT Cex e.g., BLAST, SLAM, CPAChecker, YaSM, SATAbs, etc.

19 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Is ERROR Reachable? 1: int x = 2; int y = 2; 2: while (y <= 2) 3: y = y – 1; 4: if (x == 2) 5: ERROR:; 6: 1: ; 2: while (*) 3: ; 4: if (*) 5: ERROR:; 6: 1: 2: 3:4: 5: 6: Need This! ProgramAbstraction Over- Approximation AbstractTranslateCheckValidate CEGAR steps Repeat

20 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Over-Driven: Is ERROR Reachable? 1: int x = 2; int y = 2; 2: while (y <= 2) 3: y = y – 1; 4: if (x == 2) 5: ERROR:; 6: bool b is (y <= 2) 1: b = T; 2: while (b) 3: b = b ? T : *; 4: if (*) 5: ERROR:; 6: ProgramAbstraction (with y<=2 ) Over- Approximation 1: 2:b=T 3:b=T4:b=F 5:b=F 6:b=F 2:b=F UNREACHABLE AbstractTranslateCheckNO ERROR CEGAR steps

21 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Underapproximation-driven Approach (Impact) Program Are these paths feasible? Cex Explain why safe Is result an inductive invariant? Safe No SMT Interpolation/ WP Interpolation/ WP Generate paths to error e.g., Impact, Impact2, Synergy, Dash, Wolverine

22 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Under- Driven: Is ERROR Reachable? 1: int x = 2; int y = 2; 2: while (y <= 2) 3: y = y – 1; 4: if (x == 2) 5: ERROR:; 6: Program 1: 2: 4: 5: {y<=2} {true} {false} 3: 2: 4: 5: {true} {y<=2} {false} ExploreRefineExploreRefine IMPACT steps Cover

23 UFO Arie Gurfinkel © 2012 Carnegie Mellon University E 2 Over- Driven v.s. Under- Driven in a Nutshell int main(){ 1 … 2 while (…){ … } E: ERROR } int main(){ 1 … 2 while (…){ … } E: ERROR } UD 1 2 E OD Explore Refine Explore Unlabeled Pred. abs. label Interpolant label

24 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Over- Driven v.s. Under- Driven in a Nutshell int main(){ 1 … 2 while (…){ … } E: ERROR } int main(){ 1 … 2 while (…){ … } E: ERROR } UD OD Explore Refine Explore Unlabeled Pred. abs. label Interpolant label E 22 E E E

25 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Over- Driven v.s. Under- Driven in a Nutshell int main(){ 1 … 2 while (…){ … } E: ERROR } int main(){ 1 … 2 while (…){ … } E: ERROR } UD OD Explore Refine Explore Unlabeled Pred. abs. label Interpolant label E 22 E E E Explore Refine Explore 1 2 E 1 2 E

26 UFO Arie Gurfinkel © 2012 Carnegie Mellon University OD vs. UD Approaches OD UD Number of Refinements Cost of Exploration

27 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Our Algorithm: UFO UD algorithm Interpolation-based OD algorithm Predicate abstraction based Combination of UD and OD A novel interpolation-based refinement Multiple paths checked and refined with a single SMT call A novel interpolation-based refinement Multiple paths checked and refined with a single SMT call +

28 UFO Arie Gurfinkel © 2012 Carnegie Mellon University E L L UFO in a Nutshell 28 Iteration 1 L E L Iteration 2 L E L Imprecise post  UD Explore from root  OD Imprecise post  UD Explore from root  OD L E Unlabeled Pred. abs. label Interpolant label

29 UFO Arie Gurfinkel © 2012 Carnegie Mellon University The UFO Algorithm Explore Refine

30 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Weak Topological Ordering Definition (WTO): A weak topological order (WTO) of a DAG G = (V, E) is a well-parenthesised total- order ¹ of V without two consecutive ‘(‘ such that for every edge (u, v) 2 E: Elements between two matching paren. are called components First element of a component is called head !(u) is the set of heads of components containing u (1 (2 3 (4) 5 6) 7) WTO: DAG:

© 2012 Carnegie Mellon University Refinement

32 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Craig Interpolation Theorem Theorem (Craig 1957) Let A and B be two First Order (FO) formulae such that A ) : B, then there exists a FO formula I, denoted ITP(A, B), such that A ) I I ) : B atoms(I) 2 atoms(A) Å atoms(B) Theorem (McMillan 2003) A Craig interpolant ITP(A, B) can be effectively constructed from a resolution proof of unsatisfiability of A Æ B In Model Cheching, Craig Interpolation Theorem is used to safely over- approximate the set of (finitely) reachable states

33 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Craig Interpolation in Model Checking Over-Approximating Reachable States Let R i be the ith step of a transition system Let A = Init Æ R 0 Æ … Æ R n and B = Bad ITP (A, B) (if exists) is an over-approx of states reachable in n-steps that does not contain any Bad states A A B B ITP(A,B)

34 UFO Arie Gurfinkel © 2012 Carnegie Mellon University )))))) Interpolation Sequence Given a sequence of formulas A = {A i } i=0 n, an interpolation sequence ItpSeq(A) = {I 1, …, I n-1 } is a sequence of formulas such that I k is an ITP (A 0 Æ … Æ A k-1, A k Æ … Æ A n ), and 8 k<n. I k Æ A k +1 ) I k+1 A 0 A 1 A 2 A 3 A 4 A 5 A 6 I 0 I 1 I 2 I 3 I 4 I 5 If A i is a transition relation of step i, then the interpolation sequence is a proof why a program trace is safe.

35 UFO Arie Gurfinkel © 2012 Carnegie Mellon University DAG Interpolants: Solving the Refinement Prob. Given a DAG G = (V, E) and a labeling of edges ¼:E  Expr. A DAG Interpolant (if it exists) is a labeling I:V  Expr such that for any path v 0, …, v n, and 0 < k < n, I(v k ) = ITP (¼(v 0 ) Æ … Æ ¼ (v k-1 ), ¼(v k ) Æ … Æ ¼(v n )) 8 (u, v) 2 E. (I(u) Æ ¼ (u, v)) ) I(v) ¼1¼1 ¼2¼2 ¼3¼3 ¼4¼4 ¼5¼5 ¼6¼6 ¼7¼7 ¼8¼8 I1I1 I2I2 I3I3 I4I4 I5I5 I6I6 I7I7 I 2 = ITP (¼ 1, ¼ 8 ) I 2 = ITP (¼ 1, ¼ 2 Æ ¼ 3 Æ ¼ 6 Æ ¼ 7 ) … (I 1 Æ ¼ 1 ) ) I 2 (I 2 Æ ¼ 8 ) ) I 7 (I 2 Æ ¼ 2 ) ) I 3 …

36 UFO Arie Gurfinkel © 2012 Carnegie Mellon University DAG Interpolation Algorithm Reduce DAG Interpolation to Sequence Interpolation! DagItp ((V, E), ¼ ) { ( A 0, …, A n ) = Encode(V, E, ¼ ) ( I 1, …, I n-1 ) = SeqItp( A 0, …, A n ) for i in [1, n-1] do J i = Clean( I i ) return ( J 1, …, J n-1 ) } DagItp ((V, E), ¼ ) { ( A 0, …, A n ) = Encode(V, E, ¼ ) ( I 1, …, I n-1 ) = SeqItp( A 0, …, A n ) for i in [1, n-1] do J i = Clean( I i ) return ( J 1, …, J n-1 ) } Encode input DAG by a set of constraints. One constraint per vertex. Compute interpolant sequence. One interpolant per vertex. Remove out-of-scope variables

37 UFO Arie Gurfinkel © 2012 Carnegie Mellon University DagItp: Encode Encode ¼1¼1 ¼2¼2 ¼3¼3 ¼4¼4 ¼5¼5 ¼6¼6 ¼7¼7 ¼8¼8 v1v1 ) v2 Æ ¼1v1v1 ) v2 Æ ¼1 A1A1 v 2 ) (v 3 Æ ¼ 2 ) Ç (v 7 Æ ¼ 8 ) A2A2 v 3 ) (v 4 Æ ¼ 3 ) Ç (v 5 Æ ¼ 4 ) A3A3 v4 ) v6 Æ ¼6v4 ) v6 Æ ¼6 A4A4 v5 ) v6 Æ ¼5v5 ) v6 Æ ¼5 A5A5 v6 ) v7 Æ ¼7v6 ) v7 Æ ¼7 A6A6

38 UFO Arie Gurfinkel © 2012 Carnegie Mellon University DagItp: Sequence Interpolate 1 L v1v1 ) v2 Æ ¼1v1v1 ) v2 Æ ¼1 A1A1 v 2 ) (v 3 Æ ¼ 2 ) Ç (v 7 Æ ¼ 8 ) A2A2 v 3 ) (v 4 Æ ¼ 3 ) Ç (v 5 Æ ¼ 4 ) A3A3 v4 ) v6 Æ ¼6v4 ) v6 Æ ¼6 A4A4 v5 ) v6 Æ ¼5v5 ) v6 Æ ¼5 A5A5 v6 ) v7 Æ ¼7v6 ) v7 Æ ¼7 A6A6 I4I4 I4I4

39 UFO Arie Gurfinkel © 2012 Carnegie Mellon University DagItp: Clean Clean(I i ) =

40 UFO Arie Gurfinkel © 2012 Carnegie Mellon University UFO Refinement 1. Construct DAG of current unfolding 2. Use DagItp to find new labels Refinement is done with a single SMT call Cleaning the labels with quantifier elimination is a major bottleneck 45 E L’ 1 L 3

41 UFO Arie Gurfinkel © 2012 Carnegie Mellon University E L L UFO in a Nutshell 41 Iteration 1 L E L Iteration 2 L E L Imprecise post  UD Explore from root  OD Imprecise post  UD Explore from root  OD L E Unlabeled Pred. abs. label Interpolant label

42 UFO Arie Gurfinkel © 2012 Carnegie Mellon University UFO Framework: Architecture

43 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Implementation 43 UD Combined UD+OD OD ufoNo: pure interpolation-based ufoCP: interpolation with Cartesian abstraction ufoBP: interpolation with Boolean abstraction CP: Cartesian predicate abstraction BP: Boolean predicate abstraction Implemented 5 instances of UFO

44 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Evaluation Benchmarks from SV-COMP 2012: ntdrivers-simplified, ssh-simplifed, and systemc Pacemaker benchmarks from [VMCAI 2012] Total 105 C programs Compared with Wolverine a freely available implementation of IMPACT algorithm based on CProver framework bit-precise (our implementation is not) 44

45 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Results: Summary 45 #SOLVED#SAFE#UNSAFETOT. TIME (s) ufoNo ,289 ufoCP ,838 ufoBP ,260 CP ,363 BP ,018 Wolverine ,753

46 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Results: A Closer Look (SAFE) 46 ufoNoufoCPufoBPBP TIME#REFTIME#REFTIME#REFTIME#REF token token token token token srvr1a srvr1b srvr srvr srvr srvr

47 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Results: A Closer Look (UNSAFE) 47 ufoNoufoCPufoBPBP TIME#REFTIME#REFTIME#REFTIME#REF kundu kundu toy toy token token token token

48 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Results: Observations UFO is very competitive on SV-COMP benchmarks UFO outperforms Lazy Abstraction with Interpolants i.e., Wolverine Different instantiations are more suited to different problems ufoCP hits the sweet spot (most consistent) Need to experiment with different abstract domains and strategies 48

49 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Recent Related Work Impact [McMillan 06] Original lazy abstraction with interpolants Impact2 [McMillan 10] Targets testing/exploration Wolverine [Weissenbacher 11] Bit-level interpolants Ultimate [Ermis et al. 12] Impact with Large Block Encoding for Refinement Whale [Our work 12] Inter-procedural verification with interpolants FunFrog [Sery et al. 11] Function summarization using interpolants 49 Intra-procedural Inter-procedural

50 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Conclusion UFO A Combined UD+OD technique DAG interpolation-based refinement procedure Extensive Evaluation on SV-COMP benchmarks – Results show synergy between UD and OD Current and Future Work Open Source release of the UFO framework UFO as a verification framework [CAV 2012] UFO as refinement of abstract interpretations [SAS 2012] Inter-procedural extension of UFO via [VMCAI 2012]

51 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Thank You!

52 UFO Arie Gurfinkel © 2012 Carnegie Mellon University Contact Information Presenter Arie Gurfinkel RTSS Telephone: U.S. mail: Software Engineering Institute Customer Relations 4500 Fifth Avenue Pittsburgh, PA USA Web: Customer Relations Telephone: SEI Phone: SEI Fax:

© 2012 Carnegie Mellon University THE END