Predicate Abstraction Daniel Kroening 1
|
|
- Brendan Bryant
- 5 years ago
- Views:
Transcription
1 Predicate Abstraction Daniel Kroening 1
2 Motivation Software has too many state variables State Space Explosion Graf/Saïdi 97: Predicate Abstraction Idea: Only keep track of predicates on data Abstraction function: Daniel Kroening 2
3 Predicate Abstraction Concrete States: Predicates: Abstract transitions? Daniel Kroening 3
4 nder- vs. Overapproximation How to abstract the transitions? Depends on the property we want to show Typically done in a conservative manner Existential abstraction: Preserves safety properties Daniel Kroening 4
5 Predicate Abstraction Abstract Transitions: Property: Property holds. Ok Daniel Kroening 5
6 Predicate Abstraction Abstract Transitions: Property: This trace is spurious! Daniel Kroening 6
7 Predicate Abstraction Abstract Transitions: Property: New Predicates: Daniel Kroening 7
8 Predicate Abstraction for Software et s take existential abstraction seriously Basic idea: with n predicates, there are 2 n 2 n possible abstract transitions et s just check them! Daniel Kroening 8
9 Existential Abstraction Predicates Basic Block Formula i++; p 1 p 2 p ? p 1 p 2 p Query Current Abstract State Next Abstract State Daniel Kroening 9
10 Existential Abstraction Predicates Basic Block Formula i++; p 1 p 2 p Current Abstract State? p 1 p 2 p Next Abstract State Query and so on Daniel Kroening 10
11 Predicate Abstraction for Software A precise existential abstraction can be way too slow se an over-approximation instead Fast to compute But has additional transitions E.g.: SAM (FastAbs) Predicate partitioning Daniel Kroening 11
12 Example for Predicate Abstraction int main() { int i; } i=0; while(even(i)) i++; + p 1 i=0 = p 2 even(i) void main() { bool p1, p2; } p1=tre; p2=tre; while(p2) { p1= p1?fase:*; p2=!p2; } C program Predicates Boolean program [Graf, Saidi 97] [Ball, Rajamani 00] Daniel Kroening 12
13 Predicate Abstraction for Software How do we get the predicates? Automatic abstraction refinement! [Kurshan et al. 93] [Ball, Rajamani 00] [Clarke et al. 00] Daniel Kroening 13
14 Abstraction Refinement oop Actual Program Initial Abstraction Concurrent Boolean Program Verification Model Checker No error or bug found Property holds Counterexample Abstraction refinement [Kurshan et al. 93] [Ball, Rajamani 00] [Clarke et al. 00] Refinement Simulator Spurious counterexample Simulation successful Bug found Daniel Kroening 14
15 Checking the Boolean Program No more integers! But: function calls non-determinism Concurrency if original program is concurrent BDD-based model checking now scales For sequential programs Bebop (MSR) Even SMV! Daniel Kroening 15
16 SMV for the Boolean Program Program Variables VAR b0_argc_ge_1: boolean; -- argc >= 1 VAR b1_argc_le_ : boolean; -- argc <= VAR b2: boolean; -- argv[argc] == N VAR b3_nmemb_ge_r: boolean; -- nmemb >= r VAR b4: boolean; -- p1 == &array[0] VAR b5_i_ge_8: boolean; -- i >= 8 VAR b6_i_ge_s: boolean; -- i >= s VAR b7: boolean; i >= 8 VAR b8: boolean; i >= s VAR b9_s_gt_0: boolean; -- s > 0 VAR b10_s_gt_1: boolean; -- s > Daniel Kroening 17
17 SMV for the Boolean Program Control Flow -- program counter: 56 is the "terminating" PC VAR PC: 0..56; ASSIGN init(pc):=0; -- initial PC ASSIGN next(pc):=case PC=0: 1; -- other PC=1: 2; -- other... PC=19: case -- goto (with guard) guard19: 26; 1: 20; esac; Daniel Kroening 18
18 SMV for the Boolean Program Data TRANS (PC=0) -> next(b0_argc_ge_1)=b0_argc_ge_1 & next(b1_argc_le_213646)=b1_argc_le_21646 & next(b2)=b2 & (!b30 b36) & (!b17!b30 b42) & (!b30!b42 b48) & (!b17!b30!b42 b54) & (!b54 b60) TRANS (PC=1) -> next(b0_argc_ge_1)=b0_argc_ge_1 & next(b1_argc_le_214646)=b1_argc_le_ & next(b2)=b2 & next(b3_nmemb_ge_r)=b3_nmemb_ge_r & next(b4)=b4 & next(b5_i_ge_8)=b5_i_ge_8 & next(b6_i_ge_s)=b6_i_ge_s Daniel Kroening 19
19 SMV for the Boolean Program Property -- the specification -- file main.c line 20 column 12 function c::very_buggy_function SPEC AG ((PC=51) ->!b23) Daniel Kroening 20
20 SAM Microsoft blames most Windows crashes on third party device drivers The Windows device driver API is quite complicated ow level C code SAM: Tool to automatically check device drivers for certain errors To be shipped with Device Driver Development Kit Full detail (and all the slides) available at Daniel Kroening 21
21 State Machine for ocking nlocked Rel Rel Acq Error ocked Acq Too hard for programmers, and therefore: ocking Rule in SIC state { enum {ocked,nlocked} s = nlocked; } KeAcquireSpinock.entry { if (s==ocked) abort; else s = ocked; } KeReleaseSpinock.entry { if (s==nlocked) abort; else s = nlocked; } Daniel Kroening 23
22 Example do { KeAcquireSpinock(); Does this code obey the locking rule? npacketsold = npackets; if(request){ request = request->next; KeReleaseSpinock(); npackets++; } } while (npackets!= npacketsold); KeReleaseSpinock(); Daniel Kroening 24
23 Example do { KeAcquireSpinock(); Model checking boolean program (bebop) if(*){ } } while (*); KeReleaseSpinock(); E KeReleaseSpinock(); Daniel Kroening 25
24 Example do { KeAcquireSpinock(); npacketsold = npackets; Is error path feasible in C program? (newton) if(request){ request = request->next; KeReleaseSpinock(); npackets++; } } while (npackets!= npacketsold); E KeReleaseSpinock(); Daniel Kroening 26
25 Example b : (npacketsold == npackets) do { KeAcquireSpinock(); npacketsold = npackets; Add new predicate to boolean program (c2bp) b = true; if(request){ request = request->next; KeReleaseSpinock(); npackets++; b = b? false : *; } } while (npackets!= npacketsold);!b E KeReleaseSpinock(); Daniel Kroening 27
26 Example b : (npacketsold == npackets) do { KeAcquireSpinock(); b = true; Model checking refined boolean program (bebop) b b b b!b if(*){ KeReleaseSpinock(); b = b? false : *; } } while (!b ); b KeReleaseSpinock(); b E Daniel Kroening 28
27 Example b : (npacketsold == npackets) do { KeAcquireSpinock(); b = true; Model checking refined boolean program (bebop) b b b b!b if(*){ KeReleaseSpinock(); b = b? false : *; } } while (!b ); b KeReleaseSpinock(); b Daniel Kroening 29
28 Abstraction Refinement oop Actual Program Initial Abstraction Concurrent Boolean Program Verification Model Checker No error or bug found Property holds Abstraction refinement Refinement Simulator Simulation successful Bug found Spurious counterexample Daniel Kroening 30
29 Simulation Given an abstract counterexample, check if there exists corresponding concrete counterexample Transform path into SSA Add if/while guards as constraints Q: What about threads? Daniel Kroening 31
30 Example Predicate: y>x Daniel Kroening 32
31 Example: Simulation SSA SSA Spurious trace! Daniel Kroening 33
32 Abstraction Refinement oop Actual Program Initial Abstraction Concurrent Boolean Program Verification Model Checker No error or bug found Property holds Abstraction refinement Refinement Simulator Simulation successful Bug found Spurious counterexample Daniel Kroening 34
33 Manual Proof! We are using strongest post-conditions here Daniel Kroening 35
34 Tool Overview There are a number of implementations SAM (Microsoft Research) MAGIC (CM, now SEI) DiVer (NEC) Blast (group Henzinger) (and we have one, too) Daniel Kroening 40
CS 510/13. Predicate Abstraction
CS 50/3 Predicate Abstraction Predicate Abstraction Extract a finite state model from an infinite state system Used to prove assertions or safety properties Successfully applied for verification of C programs
More informationOutline. Introduction SDV Motivation Model vs Real Implementation SLIC SDVRP SLAM-2 Comparisons Conclusions
Outline Introduction SDV Motivation Model vs Real Implementation SIC SDVRP SAM-2 Comparisons Conclusions SDV Research Platform Academic release of SDV (Static Driver Verifier), based on the code that ships
More informationSoftware Model Checking. Xiangyu Zhang
Software Model Checking Xiangyu Zhang Symbolic Software Model Checking CS510 S o f t w a r e E n g i n e e r i n g Symbolic analysis explicitly explores individual paths, encodes and resolves path conditions
More informationHaving a BLAST with SLAM
Having a BLAST with SLAM Meeting, CSCI 555, Fall 20 Announcements Homework 0 due Sat Questions? Move Tue office hours to -5pm 2 Software Model Checking via Counterexample Guided Abstraction Refinement
More informationHaving a BLAST with SLAM
Announcements Having a BLAST with SLAM Meetings -, CSCI 7, Fall 00 Moodle problems? Blog problems? Looked at the syllabus on the website? in program analysis Microsoft uses and distributes the Static Driver
More informationHaving a BLAST with SLAM
Having a BLAST with SLAM # #2 Topic: Software Model Checking via Counter-Example Guided Abstraction Refinement There are easily two dozen SLAM/BLAST/MAGIC papers; I will skim. #3 SLAM Overview INPUT: Program
More informationHaving a BLAST with SLAM
Having a BLAST with SLAM # #2 Topic: Software Model Checking via Counter-Example Guided Abstraction Refinement There are easily two dozen SLAM/BLAST/MAGIC papers; I will skim. #3 SLAM Overview INPUT: Program
More informationLectures. System Development. Motivation for Software Verification. System Validation #6 Monday, 26 May 2008
ectures Note that the original lectures 5 and 6 have been combined. Also note that there will no presentation on dynamic POR. # 1 date Mon 14 April Topic SPIN Material [Gerth 1997] [SPIN QuickRef] [Hatcliff
More informationVerifying Concurrent Programs
Verifying Concurrent Programs Daniel Kroening 8 May 1 June 01 Outline Shared-Variable Concurrency Predicate Abstraction for Concurrent Programs Boolean Programs with Bounded Replication Boolean Programs
More informationStatic Program Analysis
Static Program Analysis Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ws-1617/spa/ Schedule of Lectures Jan 17/19: Interprocedural DFA
More informationNo model may be available. Software Abstractions. Recap on Model Checking. Model Checking for SW Verif. More on the big picture. Abst -> MC -> Refine
No model may be available Programmer Software Abstractions Tests Coverage Code Abhik Roychoudhury CS 5219 National University of Singapore Testing Debug Today s lecture Abstract model (Boolean pgm.) Desirable
More informationSoftware Model Checking with Abstraction Refinement
Software Model Checking with Abstraction Refinement Computer Science and Artificial Intelligence Laboratory MIT Armando Solar-Lezama With slides from Thomas Henzinger, Ranjit Jhala and Rupak Majumdar.
More informationMore on Verification and Model Checking
More on Verification and Model Checking Wednesday Oct 07, 2015 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/60 Course fair! 2/60 Exam st October 21, 8:00 13:00 If you want to participate,
More informationModel Checking: Back and Forth Between Hardware and Software
Model Checking: Back and Forth Between Hardware and Software Edmund Clarke 1, Anubhav Gupta 1, Himanshu Jain 1, and Helmut Veith 2 1 School of Computer Science, Carnegie Mellon University {emc, anubhav,
More informationDouble Header. Two Lectures. Flying Boxes. Some Key Players: Model Checking Software Model Checking SLAM and BLAST
Model Checking #1 Double Header Two Lectures Model Checking Software Model Checking SLAM and BLAST Flying Boxes It is traditional to describe this stuff (especially SLAM and BLAST) with high-gloss animation
More informationF-Soft: Software Verification Platform
F-Soft: Software Verification Platform F. Ivančić, Z. Yang, M.K. Ganai, A. Gupta, I. Shlyakhter, and P. Ashar NEC Laboratories America, 4 Independence Way, Suite 200, Princeton, NJ 08540 fsoft@nec-labs.com
More informationPredicate Abstraction of ANSI C Programs using SAT Λ
Predicate Abstraction of ANSI C Programs using SAT Λ Edmund Clarke and Daniel Kroening and Natalia Sharygina and Karen Yorav School of Computer Science Carnegie Mellon University, Pittsburgh, PA, USA Software
More informationSoftware Model Checking with SLAM
Software Model Checking with SLAM Thomas Ball Software Reliability Research MSR Redmond Sriram K. Rajamani Reliable Software Engineering MSR Bangalore http://research.microsoft.com/slam/ People behind
More informationScalable Program Verification by Lazy Abstraction
Scalable Program Verification by Lazy Abstraction Ranjit Jhala U.C. Berkeley ars, July, 997 Lost contact due to real-time priority inversion bug ars, December, 999 Crashed due to uninitialized variable
More informationUsing Counterexample Analysis to Minimize the Number of Predicates for Predicate Abstraction
Using Counterexample Analysis to Minimize the Number of Predicates for Predicate Abstraction Thanyapat Sakunkonchak, Satoshi Komatsu, and Masahiro Fujita VLSI Design and Education Center, The University
More informationSoftware Model Checking. From Programs to Kripke Structures
Software Model Checking (in (in C or or Java) Java) Model Model Extraction 1: int x = 2; int y = 2; 2: while (y
More informationAn Industry Proof-of-Concept Demonstration of MC/DC from Automated Combinatorial Testing
An Industry Proof-of-Concept Demonstration of MC/DC from Automated Combinatorial Testing Redge Bartholomew Software Defects Drive Development Cost especially for safety-critical, embedded systems NIST:
More informationCSC410 Tutorial. An Introduction to NuSMV. Yi Li Nov 6, 2017
CSC410 Tutorial An Introduction to NuSMV Yi Li Nov 6, 2017 An Overview of NuSMV NuSMV is a symbolic model checker developed by FBK-IRST Uses a structured language to model finite-state systems Allows to
More informationAn Eclipse Plug-in for Model Checking
An Eclipse Plug-in for Model Checking Dirk Beyer, Thomas A. Henzinger, Ranjit Jhala Electrical Engineering and Computer Sciences University of California, Berkeley, USA Rupak Majumdar Computer Science
More informationUfo: A Framework for Abstraction- and Interpolation-Based Software Verification
Ufo: A Framework for Abstraction- and Interpolation-Based Software Verification Aws Albarghouthi 1, Yi Li 1, Arie Gurfinkel 2, and Marsha Chechik 1 1 Department of Computer Science, University of Toronto,
More informationCounterexamples with Loops for Predicate Abstraction
Counterexamples with Loops for Predicate Abstraction Daniel Kroening and Georg Weissenbacher Computer Systems Institute, ETH Zurich, 8092 Zurich, Switzerland {daniel.kroening, georg.weissenbacher}@inf.ethz.ch
More informationCS 267: Automated Verification. Lecture 13: Bounded Model Checking. Instructor: Tevfik Bultan
CS 267: Automated Verification Lecture 13: Bounded Model Checking Instructor: Tevfik Bultan Remember Symbolic Model Checking Represent sets of states and the transition relation as Boolean logic formulas
More informationInterpolation-based Software Verification with Wolverine
Interpolation-based Software Verification with Wolverine Daniel Kroening 1 and Georg Weissenbacher 2 1 Computer Science Department, Oxford University 2 Department of Electrical Engineering, Princeton University
More informationScalable Program Analysis Using Boolean Satisfiability: The Saturn Project
Scalable Program Analysis Using Boolean Satisfiability: The Saturn Project Alex Aiken Stanford University Saturn 1 The Idea Verify properties of large systems! Doesn t {SLAM, BLAST, CQual, ESP} already
More informationSeminar in Software Engineering Presented by Dima Pavlov, November 2010
Seminar in Software Engineering-236800 Presented by Dima Pavlov, November 2010 1. Introduction 2. Overview CBMC and SAT 3. CBMC Loop Unwinding 4. Running CBMC 5. Lets Compare 6. How does it work? 7. Conclusions
More informationThe ComFoRT Reasoning Framework
Pittsburgh, PA 15213-3890 The ComFoRT Reasoning Framework Sagar Chaki James Ivers Natasha Sharygina Kurt Wallnau Predictable Assembly from Certifiable Components Enable the development of software systems
More informationPredicate Abstraction of ANSI C Programs using SAT
Predicate Abstraction of ANSI C Programs using SAT Edmund Clarke Daniel Kroening Natasha Sharygina Karen Yorav September 23, 2003 CMU-CS-03-186 School of Computer Science Carnegie Mellon University Pittsburgh,
More informationIntroduction to CBMC. Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Arie Gurfinkel December 5, 2011
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 December 5, 2011 based on slides by Daniel Kroening Bug Catching with SAT-Solvers Main Idea: Given a program and a claim use
More informationFormal Verification of Embedded Software in Medical Devices Considering Stringent Hardware Constraints
Formal Verification of Embedded Software in Medical Devices Considering Stringent Hardware Constraints L. Cordeiro, B. Fischer, H. Chen, J. P. Marques-Silva Lucas Cordeiro lcc08r@ecs.soton.ac.uk Agenda
More informationApplication of Propositional Logic II - How to Test/Verify my C program? Moonzoo Kim
Application of Propositional Logic II - How to Test/Verify my C program? Moonzoo Kim 2 Solving Various Problems using SAT Solver Sudoku Puzzle Encoding 1 Encoding 2 Verify/Testing C Programs Encoding 3
More informationLecture 2: Symbolic Model Checking With SAT
Lecture 2: Symbolic Model Checking With SAT Edmund M. Clarke, Jr. School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 (Joint work over several years with: A. Biere, A. Cimatti, Y.
More informationAutomatically Validating Temporal Safety Properties of Interfaces
Automatically Validating Temporal Safety Properties of Interfaces Thomas Ball and Sriram K. Rajamani Software Productivity Tools Microsoft Research http://www.research.microsoft.com/slam/ Abstract. We
More informationBounded Model Checking Of C Programs: CBMC Tool Overview
Workshop on Formal Verification and Analysis Tools, CFDVS, IIT-Bombay - Feb 21,2017 Bounded Model Checking Of C Programs: CBMC Tool Overview Prateek Saxena CBMC Developed and Maintained by Dr Daniel Kröning
More informationIntroduction to SMV. Arie Gurfinkel (SEI/CMU) based on material by Prof. Clarke and others Carnegie Mellon University
Introduction to SMV Arie Gurfinkel (SEI/CMU) based on material by Prof. Clarke and others 2 Carnegie Mellon University Symbolic Model Verifier (SMV) Ken McMillan, Symbolic Model Checking: An Approach to
More informationCounter-Example Guided Program Verification
Counter-Example Guided Program Verification Parosh Aziz Abdulla, Mohamed Faouzi Atig, and Bui Phi Diep Uppsala University, Sweden {parosh,mohamed faouzi.atig,bui.phi-diep}@it.uu.se Abstract. This paper
More informationSliced Path Prefixes: An Effective Method to Enable Refinement Selection
FORTE '15 Sliced Path Prefixes: An Effective Method to Enable Refinement Selection Dirk Beyer, Stefan Löwe, Philipp Wendler SoSy-Lab Software Systems We want Refinement Selection!!! Because straight-forward
More informationA Simple Tutorial on NuSMV
NuSMV-tutorial 1 A Simple Tutorial on NuSMV Chenyi Zhang March 28, 2007 For a comprehensive tutorial, please visit the site http://nusmv.irst.itc.it/ NuSMV-tutorial 2 Introduction History SMV is the first
More informationPredicate Abstraction of ANSI C Programs using SAT
Predicate Abstraction of ANSI C Programs using SAT Edmund Clarke Daniel Kroening Natasha Sharygina Karen Yorav September 23, 2003 CMU-CS-03-186 School of Computer Science Carnegie Mellon University Pittsburgh,
More informationApplications of Logic in Software Engineering. CS402, Spring 2016 Shin Yoo
Applications of Logic in Software Engineering CS402, Spring 2016 Shin Yoo Acknowledgements I borrow slides from: Moonzoo Kim Theo C. Ruys (http://spinroot.com/spin/doc/ SpinTutorial.pdf) CBMC & Daniel
More informationEdmund Clarke Computer Science Dept., Carnegie Mellon University Pittsburgh, PA, USA
Checking Consistency of C and Verilog using Predicate Abstraction and Induction Daniel Kroening Computer Systems Institute, ETH Zürich Zürich, Switzerland daniel.kroening@inf.ethz.ch Edmund Clarke Computer
More informationNuSMV Hands-on introduction
NuSMV Hands-on introduction F. Mallet fmallet@unice.fr Université Nice Sophia Antipolis NuSMV 1 was an extension of SMV NuSMV 2 SMV : first BDD-based symbolic model-checker [McMillan, 90] NuSMV 2 Combines
More informationFormal Verification of Synchronization Issues in SpecC Description with Automatic Abstraction
Formal Verification of Synchronization Issues in SpecC Description with Automatic Abstraction Thanyapat Sakunkonchak and Masahiro Fujita Department of Electronic Engineering, University of Tokyo 7-3-1
More informationcontaining such cycles will not satisfy the eventuality property, thus, we will be unable to derive its correctness for the concrete model. A common w
A Heuristic for the Automatic Generation of Ranking Functions Λ Dennis Dams z Rob Gerth x Orna Grumberg Abstract The duality between invariance and progress is fundamental in proof techniques for the verification
More informationOver-Approximating Boolean Programs with Unbounded Thread Creation
Over-Approximating Boolean Programs with Unbounded Thread Creation Byron Cook Microsoft Research Cambridge Email: bycook@microsoft.com Daniel Kroening Computer Systems Institute ETH Zurich Email: daniel.kroening@inf.ethz.ch
More informationApproximating Predicate Images for Bit-Vector Logic
Approximating Predicate Images for Bit-Vector Logic Daniel Kroening 1 and Natasha Sharygina 2 1 Computer Systems Institute, ETH Zürich 2 University of Lugano, Switzerland Abstract. Predicate abstraction
More informationSystem Correctness. EEC 421/521: Software Engineering. System Correctness. The Problem at Hand. A system is correct when it meets its requirements
System Correctness EEC 421/521: Software Engineering A Whirlwind Intro to Software Model Checking A system is correct when it meets its requirements a design without requirements cannot be right or wrong,
More informationCounterexample Guided Abstraction Refinement via Program Execution
Counterexample Guided Abstraction Refinement via Program Execution Daniel Kroening, Alex Groce and Edmund Clarke 1 Department of Computer Science Carnegie Mellon University Pittsburgh, PA, 15213 Abstract.
More informationEQUIVALENCE CHECKING IN C-BASED SYSTEM-LEVEL DESIGN BY SEQUENTIALIZING CONCURRENT BEHAVIORS
EQUIVALENCE CHECKING IN C-BASED SYSTEM-LEVEL DESIGN BY SEQUENTIALIZING CONCURRENT BEHAVIORS Thanyapat Sakunkonchak 1, Takeshi Matsumoto 2, Hiroshi Saito 3, Satoshi Komatsu 1, Masahiro Fujita 1 1 VLSI Design
More informationSymmetry-Aware Predicate Abstraction for Shared-Variable Concurrent Programs
Symmetry-Aware Predicate Abstraction for Shared-Variable Concurrent Programs Alastair Donaldson, Alexander Kaiser, Daniel Kroening, and Thomas Wahl Computer Science Department, Oxford University, United
More informationCarnegie Mellon Software Engineering Institute. SAT-Based Predicate Abstraction of Programs
Carnegie Mellon Software Engineering Institute SAT-Based Predicate Abstraction of Programs Edmund Clarke Carnegie Mellon University, School of Computer Science Daniel Kroening Swiss Federal Institute of
More informationThe Spin Model Checker : Part I/II
The Spin Model Checker : Part I/II Moonzoo Kim CS Dept. KAIST Korea Advanced Institute of Science and Technology Motivation: Tragic Accidents Caused by SW Bugs 2 Cost of Software Errors June 2002 Software
More informationSTATIC PROGRAM TRANSFORMATIONS FOR EFFICIENT SOFTWARE MODEL CHECKING
STATIC PROGRAM TRANSFORMATIONS FOR EFFICIENT SOFTWARE MODEL CHECKING Shobha Vasudevan Computer Engineering Research Center The University of Texas at Austin Austin, Texas, U.S.A. shobha@cerc.utexas.edu
More informationFinite State Verification. CSCE Lecture 14-02/25/2016
Finite State Verification CSCE 747 - Lecture 14-02/25/2016 So, You Want to Perform Verification... You have a property that you want your program to obey. Great! Let s write some tests! Does testing guarantee
More informationNOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or
NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 7, U.S. Code) governs the making of photocopies or other reproductions of copyrighted material. Any copying
More informationChecking Consistency of C and Verilog using Predicate Abstraction and Induction
Checking Consistency of C and Verilog using Predicate Abstraction and Induction Edmund Clarke Daniel Kroening June 25, 2004 CMU-CS-04-131 School of Computer Science Carnegie Mellon University Pittsburgh,
More informationModel Checking with Abstract State Matching
Model Checking with Abstract State Matching Corina Păsăreanu QSS, NASA Ames Research Center Joint work with Saswat Anand (Georgia Institute of Technology) Radek Pelánek (Masaryk University) Willem Visser
More informationPredicate Abstraction and CEGAR for Higher Order Model Checking
Predicate Abstraction and CEGAR for Higher Order Model Checking Naoki Kobayashi, Ryosuke Sato, and Hiroshi Unno Tohoku University (Presented at PLDI2011) 1 Our Goal Software model checker for functional
More informationLecture 1: Model Checking. Edmund Clarke School of Computer Science Carnegie Mellon University
Lecture 1: Model Checking Edmund Clarke School of Computer Science Carnegie Mellon University 1 Cost of Software Errors June 2002 Software bugs, or errors, are so prevalent and so detrimental that they
More informationKRATOS A Software Model Checker for SystemC
KRATOS A Software Model Checker for SystemC A. Cimatti, A. Griggio, A. Micheli, I. Narasamdya, and M. Roveri Fondazione Bruno Kessler Irst {cimatti,griggio,amicheli,narasamdya,roveri}@fbk.eu Abstract.
More informationType Theory meets Effects. Greg Morrisett
Type Theory meets Effects Greg Morrisett A Famous Phrase: Well typed programs won t go wrong. 1. Describe abstract machine: M ::= 2. Give transition relation: M 1 M 2
More informationEE382V: System-on-a-Chip (SoC) Design
EE382V: System-on-a-Chip (SoC) Design Lecture 20 SoC Verification Sources: Jacob A. Abraham Andreas Gerstlauer Electrical and Computer Engineering University of Texas at Austin gerstl@ece.utexas.edu Lecture
More informationComputer-Aided Program Design
Computer-Aided Program Design Spring 2015, Rice University Unit 1 Swarat Chaudhuri January 22, 2015 Reasoning about programs A program is a mathematical object with rigorous meaning. It should be possible
More informationFinite State Verification. CSCE Lecture 21-03/28/2017
Finite State Verification CSCE 747 - Lecture 21-03/28/2017 So, You Want to Perform Verification... You have a property that you want your program to obey. Great! Let s write some tests! Does testing guarantee
More informationPredicate Abstraction and Refinement Techniques for Verifying Verilog
Predicate Abstraction and Refinement Techniques for Verifying Verilog Edmund Clarke Himanshu Jain Daniel Kroening June 25, 2004 CMU-CS-04-139 School of Computer Science Carnegie Mellon University Pittsburgh,
More informationSynthesis for Concurrency
Synthesis for Concurrency Martin Vechev ETH Zurich (joint work with Eran Yahav, Greta Yorsh) 1 Concurrency is Everywhere Unreliable Concurrency is Everywhere 2003 Northeast Blackout concurrency error triggers
More informationIntroduction to CBMC: Part 1
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Arie Gurfinkel, Sagar Chaki October 2, 2007 Many slides are courtesy of Daniel Kroening Bug Catching with SAT Solvers Main
More informationLecture1: Symbolic Model Checking with BDDs. Edmund M. Clarke, Jr. Computer Science Department Carnegie Mellon University Pittsburgh, PA 15213
Lecture: Symbolic Model Checking with BDDs Edmund M Clarke, Jr Computer Science Department Carnegie Mellon University Pittsburgh, PA 523 Temporal Logic Model Checking Specification Language: A propositional
More informationOperational Semantics. One-Slide Summary. Lecture Outline
Operational Semantics #1 One-Slide Summary Operational semantics are a precise way of specifying how to evaluate a program. A formal semantics tells you what each expression means. Meaning depends on context:
More informationAbstraction techniques for Floating-Point Arithmetic
Abstraction techniques for Floating-Point Arithmetic Angelo Brillout 1, Daniel Kroening 2 and Thomas Wahl 2 1 ETH Zurich, 2 Oxford University ETH Zürich Floating-Point Arithmetic (FPA) Used for embedded
More informationLecture Outline. COOL operational semantics. Operational Semantics of Cool. Motivation. Notation. The rules. Evaluation Rules So Far.
Lecture Outline Operational Semantics of Cool COOL operational semantics Motivation Adapted from Lectures by Profs. Alex Aiken and George Necula (UCB) Notation The rules CS781(Prasad) L24CG 1 CS781(Prasad)
More informationBOOGIE. Presentation by Itsik Hefez A MODULAR REUSABLE VERIFIER FOR OBJECT-ORIENTED PROGRAMS MICROSOFT RESEARCH
BOOGIE A MODULAR REUSABLE VERIFIER FOR OBJECT-ORIENTED PROGRAMS MICROSOFT RESEARCH Presentation by Itsik Hefez Introduction Boogie is an intermediate verification language, intended as a layer on which
More informationPart II. Hoare Logic and Program Verification. Why specify programs? Specification and Verification. Code Verification. Why verify programs?
Part II. Hoare Logic and Program Verification Part II. Hoare Logic and Program Verification Dilian Gurov Props: Models: Specs: Method: Tool: safety of data manipulation source code logic assertions Hoare
More informationPart II: Atomicity for Software Model Checking. Analysis of concurrent programs is difficult (1) Transaction. The theory of movers (Lipton 75)
Part II: Atomicity for Software Model Checking Class Account { int balance; static int MIN = 0, MAX = 00; bool synchronized deposit(int n) { int t = balance + n; if (t > MAX) return false; bool synchronized
More informationEmbedded Software Verification Challenges and Solutions. Static Program Analysis
Embedded Software Verification Challenges and Solutions Static Program Analysis Chao Wang chaowang@nec-labs.com NEC Labs America Princeton, NJ ICCAD Tutorial November 11, 2008 www.nec-labs.com 1 Outline
More informationA Survey of Automated Techniques for Formal Software Verification
TRANSACTIONS ON CAD 1 A Survey of Automated Techniques for Formal Software Verification Vijay D Silva Daniel Kroening Georg Weissenbacher Abstract The quality and the correctness of software is often the
More informationappropriate abstraction by (1) obtaining an initial abstraction from the property that needs to be checked, and (2) refining this abstraction using an
Automatically Validating Temporal Safety Properties of Interfaces Thomas Ball and Sriram K. Rajamani Software Productivity Tools Microsoft Research http://www.research.microsoft.com/slam/ Abstract. We
More informationConfigurable Software Model Checking
Configurable Software Model Checking CPAchecker Dirk Beyer Dirk Beyer 1 / 26 Software Verification C Program int main() { int a = foo(); int b = bar(a); } assert(a == b); Verification Tool TRUE i.e., specification
More informationLecture Outline. COOL operational semantics. Operational Semantics of Cool. Motivation. Lecture 13. Notation. The rules. Evaluation Rules So Far
Lecture Outline Operational Semantics of Cool Lecture 13 COOL operational semantics Motivation Notation The rules Prof. Aiken CS 143 Lecture 13 1 Prof. Aiken CS 143 Lecture 13 2 Motivation We must specify
More informationLearning Summaries of Recursive Functions
Learning Summaries of Recursive Functions Yu-Fang Chen Bow-Yaw Wang Institute of Information Science Academia Sinica, Taiwan Kai-Chun Yang Abstract We describe a learning-based approach for verifying recursive
More informationProofs from Tests. Sriram K. Rajamani. Nels E. Beckman. Aditya V. Nori. Robert J. Simmons.
Proofs from Tests Nels E. Beckman Carnegie Mellon University nbeckman@cs.cmu.edu Aditya V. Nori Microsoft Research India adityan@microsoft.com Robert J. Simmons Carnegie Mellon University rjsimmon@cs.cmu.edu
More informationVerification of Synchronization in SpecC Description with the Use of Difference Decision Diagram
Verification of Synchronization in SpecC Description with the Use of Difference Decision Diagram Thanyapat Sakunkonchak and Masahiro Fujita Department of Electronic Engineering, University of Tokyo 7-3-1,
More informationTemporal Refinement Using SMT and Model Checking with an Application to Physical-Layer Protocols
Temporal Refinement Using SMT and Model Checking with an Application to Physical-Layer Protocols Lee Pike (Presenting), Galois, Inc. leepike@galois.com Geoffrey M. Brown, Indiana University geobrown@cs.indiana.edu
More informationBandera: Extracting Finite-state Models from Java Source Code
Bandera: Extracting Finite-state Models from Java Source Code James C. Corbet Matthew B. Dwyer John Hatcliff Shawn Laubach Corina S. Păsăreanu Robby Hongjun Zheng Presenter: Henrik Kragh-Hansen October
More informationPROGRAM ANALYSIS & SYNTHESIS
Lecture 02 Structural Operational Semantics (SOS) PROGRAM ANALYSIS & SYNTHESIS EranYahav 1 Previously static analysis over-approximation of program behavior abstract interpretation abstraction, transformers,
More informationSynchronizing the Asynchronous
Synchronizing the Asynchronous Bernhard Kragl IST Austria Shaz Qadeer Microsoft Thomas A. Henzinger IST Austria Concurrency is Ubiquitous Asynchronous Concurrency is Ubiquitous Asynchronous programs are
More informationFormal Verification at Higher Levels of Abstraction
Formal Verification at Higher Levels of Abstraction Daniel Kroening Oxford University Computing Laboratory kroening@kroening.com Sanjit A. Seshia UC Berkeley sseshia@eecs.berkeley.edu Abstract Most formal
More informationModel Checking Revision: Model Checking for Infinite Systems Revision: Traffic Light Controller (TLC) Revision: 1.12
Model Checking mc Revision:.2 Model Checking for Infinite Systems mc 2 Revision:.2 check algorithmically temporal / sequential properties fixpoint algorithms with symbolic representations: systems are
More informationUsing Counterexamples for Improving the Precision of Reachability Computation with Polyhedra
Using Counterexamples for Improving the Precision of Reachability Computation with Polyhedra Chao Wang 1, Zijiang Yang 2, Aarti Gupta 1, and Franjo Ivančić 1 1 NEC Laboratories America, Princeton, NJ 08540,
More informationSymbolic and Concolic Execution of Programs
Symbolic and Concolic Execution of Programs Information Security, CS 526 Omar Chowdhury 10/7/2015 Information Security, CS 526 1 Reading for this lecture Symbolic execution and program testing - James
More informationSchool of Computer & Communication Sciences École Polytechnique Fédérale de Lausanne
Principles of Dependable Systems Building Reliable Software School of Computer & Communication Sciences École Polytechnique Fédérale de Lausanne Winter 2006-2007 Outline Class Projects: mtgs next week
More informationIntroduction. Preliminaries. Original IC3. Tree-IC3. IC3 on Control Flow Automata. Conclusion
.. Introduction Preliminaries Original IC3 Tree-IC3 IC3 on Control Flow Automata Conclusion 2 of 22 Lifting IC3 to Control Flow Automata Tim Lange tim.lange@cs.rwth-aachen.de Introduction Preliminaries
More informationUsing Model Checking with Symbolic Execution to Verify Parallel Numerical Programs
Using Model Checking with Symbolic Execution to Verify Parallel Numerical Programs Stephen F. Siegel 1 Anastasia Mironova 2 George S. Avrunin 1 Lori A. Clarke 1 1 University of Massachusetts Amherst 2
More informationVerification of Parameterized Concurrent Programs By Modular Reasoning about Data and Control
Verification of Parameterized Concurrent Programs By Modular Reasoning about Data and Control Zachary Kincaid Azadeh Farzan University of Toronto January 18, 2013 Z. Kincaid (U. Toronto) Modular Reasoning
More informationIntegrating a SAT Solver with Isabelle/HOL
Integrating a SAT Solver with / Tjark Weber (joint work with Alwen Tiu et al.) webertj@in.tum.de First Munich-Nancy Workshop on Decision Procedures for Theorem Provers March 6th & 7th, 2006 Integrating
More informationSYNERGY : A New Algorithm for Property Checking
SYNERGY : A New Algorithm for Property Checking Bhargav S. Gulavani Thomas A. Henzinger Yamini Kannan Aditya V. Nori Sriram K. Rajamani bhargav@cse.iitb.ernet.in tah@epfl.ch yaminik@microsoft.com adityan@microsoft.com
More information