© 2013 Carnegie Mellon University Vinta: Verification with INTerpolation and Abstract iterpretation Arie Gurfinkel (SEI/CMU) with Aws Albarghouthi and.

Slides:



Advertisements
Similar presentations
Model Checking Base on Interoplation
Advertisements

Model Checking Lecture 4. Outline 1 Specifications: logic vs. automata, linear vs. branching, safety vs. liveness 2 Graph algorithms for model checking.
Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Software Model Checking with SMT Ken McMillan Microsoft Research TexPoint fonts used in EMF: A A A A A.
© 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.
Verification of Evolving Software Natasha Sharygina Joint work with Sagar Chaki and Nishant Sinha Carnegie Mellon University.
An Introduction to the Model Verifier verds Wenhui Zhang September 15 th, 2010.
50.530: Software Engineering Sun Jun SUTD. Week 10: Invariant Generation.
© Anvesh Komuravelli Spacer Automatic Abstraction in SMT-Based Unbounded Software Model Checking Anvesh Komuravelli Carnegie Mellon University Joint work.
© Anvesh Komuravelli Quantified Invariants in Rich Domains using Model Checking and Abstract Interpretation Anvesh Komuravelli, CMU Joint work with Ken.
© 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.
Logic as the lingua franca of software verification Ken McMillan Microsoft Research TexPoint fonts used in EMF: A A A A A Joint work with Andrey Rybalchenko.
© 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.
SYMBOLIC MODEL CHECKING: STATES AND BEYOND J.R. Burch E.M. Clarke K.L. McMillan D. L. Dill L. J. Hwang Presented by Rehana Begam.
© 2013 Carnegie Mellon University Academy for Software Engineering Education and Training, 2013 Session Architect: Tony Cowling Session Chair: Nancy Mead.
© 2012 Carnegie Mellon University UFO: Verification with Interpolants and Abstract Interpretation Arie Gurfinkel and Sagar Chaki Software Engineering Institute.
© 2012 Carnegie Mellon University From Underapproximations to Overapproximations and Back! Arie Gurfinkel Software Engineering Institute Carnegie Mellon.
© 2015 Carnegie Mellon University Property Directed Polyhedral Abstraction Nikolaj Bjørner and Arie Gurfinkel VMCAI 2015.
ISBN Chapter 3 Describing Syntax and Semantics.
Review of topics Final exam : -May 2nd to May 7 th - Projects due on May 7th.
SAT and Model Checking. Bounded Model Checking (BMC) A.I. Planning problems: can we reach a desired state in k steps? Verification of safety properties:
The Software Model Checker BLAST by Dirk Beyer, Thomas A. Henzinger, Ranjit Jhala and Rupak Majumdar Presented by Yunho Kim Provable Software Lab, KAIST.
© 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.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
Program analysis Mooly Sagiv html://
Program analysis Mooly Sagiv html://
© 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.
1 Program Analysis Mooly Sagiv Tel Aviv University Textbook: Principles of Program Analysis.
Overview of program analysis Mooly Sagiv html://
1 Program Analysis Systematic Domain Design Mooly Sagiv Tel Aviv University Textbook: Principles.
Describing Syntax and Semantics
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
Program Analysis Mooly Sagiv Tel Aviv University Sunday Scrieber 8 Monday Schrieber.
© 2013 Carnegie Mellon University Vinta: Verification with INTerpolation and Abstract iterpretation Arie Gurfinkel Software Engineering Institute Carnegie.
272: Software Engineering Fall 2012 Instructor: Tevfik Bultan Lecture 4: SMT-based Bounded Model Checking of Concurrent Software.
© 2015 Carnegie Mellon University Interpolating Property Directed Reachability Software Engineering Institute Carnegie Mellon University Pittsburgh, PA.
SAT and SMT solvers Ayrat Khalimov (based on Georg Hofferek‘s slides) AKDV 2014.
Type Systems CS Definitions Program analysis Discovering facts about programs. Dynamic analysis Program analysis by using program executions.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
© 2008 Carnegie Mellon University Combining Predicate and Numeric Abstraction for Software Model Checking Software Engineering Institute Carnegie Mellon.
© 2014 Carnegie Mellon University Synthesizing Safe Bit-Precise Invariants Arie Gurfinkel (SEI / CMU) Anton Belov (UCD / Synopsys) Joao Marques-Silva (UCD)
Symbolic Execution with Abstract Subsumption Checking Saswat Anand College of Computing, Georgia Institute of Technology Corina Păsăreanu QSS, NASA Ames.
Program Analysis and Verification Spring 2015 Program Analysis and Verification Lecture 12: Abstract Interpretation IV Roman Manevich Ben-Gurion University.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Author Software Engineering Institute
© 2015 Carnegie Mellon University Parametric Symbolic Reachability Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Arie.
Random Interpretation Sumit Gulwani UC-Berkeley. 1 Program Analysis Applications in all aspects of software development, e.g. Program correctness Compiler.
SMT and Its Application in Software Verification (Part II) Yu-Fang Chen IIS, Academia Sinica Based on the slides of Barrett, Sanjit, Kroening, Rummer,
SAT-Based Model Checking Without Unrolling Aaron R. Bradley.
1 Proving program termination Lecture 5 · February 4 th, 2008 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A.
CS357 Lecture 13: Symbolic model checking without BDDs Alex Aiken David Dill 1.
© Anvesh Komuravelli Spacer Compositional Verification of Procedural Programs using Horn Clauses over Integers and Arrays Anvesh Komuravelli work done.
CHARME’03 Predicate abstraction with Minimum Predicates Sagar Chaki*, Ed Clarke*, Alex Groce*, Ofer Strichman** * Carnegie Mellon University ** Technion.
© Anvesh Komuravelli Spacer Model Checking with Proofs and Counterexamples Anvesh Komuravelli Carnegie Mellon University Joint work with Arie Gurfinkel,
Program Analysis and Verification Spring 2015 Program Analysis and Verification Lecture 8: Static Analysis II Roman Manevich Ben-Gurion University.
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
Presentation Title 2/4/2018 Software Verification using Predicate Abstraction and Iterative Refinement: Part Bug Catching: Automated Program Verification.
Interpolating Property Directed Reachability
SMT-Based Verification of Parameterized Systems
Parametric Symbolic Reachability
Metrics-Focused Analysis of Network Flow Data
Discrete Controller Synthesis
Presentation transcript:

© 2013 Carnegie Mellon University Vinta: Verification with INTerpolation and Abstract iterpretation Arie Gurfinkel (SEI/CMU) with Aws Albarghouthi and Marsha Chechik (U. of Toronto) and Sagar Chaki (SEI/CMU), and Yi Li (U. of Toronto) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAA

2 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Copyright 2013 Carnegie Mellon University This material is based upon work funded and supported by the Department of Defense under Contract No. FA C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Department of Defense. 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. This material has been approved for public release and unlimited distribution. This material 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 DM

3 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Automated Analysis Automated Analysis 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 Correct Incorrect Abstract Interpretation with Numeric Abstraction e.g., ASTREE, Polyspace Abstract Interpretation with Numeric Abstraction e.g., ASTREE, Polyspace

4 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Motivation Abstract Interpretation is one of the most scalable approaches for program verification But, in practice, AI suffers from many false positives due to imprecise operations: join, widen imprecise semantics of operations: abstract post in-expressivity of abstract domains: weakly relational facts, … No CounterExamples and No Refinement Goal: Enhance Abstract Interpretation with Interpolation- based refinement strategy

5 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Outline (of the rest of the talk) Numeric Abstract Interpretation Vinta illustrated Abstract Interpretation with Unfoldings Abstract-Interpretation guided DAG-Interpolation Refinement Implementation Results of Software Verification Competition Secret Sauce Conclusions and Future Directions

6 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Numeric Abstract Interpretation Analysis is restricted to a fixed Abstract Domain Abstract Domain ≡ “a (possibly infinite) set of predicates from a fixed theory” + efficient (abstract) operations Abstract DomainAbstract Elements Sign0 Box (or Interval) c 1  x  c 2 Octagon ± x ± y  c Polyhedraa 1 x 1 + a 2 x 2 + a 3 x 3 + a 4  0 Common Numeric Abstract Domains Legend x,yprogram variables c,c i,a i numeric constants

7 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Abstract Interpretation w/ Box Domain (1) if (3 <= y1 <= 4) { x1 := y1-2; x2 := y1+2; } else if (3 <= y2 <= 4) { x1 := y2-2; x2 := y2+2; } else return; assert (5 <= x1 + x2 <= 10); 3 <= y1 <= 4 1 <= x1 <= 2 5 <= x2 <= 6 3 <= y1 <= 4 1 <= x1 <= 2 5 <= x2 <= 6 3 <= y2 <= 4 1 <= x1 <= 2 5 <= x2 <= 6 3 <= y2 <= 4 1 <= x1 <= 2 5 <= x2 <= 6 1<=x1<=2 5<=x2<=6 1<=x1<=2 5<=x2<=6 Program Steps:

8 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Abstract Interpretation w/ Box Domain (2) x := 0 while (x < 1000) { x := x + 1; } assert (x == 1000); Program x = 0 x = 1 0<= x <=1 1<= x <=2 0<= x <=2 1<= x <=3 0<= x <=1000 0<= x < <= x <= 1000 x = 1000 widening Steps:

9 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Abstract Domain as an Interface interface AbstractDomain(V) : V – set of variables A – abstract elements E – expressions S – statements α : E → A γ : A → E meet : A  A → A isTop : A → bool isBot : A → bool join : A  A → A leq : A  A → bool αPost : S → (A → A) widen : A  A → A All operations are over-approximations, e.g., γ (a) || γ (b)  γ ( join (a, b) ) γ (a) && γ (b)  γ (meet (a,b) ) abstract concretize abstract transformer order

10 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Example: Box Abstract Domain (1, 10) meet (2, 12) = (2,10) (1, 3) join (7, 12) = (1,12) 1  x  10 (1, 10) α α γ γ 1  x  10 (a, b) meet (c, d) = (max(a,c), min(b,d)) (a, b) join (c, d) = (min(a,c),max(b,d)) α Post (x := x + 1) ((a, b)) = (a+1, b+1)(1, 10) + 1 = (2, 11) Definition of Operations Examples over-approximation abstract concretize

11 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Abstract Interpretation w/ Box Domain (3) assume (i=1 || i=2) if (i = 1) x1 := i; else if (i = 2) x2 := -4; if (i = 1) assert (x1 > 0); else if (i = 2) assert (x2 < 0); 1 <= i <= 2 i=1 i=1 && x1=1 i=2 i=2 && x2=-4 1 <= i <= 2 i=1 i=2 Loss of precision due to join False Positive Program Steps:

12 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Vinta: Verification with INTERP and AI uses Cutpoint Graph (CPG) maintains an unrolling of CPG computes disjunctive invariants uses novel powerset widening uses SMT to check for CEX DAG Interpolation for Refinement Guided by AI-computed Invs Fills in “gaps” in AI Abstract Interpretation Abstract Interpretation Refinement Program SAFE (+Invariant) SAFE (+Invariant) UNSAFE (+CEX) UNSAFE (+CEX) Interpolation Unsafe Invariant Strengthening

13 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Example: AI phase 1: x = 10; 2: while (*) x = x - 2; if (x == 9) 3: error(); 1: x = 10; 2: while (*) x = x - 2; if (x == 9) 3: error(); 1 2 2’ 2’’ 3 Alarm! Exploration: WTO Abstract Domain: Intervals Side effect: Labelled CFG unrolling Exploration: WTO Abstract Domain: Intervals Side effect: Labelled CFG unrolling

14 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Verification Conditions 1 2 2’ 2’ ’ 3 Instruction encoding Control-flow encoding 1: x = 10; 2: while (*) x = x - 2; if (x == 9) 3: error(); 1: x = 10; 2: while (*) x = x - 2; if (x == 9) 3: error();

15 Vinta Arie Gurfinkel © 2013 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

16 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University DAG Interpolants [TACAS’12] 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 …

17 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University DAG Interpolation Algorithm [TACAS’12] 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

18 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University In our running example… ’2’ 2 ’’ 3 How to use the results of AI here?

19 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Restricted DAG Interpolants 1 2 2’2’ 2 ’’ 3

20 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Refinement: Strengthening 1 2 2’ 2’’ 2’’’ Program is safe! 3 3 1: x = 10; 2: while (*) x = x - 2; if (x == 9) 3: error(); 1: x = 10; 2: while (*) x = x - 2; if (x == 9) 3: error();

21 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University VINTA from 30,000 ft Abstract Interpretation Alarm! Refinement w/ DAG Interpolants

22 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University VINTA from 30,000 ft Abstract Interpretation Refinement w/ DAG Interpolants Refinement recovers imprecision in: Join, Widening Abstract Transformer Inexpressive Abstract Domain

23 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Vinta is part of UFO 23 A framework and a tool for software verification Tightly integrates interpolation- and abstraction-based techniques References: [SAS12] Craig Interpretation [CAV12] UFO: A Framework for Abstraction- and Interpolation-based Software Verification [TACAS12] From Under-approximations to Over-approximations and Back [VMCAI12] Whale: An Interpolation-based Algorithm for Interprocedural Verification Check it out at: Check it out at:

24 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Implementation in UFO Framework C to LLVM C Program with assertions ARG Constructor Abstract Post Expansion Strategy Refinement Strategy Optimizer Cutpoint Graph SMT interface Mathsat Z3

© 2013 Carnegie Mellon University Software Verification Competition (SV-COMP 2013)

26 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University SV-COMP nd Software Verification Competition held at TACAS 2013 Goals Provide a snapshot of the state-of-the-art in software verification to the community. Increase the visibility and credits that tool developers receive. Establish a set of benchmarks for software verification in the community. Participants: BLAST, CPAChecker-Explicit, CPAChecker-SeqCom, CSeq, ESBMC, LLBMC, Predator, Symbiotic, Threader, UFO, Ultimate Benchmarks: C programs with ERROR label (programs include pointers, structures, etc.) Over 2,000 files, each 2K – 100K LOC Linux Device Drivers, SystemC, “Old” BLAST, Product Lines

27 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University SV-COMP 2013: Scoring Scheme PointsReported ResultDescription 0UNKNOWN Failure to compute verification result, out of resources, program crash. +1 FALSE/UNSAFE correct The error in the program was found and an error path was reported. -4 FALSE/UNSAFE wrong An error is reported for a program that fulfills the property (false alarm, incomplete analysis). +2 TRUE/SAFE correct The program was analyzed to be free of errors. -8 TRUE/SAFE wrong The program had an error but the competition candidate did not find it (missed bug, unsound analysis). Ties are broken by run-time

28 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University UFO/VINTA Results UFO won gold in 4 categories Control Flow Integers (perfect score) Product Lines (perfect score) Device Drivers SystemC Performed much better than mature Predicate Abstraction-based tools VINTA with Box domain was most competitive for bug-discovery VINTA with Boxes domain was most competitive for proving safety

29 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Secret Sauce UFO Front-End Vinta: combining UFO with Abstract Interpretation [SAS ‘2012] Boxes Abstract Domain [SAS ‘2010 w/ Sagar Chaki] DAG Interpolation [TACAS ‘2012 and SAS ‘2012] Run many variants in parallel

30 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University UFO Front End In principle simple, but in practice very messy CIL passes to normalize the code (library functions, uninitialized vars, etc.) llvm-gcc (without optimization) to compile C to LLVM bitcode llvm opt with many standard, custom, and modified optimizations – lower pointers, structures, unions, arrays, etc. to registers – constant propagation + many local optimizations – difficult to preserve indented semantics of the benchmarks – based on very old LLVM 2.6 (newer version of LLVM are “too smart”) Many benchmarks discharged by front-end alone 1,321 SAFE (out of 1,592) and 19 UNSAFE (out of 380) C to LLVM C Program with assertions Optimizer Cutpoint Graph

31 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Boxes Abstract Domain: Semantic View Boxes are “finite union of box values” (alternatively) Boxes are “Boolean formulas over interval constraints” Boxes are “finite union of box values” (alternatively) Boxes are “Boolean formulas over interval constraints”

32 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Linear Decision Diagrams in a Nutshell * x + 2y < 10 z < Linear Decision Diagram decision node decision node true terminal true terminal false edge false edge (x + 2y < 10) OR (x + 2y  10 AND z < 10) Linear Arithmetic Formula Operations Propositional (AND, OR, NOT) Existential Quantification false terminal false terminal true edge true edge Compact Representation Sharing sub-expressions Local numeric reductions Dynamic node reordering * joint work w/ Ofer Strichman

33 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Boxes: Representation Represented by (Interval) Linear Decision Diagrams (LDD) BDDs + non-terminal nodes are labeled by interval constraints + extra rules retain complexity of BDD operations canonical representation for Boxes Abstract Domain available at LDD Semantics (x ≤ 1 || x ≥ 2) && 1 ≤ y ≤ 3 (x ≤ 1 || x ≥ 2) && 1 ≤ y ≤ 3 Syntax

34 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Parallel Verification Strategy Run 7 verification strategies in parallel until a solution is found cpredO3 – all LLVM optimizations + Cartesian Predicate Abstraction bpredO3 – all LLVM optimizations + Boolean PA + 20s TO bigwO3 – all LLVM optimizations + BOXES + non-aggressive widening + 10s TO boxesO3 – all LLVM optimizations + BOXES + aggressive widening boxO3 – all LLVM optimizations + BOX + aggressive widening + 20s TO boxesO0 – minimal LLVM optimizations + BOXES + aggressive widening boxbpredO3 – all LLVM opts + BOX + Boolean PA + aggressive widening + 60s TO

35 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Vinta Family Whale [VMCAI12] Interpolation-based interprocedural analysis Interpolants as procedure summaries State/transition interpolation a.k.a. Tree Interpolants Refinement with DAG interpolants Tight integration of interpolation-based verification with predicate abstraction UFO [TACAS12] Vinta [SAS12] Refinement of Abstract Interpretation (AI) AI-guided DAG Interpolation

36 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Current and Future Work Symbolic Abstraction (w/ Aws Albarghouthi, Zak Kincaid, Yi Li, and Marsha Chechik) An abstract domain based on SMT-formulas DAG Interpolation via/for Non-Recursive Horn Clause Solving DAG Interpolation is an instance of Horn Clause Satisfiability Problem New interpolation-only-based solution Combining DAG-Interpolation and other Horn Clause solving methods Tighter integration of existing engines and passes our current solution is “embarrassingly parallel” there are many other strategies with better defined communication between components and “failed” attempts Spacer (w/ Anvesh Komuravelli, Sagar Chaki, and Ed Clarke)

37 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Symba: Symbolic Abstraction w/ SMT Vinta requires an abstraction function ® : SMT(LA)  AbstractDomain implementing ® is a difficult optimization problem! Formally Given a QFLA formula  and a set of terms t 1, …, t k Find smallest {min i, max i } µ R s.t.  ) Æ i min i · t i · max i Without loss of generality, assume t i contains only a single variable Naïve solution Convert  to DNF Optimize each disjunct (e.g., using Simplex or Fourier-Motzkin) Does not scale (even with lazy conversion to DNF)

38 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University Symba in a nutshell 1. Successively under-approximate  by enumerating models 2. Opportunistically check whether a term is unbounded x is unbounded in  iff exists p 1, p 2 ²  s.t. p 1 (x) < p 2 (x), p 1 and p 2 are on the same hyper-planes of  Not exists p 3, s.t., p 2 (x) · p 3 (x) and p 3 lies on strictly more hyper-planes than p 2 x is unbounded in  iff exists p 1, p 2 ²  s.t. p 1 (x) < p 2 (x), p 1 and p 2 are on the same hyper-planes of  Not exists p 3, s.t., p 2 (x) · p 3 (x) and p 3 lies on strictly more hyper-planes than p 2

39 Vinta Arie Gurfinkel © 2013 Carnegie Mellon University 39 Program Under- Approximate Check Safety Feasible? Abstract Refine Proof-Based Abstraction CEGAR No Yes Safety Proof Counterexample joint work with Anvesh Komuravelli, Sagar Chaki, and Ed Clarke

40 Vinta Arie Gurfinkel © 2013 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:

© 2013 Carnegie Mellon University THE END