l1-2 - CS 267: Automated Verification Lectures 1 and 2:...

Info iconThis preview shows pages 1–9. Sign up to view the full content.

View Full Document Right Arrow Icon
CS 267: Automated Verification Lectures 1 and 2: Brief Introduction. Transition Systems. Temporal Logics: LTL, CTL, CTL* Instructor: Tevfik Bultan
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Who are these people and what do they have in common? 2007 Clarke, Edmund M 2007 Emerson, E Allen 2007 Sifakis, Joseph 1996 Pnueli, Amir 1991 Milner, Robin 1980 Hoare, C. Antony R. 1978 Floyd, Robert W 1972 Dijkstra, E. W.
Background image of page 2
State of the art in automated verification: Model Checking What is model checking? Automated verification technique Focuses on bug finding rather than proving correctness The basic idea is to exhaustively search for bugs in software Has many flavors Explicit-state model checking Symbolic model checking Bounded model checking
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Hardware to Software Model Checking In 90s model checking was mainly used in industry as a technique for analyzing hardware designs Most hardware companies had their in house automated verification tools In the last ten years very promising results have been obtained in verification of software Microsoft started using a model checker to verify device drivers Based on a research project from Microsoft Research Model checking tools found numerous bugs in Linux code
Background image of page 4
Is There More Research Left To Do? Well, model checking does not scale very well To verify a program you need to investigate all possible states (configurations) of the program somehow In theory: inifinite state undecidable In practice: finite but large number of states run out of memory We look for ways to reduce the state space while showing that properties we are interested are preserved in the transformed system symbolic representations modularity abstraction symmetry reduction, etc.
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Beyond Model Checking Promising results obtained in the model checking area created a new interest in automated verification Nowadays, there is a wide spectrum of verification/analysis/testing techniques with varying levels of power and scalability Bounded verification using SAT solvers Symbolic execution using combinations of decision procedures Dynamic symbolic execution (aka concolic execution) Various types of symbolic analysis: shape analysis, string analysis, size analysis, etc.
Background image of page 6
What to Verify Before we start talking about automated verification techniques, we need to identify what we want to verify It turns out that this is not a very simple question For the rest of this lecture we will discuss issues related to this question
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
A Mutual Exclusion Protocol Process 1: while (true) { out: a := true; turn := true; wait: await (!b or !turn); cs: a := false; } || Process 2: while (true) { out: b := true; turn := false; wait: await (!a or turn); cs: b := false; } Two concurrently executing processes are trying to enter a critical section without violating mutual exclusion
Background image of page 8
Image of page 9
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 33

l1-2 - CS 267: Automated Verification Lectures 1 and 2:...

This preview shows document pages 1 - 9. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online