Logic Model Checking

Size: px
Start display at page:

Download "Logic Model Checking"

Transcription

1 Logic Model Checking Lecture Notes 17:18 Caltech 101b.2 January-March 2005 Course Text: The Spin Model Checker: Primer and Reference Manual Addison-Wesley 2003, ISBN , 608 pgs.

2 checking omega acceptance (general liveness properties) to prove liveness properties, it is sufficient if we can detect the existence of cyclic paths in the product automaton (i.e., the reachability graph) that contain at least one accepting state note that a straight dfs alone does not suffice to not detect the acceptance cycle in this graph when revisiting state 4 from 5, we cannot tell that there exists a path from 4 back to 5 (no transitions are stored in the statespace) Logic Model Checking [17 of 18] 2

3 different ways of solving this problem the default graph search algorithm would be Robert Tarjan s classic depth-first search algorithm computes all strongly connected components of a graph a strongly connected component (SCC) is a subset of the states such that each of the states within this subset is reachable from all others in the subset Tarjan s algorithm uses two 32-bit integers per state: the depth-first number and a lowlink number we can check each SCC for the presence of accepting states if found, compute a path to the accepting state and a cyclic path within the SCC this graph has one SCC, which contains all states Logic Model Checking [17 of 18] 3

4 Spin s nested depth-first search algorithm to solve the problem in our case, it suffices to know if: there exists at least one accepting state that is: both reachable from the initial state AND reachable from itself start of 1st dfs cycle found! start of 2nd dfs with state 5 as root (the seed state 5 ) two simpler sub-problems that can each be solved with a depth-first search, without the need for computing strong components (SCCs) by combining the two stacks, we again immediately have a complete execution trace for a counter-example Logic Model Checking [17 of 18] 4

5 efficient storage visited in the 1 st visited in the 2 nd statespace statespace initial state for 1 st dfs possible values: seed state revisited: cycle found seed state for 2 nd dfs in postorder: check for every reachable accepting state if the state is reachable from itself what makes it efficient: the 2 nd statespace contains at most 1 copy of each state in the 1 st statespace (but we store the 2 nd copy by tagging states in the 1 st statespace with just two extra bits per state) Logic Model Checking [17 of 18] 5

6 computational complexity every state is visited maximally twice by this algorithm this means the runtime can at worst double complexity remains linear in number of reachable states memory cost is largely unaffected each state is stored only once using a 2-bit tag per state this algorithm also solves non-progress cycle detection acceptance cycle detection for LTL formula: <>[] _np until 1996 there was a separate algorithm in Spin for handling non-progress cycle detection omitted in version without loss of generality Logic Model Checking [17 of 18] 6

7 the non-progress cycle detector non-progress can be expressed as an LTL property: <>[] _np never { /* <>[] _np */ do :: np_ -> break :: true od; accept: do :: np_ od np_ true np_ predefined by compiling the pan.c code with directive -DNP formalized as 2-state Büchi automaton any acceptance cycle in the the final product automaton corresponds to a non-progress cycle Logic Model Checking [17 of 18] 7

8 optimization we can stop the search early when reaching state 1, after just two steps because 1 appears on the first dfs stack as 1 we already know that there is a path from 1 to 5 without having to re-construct it start of 1st dfs root of the 2nd dfs (the seed state ) 4 4 Logic Model Checking [17 of 18] 8

9 the nested depth-first search algorithm Automaton A = { S, s 0, L, T, F Stack D = { Statespace V = { State seed = nil Boolean toggle = false Start() { Add_Statespace(V, A.s 0, toggle) Push_Stack(D, A.s 0, toggle) Search() Search() { (s,toggle) = Top_Stack(D) for each (s,l,s') A.T { /* if seed is reachable from itself */ if s' == seed On_Stack(D,s',false) { PrintStack(D) PopStack(D) return if In_Statespace(V, s', toggle) == false { Add_Statespace(V, s', toggle) Push_Stack(D, s', toggle) Search() if s A.F toggle == false { seed = s /* reachable accepting state */ toggle = true Push_Stack(D, s, toggle) Search() /* start 2nd search */ Pop_Stack(D) seed = nil toggle = false Pop_Stack(D) Logic Model Checking [17 of 18] 9

10 the nested depth-first search algorithm Automaton A = { S, s 0, L, T, F Stack D = { Statespace V = { State seed = nil Boolean toggle = false Start() { Add_Statespace(V, A.s 0, toggle) Push_Stack(D, A.s 0, toggle) Search() important detail: the 2nd search is started in post-order: after searching all successors of an accepting state in the 1st search Search() { (s,toggle) = Top_Stack(D) for each (s,l,s') A.T { /* if seed is reachable from itself */ if s' == seed On_Stack(D,s',false) { PrintStack(D) PopStack(D) return if In_Statespace(V, s', toggle) == false { Add_Statespace(V, s', toggle) Push_Stack(D, s', toggle) Search() if s A.F toggle == false { seed = s /* reachable accepting state */ toggle = true Push_Stack(D, s, toggle) Search() /* start 2nd search */ Pop_Stack(D) seed = nil toggle = false Pop_Stack(D) Logic Model Checking [17 of 18] 10

11 correctness the critical property: the algorithm will detect at least one acceptance cycle, if at least one such cycle exists z n z e z a for a more formal argument, see book p. 179 z a the first accepting state that is reachable from itself for which the 2nd dfs is performed z e a successor of an earlier accepting state z n (not reachable from itself) we can only fail to close the cycle on z a if the cycle passes through such a state z e z n an earlier accepting state (not reachable from itself) with z e as a successor Q: can state z e exist? A: no, because if z e is reachable from z n, then z a is reachable from z n and z a would have been explored in the 2nd dfs before z n Logic Model Checking [17 of 18] 11

12 weak and strong fairness strong fairness an ω-run σ satisfies the strong fairness requirement if it contains infinitely many transitions from every process (component automaton in the asynchronous product) that is enabled (has an executable action) infinitely often in σ weak fairness an ω-run σ satisfies the weak fairness requirement if it contains infinitely many transitions from every process (component automaton in the asynchronous product) that is enabled (has an executable action) infinitely long in σ Logic Model Checking [17 of 18] 12

13 example bit i; active proctype A() { accept: do :: i = 1 - i od active proctype B() { do :: i = 1 - i od active proctype C() { do :: (i%2) -> i = 1 - i od A: B: C: A: B: i=1-i i=1-i i=1-i i=1-i i=1-i i=1-i i=1-i i=1-i only A executes, B infinitely long enabled C infinitely often enabled neither weakly nor strongly fair i=1-i i=1-i i=1-i i=1-i i=1-i i=1-i i=1-i i=1-i i=1-i C: A and B execute, C infinitely often enabled weakly but not strongly fair A: i=1-i i=1-i i=1-i i=1-i i=1-i i=1-i B: i=1-i i=1-i i=1-i C: B: (i%2) i=1-i (i%2) i=1-i (i%2) weakly and strongly fair Logic Model Checking [17 of 18] 13

14 enforcing fairness constraints fairness can be expressed in LTL, but this is not always simple / convenient we can also provide options in the model checker to enforce default types of process scheduling fairness there is a cost associated with the implementation as part of the nested depth-first search procedure: weak fairness: linear increase of complexity (in # processes) strong fairness: quadratic increase of complexity Logic Model Checking [17 of 18] 14

15 the basic idea: unfolding Choueka s flag construction method create (k+2) copies of the global reachability graph, with k the number of active processes we number them from 0..(k+1) preserve accept-state labels only in the 1 st copy the copy numbered 0 change the transition relation to connect all k+2 copies: in copy 0, change the destination state for outgoing transitions of all accepting states so that they point to the corresponding state in copy 1 in copy k+1, change the destination state for outgoing transitions of all states so that they point to the corresponding state in copy 0 in copy i, 1 i k, change the destination state for all transitions contributed by process i to the corresponding state in copy i+1 add a nil-transition from any state in copy i where process i is blocked (has no enabled transitions) to the same state in copy i+1 an accepting ω-run in the unfolded graph now necessarily contains transitions from all active processes and therefore satisfies the weak fairness requirement Logic Model Checking [17 of 18] 15

16 (k+2)-times unfolded graph copy k+1 pid!= 1 pid!= 2 1 pid k pid==1 pid==2... pid==k 1 pid k all runs of the original system are preserved, but unfolded. no accept cycles can exist within copy 0 all accept cycles must traverse all copies to return to copy 0 and are therefore necessarily weakly fair Logic Model Checking [17 of 18] 16

17 small example bit i; k=2 active proctype A() { accept: do :: d_step { (i%2) -> i = 1 i od active proctype B() { do :: d_step {!(i%2) -> i = 1 i od pid=2 pid=1 original pid=2 pid=2 (k+2) times unfolded note: the smallest cycle is 2 steps longer than strictly necessary pid=1 pid=2 pid=1 pid=1 pid=2 memory increase? adding (k+2) bits to each state pid=1 Logic Model Checking [17 of 18] 17

18 fair reminders Spin s built-in notion of fairness applies only to weak fairness, not strong fairness process scheduling not to non-deterministic choices within a process other types of fairness can be expressed in LTL with properties of the type []<>p Logic Model Checking [17 of 18] 18

19 relative complexity parameters: problem size P = (M*B*S) k processes typical values: M reachable states in model typical values: B states in property automaton typical values 1..4 S size of one state in bits Memory Run-Time safety properties P P liveness properties P P*2 liveness+weak fairness P P*2*(k+2) use abstraction and p.o. reduction to keep the model size M small use abstraction and compression to keep state size S small use simple properties, exploit separability, to keep B small use safety properties when possible liveness only when needed fairness constraints only when unavoidable Logic Model Checking [17 of 18] 19

20 sources of complexity data and control usually the size of the proctype automata is relatively small but data objects are easily misused... active [2] proctype bad() { int x; do :: x++ od spin A spec tries to warn about these types of redundancies this model defines 2 automata, with 1 control state each there are 2 integer variables, with 2 32 states each... the total number of reachable states is: 2 64 note that variable x is also write-only and in effect redundant a quick scan of a model can usually reveal these unnecessary sources of complexity in verification models (e.g., step counters) Logic Model Checking [17 of 18] 20

21 complexity of communication q message channels sslots per channel m different types of messages each channel can hold between 0 and s messages each message can be one of m different messages total number of possible states of the q message channels: R Q s q = Σ m i i=0 Logic Model Checking [17 of 18] 21

22 exponentials q: nr of channels s: nr of slots per channel m: nr of messages R Q q s = q synopsis: asynchronous message channels can introduce significant complexity flip-side: reducing the number of channels, the size of channels, the number of messages, can reduce complexity quickly Logic Model Checking [17 of 18] 22

23 divide and conquer... don t connect what is independent separate independent data streams p1 p2 p1 p2 p3 p3 R Q s q = Σ m i i=0 q=1 s=6 R Q = 5,461 states m=4 q=2 s=3 R Q = 225 states m=2 Logic Model Checking [17 of 18] 23

24 search optimization the complexity is determined by M*B*S: reducing any of these 3 numbers reduces verification complexity M: numbers of reachable states in the global state space the size of the asynchronous product automaton B: the number of states in the property automaton M almost always dominates (typically 10 6 states and up), the size of B is almost always very small (1..6 states) M can increase exponentially with the number of asynchronous processes and message channels in the model in many cases this can be avoided by revising the model slightly reducing the nr of processes and/or data objects, splitting data streams B can increase exponentially with the number of sub-formulae (or roughly: the number of operators) in an LTL formula in practice this is insignificant compared to the other factors that contribute to complexity see Appendix B re comparisons between CTL/LTL Logic Model Checking [17 of 18] 24

25 to reduce M*B*S non-algorithmic techniques to reduce complexity B: reducing the size of the property automaton use small separable properties, instead of one large combined one M: reducing the size of the global state space reducing the number of processes, message channels, data objects reducing the length of channels (number of slots) use a unique channel for each sender-receiver combination avoid data types with larger than necessary range using abstraction, separation of concerns, generalization, etc. S: reducing the size of individual states (the state-vector) using abstraction, lossless or lossy compression, or alternate state representation methods Logic Model Checking [17 of 18] 25

26 algorithmic techniques to reduce complexity to reduce M: partial order reduction (default in Spin) avoids computing equivalent paths and states to reduce S: lossless compression masking unused parts in state-vector (default in Spin) collapse compression (-DCOLLAPSE), increases time, reduces memory lossy compression hash-compact (-DHC), no increase in time, reduction in memory use, modest risk of incompleteness bitstate hashing (-DBITSTATE), reduction in time, large reduction in memory use, risk of incompleteness (statistical estimates of coverage) indirect methods using a recognizer (a minimized automaton) instead of a hashed lookup table to store states (-DMA), major increase in time, major reduction in memory Logic Model Checking [17 of 18] 26

Automata-Theoretic LTL Model Checking. Emptiness of Büchi Automata

Automata-Theoretic LTL Model Checking. Emptiness of Büchi Automata Automata-Theoretic LTL Model Checking Graph Algorithms for Software Model Checking (based on Arie Gurfinkel s csc2108 project) Automata-Theoretic LTL Model Checking p.1 Emptiness of Büchi Automata An automation

More information

Lecture 10: Nested Depth First Search, Counter- Example Generation Revisited, Bit-State Hashing, On-The-Fly Model Checking

Lecture 10: Nested Depth First Search, Counter- Example Generation Revisited, Bit-State Hashing, On-The-Fly Model Checking CS 267: Automated Verification Lecture 10: Nested Depth First Search, Counter- Example Generation Revisited, Bit-State Hashing, On-The-Fly Model Checking Instructor: Tevfik Bultan Buchi Automata Language

More information

On Nested Depth First Search

On Nested Depth First Search DIMACS Series in Discrete Mathematics and Theoretical Computer Science Volume 32, 1997 On Nested Depth First Search Gerard J. Holzmann, Doron Peled, and Mihalis Yannakakis The SPIN. ABSTRACT. We show in

More information

The SPIN Model Checker

The SPIN Model Checker The SPIN Model Checker Metodi di Verifica del Software Andrea Corradini Lezione 1 2013 Slides liberamente adattate da Logic Model Checking, per gentile concessione di Gerard J. Holzmann http://spinroot.com/spin/doc/course/

More information

INF5140: Specification and Verification of Parallel Systems

INF5140: Specification and Verification of Parallel Systems INF5140: Specification and Verification of Parallel Systems Lecture 09 Defining Correctness Claims Gerar Schneider Department of Informatics University of Oslo INF5140, Spring 2007 Gerar Schneider (Ifi,

More information

Formal Methods for Software Development

Formal Methods for Software Development Formal Methods for Software Development Model Checking with Temporal Logic Wolfgang Ahrendt 21st September 2018 FMSD: Model Checking with Temporal Logic /GU 180921 1 / 37 Model Checking Check whether a

More information

Network Protocol Design and Evaluation

Network Protocol Design and Evaluation Network Protocol Design and Evaluation 05 - Validation, Part III Stefan Rührup Summer 2009 Overview In the first parts of this chapter: Validation models in Promela Defining and checking correctness claims

More information

Model-Checking Concurrent Systems. The Model Checker Spin. The Model Checker Spin. Wolfgang Schreiner

Model-Checking Concurrent Systems. The Model Checker Spin. The Model Checker Spin. Wolfgang Schreiner Model-Checking Concurrent Systems Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at 1.

More information

Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab)

Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab) Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab) Richard M. Murray Nok Wongpiromsarn Ufuk Topcu Calornia Institute of Technology AFRL, 25 April 2012 Outline Spin model checker: modeling

More information

The Design of a Distributed Model Checking Algorithm for Spin

The Design of a Distributed Model Checking Algorithm for Spin The Design of a Distributed Model Checking Algorithm for Spin Gerard J. Holzmann http://eis.jpl.nasa.gov/lars http://spinroot.com/gerard/ Presented at FMCAD 2006, San Jose, California November 14, 2006

More information

Logic Model Checking

Logic Model Checking Logic Model Checking Lecture Notes 14:18 Caltech 118 January-March 2006 Course Text: The Spin Model Checker: Primer and Reference Manual Addison-Wesley 2003, ISBN 0-321-22862-6, 608 pgs. Logic Model Checking

More information

Model-Checking Concurrent Systems

Model-Checking Concurrent Systems Model-Checking Concurrent Systems Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at Wolfgang

More information

CS2 Algorithms and Data Structures Note 10. Depth-First Search and Topological Sorting

CS2 Algorithms and Data Structures Note 10. Depth-First Search and Topological Sorting CS2 Algorithms and Data Structures Note 10 Depth-First Search and Topological Sorting In this lecture, we will analyse the running time of DFS and discuss a few applications. 10.1 A recursive implementation

More information

4/6/2011. Model Checking. Encoding test specifications. Model Checking. Encoding test specifications. Model Checking CS 4271

4/6/2011. Model Checking. Encoding test specifications. Model Checking. Encoding test specifications. Model Checking CS 4271 Mel Checking LTL Property System Mel Mel Checking CS 4271 Mel Checking OR Abhik Roychoudhury http://www.comp.nus.edu.sg/~abhik Yes No, with Counter-example trace 2 Recap: Mel Checking for mel-based testing

More information

Distributed Systems Programming (F21DS1) SPIN: Formal Analysis II

Distributed Systems Programming (F21DS1) SPIN: Formal Analysis II Distributed Systems Programming (F21DS1) SPIN: Formal Analysis II Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Introduce

More information

Research Collection. Formal background and algorithms. Other Conference Item. ETH Library. Author(s): Biere, Armin. Publication Date: 2001

Research Collection. Formal background and algorithms. Other Conference Item. ETH Library. Author(s): Biere, Armin. Publication Date: 2001 Research Collection Other Conference Item Formal background and algorithms Author(s): Biere, Armin Publication Date: 2001 Permanent Link: https://doi.org/10.3929/ethz-a-004239730 Rights / License: In Copyright

More information

A Stack-Slicing Algorithm for Multi-Core Model Checking

A Stack-Slicing Algorithm for Multi-Core Model Checking PDMC 2007 Preliminary Version A Stack-Slicing Algorithm for Multi-Core Model Checking Gerard J. Holzmann 1,2 NASA/JPL Laboratory for Reliable Software 4800 Oak Grove Drive, Pasadena, CA 91109, USA Abstract

More information

Distributed Systems Programming (F21DS1) SPIN: Formal Analysis I

Distributed Systems Programming (F21DS1) SPIN: Formal Analysis I Distributed Systems Programming (F21DS1) SPIN: Formal Analysis I Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Introduce

More information

Automated Reasoning. Model Checking with SPIN (II)

Automated Reasoning. Model Checking with SPIN (II) Automated Reasoning Model Checking with SPIN (II) Alan Bundy page 1 Verifying Global Properties Assertions can be used to verify a property locally For example, place assert(memreturned) at the end of

More information

Formal Specification and Verification

Formal Specification and Verification Formal Specification and Verification Model Checking with Temporal Logic Bernhard Beckert Based on a lecture by Wolfgang Ahrendt and Reiner Hähnle at Chalmers University, Göteborg Formal Specification

More information

HSF-SPIN User Manual

HSF-SPIN User Manual HSF-SPIN User Manual Institut für Informatik Albert-Ludwigs-Universität Georges-Köhler-Allee D-79110 Freiburg email: {edelkamp,lafuente}@informatik.uni-freiburg.de March 22, 2006 Contents 1 Introduction

More information

MP 6 Modeling in Promela and SPIN

MP 6 Modeling in Promela and SPIN MP 6 Modeling in Promela and SPIN CS 477 Spring 2018 Revision 1.0 Assigned April 23, 2018 Due May 2, 2018, 9:00 PM Extension 48 hours (penalty 20% of total points possible) 1 Change Log 1.0 Initial Release.

More information

The Spin Model Checker : Part I/II

The 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 information

The SPIN Model Checker

The SPIN Model Checker The SPIN Model Checker Metodi di Verifica del Software Andrea Corradini GianLuigi Ferrari Lezione 3 2011 Slides per gentile concessione di Gerard J. Holzmann 2 the do-statement do :: guard 1 -> stmnt 1.1

More information

Patrick Trentin Formal Methods Lab Class, March 03, 2017

Patrick Trentin  Formal Methods Lab Class, March 03, 2017 Spin: Introduction Patrick Trentin patrick.trentin@unitn.it http://disi.unitn.it/trentin Formal Methods Lab Class, March 03, 2017 These slides are derived from those by Stefano Tonetta, Alberto Griggio,

More information

Model Checking with Automata An Overview

Model Checking with Automata An Overview Model Checking with Automata An Overview Vanessa D Carson Control and Dynamical Systems, Caltech Doyle Group Presentation, 05/02/2008 VC 1 Contents Motivation Overview Software Verification Techniques

More information

Parallel Model Checking of ω-automata

Parallel Model Checking of ω-automata Parallel Model Checking of ω-automata Vincent Bloemen Formal Methods and Tools, University of Twente v.bloemen@utwente.nl Abstract. Specifications for non-terminating reactive systems are described by

More information

Monitoring Interfaces for Faults

Monitoring Interfaces for Faults Monitoring Interfaces for Faults Aleksandr Zaks RV 05 - Fifth Workshop on Runtime Verification Joint work with: Amir Pnueli, Lenore Zuck Motivation Motivation Consider two components interacting with each

More information

Algorithms and Data Structures

Algorithms and Data Structures Algorithms and Data Structures Strongly Connected Components Ulf Leser Content of this Lecture Graph Traversals Strongly Connected Components Ulf Leser: Algorithms and Data Structures, Summer Semester

More information

LTL Reasoning: How It Works

LTL Reasoning: How It Works Distributed Systems rogramming F21DS1 LTL Reasoning: How It Works Andrew Ireland School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Distributed Systems rogramming F21DS1 2 Overview

More information

Proving Dekker with SPIN and PROMELA

Proving Dekker with SPIN and PROMELA 15-410...fairness disabled... Proving Dekker with SPIN and PROMELA Joshua Wise With help from Greg Hartman L36_SPIN 1 Synchronization Project 4 due Wednesday Everyone having fun? Kernel interviews If you

More information

[module 2.2] MODELING CONCURRENT PROGRAM EXECUTION

[module 2.2] MODELING CONCURRENT PROGRAM EXECUTION v1.0 20130407 Programmazione Avanzata e Paradigmi Ingegneria e Scienze Informatiche - UNIBO a.a 2013/2014 Lecturer: Alessandro Ricci [module 2.2] MODELING CONCURRENT PROGRAM EXECUTION 1 SUMMARY Making

More information

TRIAL-EXAM Software Engineering using Formal Methods TDA293 (TDA292) / DIT270. Only dictionaries may be used. Other aids are not allowed!

TRIAL-EXAM Software Engineering using Formal Methods TDA293 (TDA292) / DIT270. Only dictionaries may be used. Other aids are not allowed! TRIAL-EXAM Software Engineering using Formal Methods TDA293 (TDA292) / DIT270 Extra aid: Only dictionaries may be used. Other aids are not allowed! Please observe the following: This exam has 14 numbered

More information

Binary Decision Diagrams

Binary Decision Diagrams Logic and roof Hilary 2016 James Worrell Binary Decision Diagrams A propositional formula is determined up to logical equivalence by its truth table. If the formula has n variables then its truth table

More information

Scenario Graphs Applied to Security (Summary Paper)

Scenario Graphs Applied to Security (Summary Paper) Book Title Book Editors IOS Press, 2003 1 Scenario Graphs Applied to Security (Summary Paper) Jeannette M. Wing Computer Science Department Carnegie Mellon University Pittsburgh, PA 15213 US Abstract.

More information

Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab)

Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab) Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab) Richard M. Murray Nok Wongpiromsarn Ufuk Topcu California Institute of Technology EECI 19 Mar 2013 Outline Spin model checker: modeling

More information

THE MODEL CHECKER SPIN

THE MODEL CHECKER SPIN THE MODEL CHECKER SPIN Shin Hong, KAIST 17 th April,2007 1/33 Contents Introduction PROMELA Linear Temporal Logic Automata-theoretic software verification Example : Simple Elevator 2 SPIN is a software

More information

FORMAL METHODS IN NETWORKING COMPUTER SCIENCE 598D, SPRING 2010 PRINCETON UNIVERSITY LIGHTWEIGHT MODELING IN PROMELA/SPIN AND ALLOY

FORMAL METHODS IN NETWORKING COMPUTER SCIENCE 598D, SPRING 2010 PRINCETON UNIVERSITY LIGHTWEIGHT MODELING IN PROMELA/SPIN AND ALLOY FORMAL METHODS IN NETWORKING COMPUTER SCIENCE 598D, SPRING 2010 PRINCETON UNIVERSITY LIGHTWEIGHT MODELING IN PROMELA/SPIN AND ALLOY Pamela Zave AT&T Laboratories Research Florham Park, New Jersey, USA

More information

Promela and SPIN. Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH. Promela and SPIN

Promela and SPIN. Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH. Promela and SPIN Promela and SPIN Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH Promela and SPIN Promela (Protocol Meta Language): Language for modelling discrete, event-driven

More information

Implementation of Lexical Analysis

Implementation of Lexical Analysis Implementation of Lexical Analysis Outline Specifying lexical structure using regular expressions Finite automata Deterministic Finite Automata (DFAs) Non-deterministic Finite Automata (NFAs) Implementation

More information

Applications of Finite State Machines

Applications of Finite State Machines 15-453 Formal Languages, Automata, and Computation Applications of Finite State Machines Mihai Budiu Lecture 3 January 24, 2000 Formal languages and automata are probably the biggest success story of theoretical

More information

SPIN: Introduction and Examples

SPIN: Introduction and Examples SPIN: Introduction and Examples Alessandra Giordani agiordani@disi.unitn.it http://disi.unitn.it/~agiordani Formal Methods Lab Class, September 28, 2014 *These slides are derived from those by Stefano

More information

The Spin Model Checker : Part I. Moonzoo Kim KAIST

The Spin Model Checker : Part I. Moonzoo Kim KAIST The Spin Model Checker : Part I Moonzoo Kim KAIST Hierarchy of SW Coverage Criteria Complete Value Coverage CVC (SW) Model checking Complete Path Coverage CPC Concolic testing All-DU-Paths Coverage ADUP

More information

Graphs. A graph is a data structure consisting of nodes (or vertices) and edges. An edge is a connection between two nodes

Graphs. A graph is a data structure consisting of nodes (or vertices) and edges. An edge is a connection between two nodes Graphs Graphs A graph is a data structure consisting of nodes (or vertices) and edges An edge is a connection between two nodes A D B E C Nodes: A, B, C, D, E Edges: (A, B), (A, D), (D, E), (E, C) Nodes

More information

Implementation of Lexical Analysis. Lecture 4

Implementation of Lexical Analysis. Lecture 4 Implementation of Lexical Analysis Lecture 4 1 Tips on Building Large Systems KISS (Keep It Simple, Stupid!) Don t optimize prematurely Design systems that can be tested It is easier to modify a working

More information

Copyright 2008 CS655 System Modeling and Analysis. Korea Advanced Institute of Science and Technology

Copyright 2008 CS655 System Modeling and Analysis. Korea Advanced Institute of Science and Technology The Spin Model Checker : Part I Copyright 2008 CS655 System Korea Advanced Institute of Science and Technology System Spec. In Promela Req. Spec. In LTL Overview of the Spin Architecture Spin Model pan.c

More information

CS5232 Formal Specification and Design Techniques. Using PAT to verify the Needham-Schroeder Public Key Protocol

CS5232 Formal Specification and Design Techniques. Using PAT to verify the Needham-Schroeder Public Key Protocol CS5232 Formal Specification and Design Techniques Using PAT to verify the Needham-Schroeder Public Key Protocol Semester 2, AY 2008/2009 1/37 Table of Contents 1. Project Introduction 3 2. Building the

More information

Program verification. Generalities about software Verification Model Checking. September 20, 2016

Program verification. Generalities about software Verification Model Checking. September 20, 2016 Program verification Generalities about software Verification Model Checking Laure Gonnord David Monniaux September 20, 2016 1 / 43 The teaching staff Laure Gonnord, associate professor, LIP laboratory,

More information

Tool demonstration: Spin

Tool demonstration: Spin Tool demonstration: Spin 1 Spin Spin is a model checker which implements the LTL model-checking procedure described previously (and much more besides). Developed by Gerard Holzmann of Bell Labs Has won

More information

INF672 Protocol Safety and Verification. Karthik Bhargavan Xavier Rival Thomas Clausen

INF672 Protocol Safety and Verification. Karthik Bhargavan Xavier Rival Thomas Clausen INF672 Protocol Safety and Verication Karthik Bhargavan Xavier Rival Thomas Clausen 1 Course Outline Lecture 1 [Today, Sep 15] Introduction, Motivating Examples Lectures 2-4 [Sep 22,29, Oct 6] Network

More information

Java PathFinder JPF 2 Second Generation of Java Model Checker

Java PathFinder JPF 2 Second Generation of Java Model Checker Java PathFinder JPF 2 Second Generation of Java Model Checker Guenther Brand Mat. Nr. 9430535 27. 06. 2003 Abstract This essay is based on the papers Java PathFinder, Second Generation of Java Model Checker

More information

Implementation of Lexical Analysis

Implementation of Lexical Analysis Outline Implementation of Lexical nalysis Specifying lexical structure using regular expressions Finite automata Deterministic Finite utomata (DFs) Non-deterministic Finite utomata (NFs) Implementation

More information

Graph definitions. There are two kinds of graphs: directed graphs (sometimes called digraphs) and undirected graphs. An undirected graph

Graph definitions. There are two kinds of graphs: directed graphs (sometimes called digraphs) and undirected graphs. An undirected graph Graphs Graph definitions There are two kinds of graphs: directed graphs (sometimes called digraphs) and undirected graphs start Birmingham 60 Rugby fill pan with water add salt to water take egg from fridge

More information

Implementation of Lexical Analysis

Implementation of Lexical Analysis Implementation of Lexical Analysis Outline Specifying lexical structure using regular expressions Finite automata Deterministic Finite Automata (DFAs) Non-deterministic Finite Automata (NFAs) Implementation

More information

Detecting negative cycles with Tarjan s breadth-first scanning algorithm

Detecting negative cycles with Tarjan s breadth-first scanning algorithm Detecting negative cycles with Tarjan s breadth-first scanning algorithm Tibor Ásványi asvanyi@inf.elte.hu ELTE Eötvös Loránd University Faculty of Informatics Budapest, Hungary Abstract The Bellman-Ford

More information

Distributed Memory LTL Model Checking

Distributed Memory LTL Model Checking ! " #$ %& D E ')(+*,.-0/132?@ACB 46587:9= F GH Faculty of Informatics Masaryk University Brno Distributed Memory LTL Model Checking Ph.D. Thesis Jiří Barnat September 2004 Abstract Distribution and

More information

Formal Verification by Model Checking

Formal Verification by Model Checking Formal Verication by Model Checking Jonathan Aldrich Carnegie Mellon University Based on slides developed by Natasha Sharygina 17-654/17-754: Analysis of Software Artacts Spring 2006 1 CTL Model Checking

More information

Formal Methods in Software Engineering. Lecture 07

Formal Methods in Software Engineering. Lecture 07 Formal Methods in Software Engineering Lecture 07 What is Temporal Logic? Objective: We describe temporal aspects of formal methods to model and specify concurrent systems and verify their correctness

More information

Algorithms and Data Structures

Algorithms and Data Structures Algorithms and Data Structures Graphs 3: Finding Connected Components Marius Kloft Content of this Lecture Finding Connected Components in Undirected Graphs Finding Strongly Connected Components in Directed

More information

Model Checking Revision: Model Checking for Infinite Systems Revision: Traffic Light Controller (TLC) Revision: 1.12

Model 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 information

Compiler Construction

Compiler Construction Compiler Construction Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ss-16/cc/ Recap: Static Data Structures Outline of Lecture 18 Recap:

More information

To Store or Not To Store

To Store or Not To Store To Store or Not To Store Radek Pelánek Masaryk University, Brno Gerd Behrmann, Kim G. Larsen Aalborg University To Store or Not To Store p.1/24 Reachability Problem Model: networks of timed automata with

More information

Model Checking with Abstract State Matching

Model 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 information

Contents of Lecture 2

Contents of Lecture 2 Contents of Lecture Dominance relation An inefficient and simple algorithm to compute dominance Immediate dominators Dominator tree Jonas Skeppstedt (js@cs.lth.se) Lecture / Definition of Dominance Consider

More information

LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS. Gary D. Hachtel University of Colorado. Fabio Somenzi University of Colorado.

LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS. Gary D. Hachtel University of Colorado. Fabio Somenzi University of Colorado. LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS by Gary D. Hachtel University of Colorado Fabio Somenzi University of Colorado Springer Contents I Introduction 1 1 Introduction 5 1.1 VLSI: Opportunity and

More information

Formal Verification. Lecture 7: Introduction to Binary Decision Diagrams (BDDs)

Formal Verification. Lecture 7: Introduction to Binary Decision Diagrams (BDDs) Formal Verification Lecture 7: Introduction to Binary Decision Diagrams (BDDs) Jacques Fleuriot jdf@inf.ac.uk Diagrams from Huth & Ryan, 2nd Ed. Recap Previously: CTL and LTL Model Checking algorithms

More information

Context-Free Grammars and Parsers. Peter S. Housel January 2001

Context-Free Grammars and Parsers. Peter S. Housel January 2001 Context-Free Grammars and Parsers Peter S. Housel January 2001 Copyright This is the Monday grammar library, a set of facilities for representing context-free grammars and dynamically creating parser automata

More information

Lecture 6: Sequential Sorting

Lecture 6: Sequential Sorting 15-150 Lecture 6: Sequential Sorting Lecture by Dan Licata February 2, 2012 Today s lecture is about sorting. Along the way, we ll learn about divide and conquer algorithms, the tree method, and complete

More information

Sardar Vallabhbhai Patel Institute of Technology (SVIT), Vasad M.C.A. Department COSMOS LECTURE SERIES ( ) (ODD) Code Optimization

Sardar Vallabhbhai Patel Institute of Technology (SVIT), Vasad M.C.A. Department COSMOS LECTURE SERIES ( ) (ODD) Code Optimization Sardar Vallabhbhai Patel Institute of Technology (SVIT), Vasad M.C.A. Department COSMOS LECTURE SERIES (2018-19) (ODD) Code Optimization Prof. Jonita Roman Date: 30/06/2018 Time: 9:45 to 10:45 Venue: MCA

More information

Network Protocol Design and Evaluation

Network Protocol Design and Evaluation Network Protocol Design and Evaluation 05 - Validation, Part I Stefan Rührup Summer 2009 Overview In the last lectures: Specification of protocols and data/message formats In this chapter: Building a validation

More information

Patrick Trentin Formal Methods Lab Class, Feb 26, 2016

Patrick Trentin  Formal Methods Lab Class, Feb 26, 2016 Spin: Introduction Patrick Trentin patrick.trentin@unitn.it http://disi.unitn.it/~trentin Formal Methods Lab Class, Feb 26, 2016 These slides are derived from those by Stefano Tonetta, Alberto Griggio,

More information

Distributed Systems Programming (F21DS1) Formal Verification

Distributed Systems Programming (F21DS1) Formal Verification Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on

More information

10. EXTENDING TRACTABILITY

10. EXTENDING TRACTABILITY 0. EXTENDING TRACTABILITY finding small vertex covers solving NP-hard problems on trees circular arc coverings vertex cover in bipartite graphs Lecture slides by Kevin Wayne Copyright 005 Pearson-Addison

More information

Coverability Graph and Fairness

Coverability Graph and Fairness Coverability Graph and Fairness prof.dr.ir. Wil van der Aalst www.vdaalst.com Recall reachability analysis or1 x r1 rg1 g1 go1 o1 r2 rg2 g2 go2 o2 or2 Petri net standard properties Boundedness Terminating

More information

CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL

CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL 5.1 INTRODUCTION The survey presented in Chapter 1 has shown that Model based testing approach for automatic generation of test

More information

Statements or Basic Blocks (Maximal sequence of code with branching only allowed at end) Possible transfer of control

Statements or Basic Blocks (Maximal sequence of code with branching only allowed at end) Possible transfer of control Control Flow Graphs Nodes Edges Statements or asic locks (Maximal sequence of code with branching only allowed at end) Possible transfer of control Example: if P then S1 else S2 S3 S1 P S3 S2 CFG P predecessor

More information

Definition: A context-free grammar (CFG) is a 4- tuple. variables = nonterminals, terminals, rules = productions,,

Definition: A context-free grammar (CFG) is a 4- tuple. variables = nonterminals, terminals, rules = productions,, CMPSCI 601: Recall From Last Time Lecture 5 Definition: A context-free grammar (CFG) is a 4- tuple, variables = nonterminals, terminals, rules = productions,,, are all finite. 1 ( ) $ Pumping Lemma for

More information

A Tutorial on Model Checker SPIN

A Tutorial on Model Checker SPIN A Tutorial on Model Checker SPIN Instructor: Hao Zheng Department of Computer Science and Engineering University of South Florida Tampa, FL 33620 Email: haozheng@usf.edu Phone: (813)974-4757 Fax: (813)974-5456

More information

Alternation. Kleene Closure. Definition of Regular Expressions

Alternation. Kleene Closure. Definition of Regular Expressions Alternation Small finite sets are conveniently represented by listing their elements. Parentheses delimit expressions, and, the alternation operator, separates alternatives. For example, D, the set of

More information

Introduction to Lexical Analysis

Introduction to Lexical Analysis Introduction to Lexical Analysis Outline Informal sketch of lexical analysis Identifies tokens in input string Issues in lexical analysis Lookahead Ambiguities Specifying lexical analyzers (lexers) Regular

More information

Joint Entity Resolution

Joint Entity Resolution Joint Entity Resolution Steven Euijong Whang, Hector Garcia-Molina Computer Science Department, Stanford University 353 Serra Mall, Stanford, CA 94305, USA {swhang, hector}@cs.stanford.edu No Institute

More information

formal methods & tools.

formal methods & tools. UNIVERSITY OF TWENTE. formal methods & tools. SpinS: Extending LTSmin with Promela through SpinJa Alfons Laarman Joint with Freark van der Berg Sept 17, 2012 Imperial College, London, UK Spin Model Checker

More information

Verifying Temporal Properties via Dynamic Program Execution. Zhenhua Duan Xidian University, China

Verifying Temporal Properties via Dynamic Program Execution. Zhenhua Duan Xidian University, China Verifying Temporal Properties via Dynamic Program Execution Zhenhua Duan Xidian University, China Main Points Background & Motivation MSVL and Compiler PPTL Unified Program Verification Tool Demo Conclusion

More information

CS521 \ Notes for the Final Exam

CS521 \ Notes for the Final Exam CS521 \ Notes for final exam 1 Ariel Stolerman Asymptotic Notations: CS521 \ Notes for the Final Exam Notation Definition Limit Big-O ( ) Small-o ( ) Big- ( ) Small- ( ) Big- ( ) Notes: ( ) ( ) ( ) ( )

More information

T Parallel and Distributed Systems (4 ECTS)

T Parallel and Distributed Systems (4 ECTS) T 79.4301 Parallel and Distriuted Systems (4 ECTS) T 79.4301 Rinnakkaiset ja hajautetut järjestelmät (4 op) Lecture 4 11th of Feruary 2008 Keijo Heljanko Keijo.Heljanko@tkk.fi T 79.4301 Parallel and Distriuted

More information

Formal Verification: Practical Exercise Model Checking with NuSMV

Formal Verification: Practical Exercise Model Checking with NuSMV Formal Verification: Practical Exercise Model Checking with NuSMV Jacques Fleuriot Daniel Raggi Semester 2, 2017 This is the first non-assessed practical exercise for the Formal Verification course. You

More information

Overview. Discrete Event Systems - Verification of Finite Automata. What can finite automata be used for? What can finite automata be used for?

Overview. Discrete Event Systems - Verification of Finite Automata. What can finite automata be used for? What can finite automata be used for? Computer Engineering and Networks Overview Discrete Event Systems - Verification of Finite Automata Lothar Thiele Introduction Binary Decision Diagrams Representation of Boolean Functions Comparing two

More information

A Case Study for CTL Model Update

A Case Study for CTL Model Update A Case Study for CTL Model Update Yulin Ding and Yan Zhang School of Computing & Information Technology University of Western Sydney Kingswood, N.S.W. 1797, Australia email: {yding,yan}@cit.uws.edu.au

More information

An Improved Algorithm for Finding the Strongly Connected Components of a Directed Graph

An Improved Algorithm for Finding the Strongly Connected Components of a Directed Graph An Improved Algorithm for Finding the Strongly Connected Components of a Directed Graph David J. Pearce Computer Science Group Victoria University, NZ david.pearce@mcs.vuw.ac.nz Keywords: Graph Algorithms,

More information

Temporal Logic and Timed Automata

Temporal Logic and Timed Automata Information Systems Analysis Temporal Logic and Timed Automata (5) UPPAAL timed automata Paweł Głuchowski, Wrocław University of Technology version 2.3 Contents of the lecture Tools for automatic verification

More information

Administrivia. Lexical Analysis. Lecture 2-4. Outline. The Structure of a Compiler. Informal sketch of lexical analysis. Issues in lexical analysis

Administrivia. Lexical Analysis. Lecture 2-4. Outline. The Structure of a Compiler. Informal sketch of lexical analysis. Issues in lexical analysis dministrivia Lexical nalysis Lecture 2-4 Notes by G. Necula, with additions by P. Hilfinger Moving to 6 Evans on Wednesday HW available Pyth manual available on line. Please log into your account and electronically

More information

Automated Refinement Checking of Asynchronous Processes. Rajeev Alur. University of Pennsylvania

Automated Refinement Checking of Asynchronous Processes. Rajeev Alur. University of Pennsylvania Automated Refinement Checking of Asynchronous Processes Rajeev Alur University of Pennsylvania www.cis.upenn.edu/~alur/ Intel Formal Verification Seminar, July 2001 Problem Refinement Checking Given two

More information

Control-Flow Analysis

Control-Flow Analysis Control-Flow Analysis Dragon book [Ch. 8, Section 8.4; Ch. 9, Section 9.6] Compilers: Principles, Techniques, and Tools, 2 nd ed. by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jerey D. Ullman on reserve

More information

Final Exam in Algorithms and Data Structures 1 (1DL210)

Final Exam in Algorithms and Data Structures 1 (1DL210) Final Exam in Algorithms and Data Structures 1 (1DL210) Department of Information Technology Uppsala University February 0th, 2012 Lecturers: Parosh Aziz Abdulla, Jonathan Cederberg and Jari Stenman Location:

More information

Formal Methods for Software Development

Formal Methods for Software Development Formal Methods for Software Development Verification with Spin Wolfgang Ahrendt 07 September 2018 FMSD: Spin /GU 180907 1 / 34 Spin: Previous Lecture vs. This Lecture Previous lecture Spin appeared as

More information

SMV Project. Arun Autuchirayll, Manjulata Chivukula, Bhargava Konidena. April 28, 2009

SMV Project. Arun Autuchirayll, Manjulata Chivukula, Bhargava Konidena. April 28, 2009 SMV Project Arun Autuchirayll, Manjulata Chivukula, Bhargava Konidena April 28, 2009 Indiana University - Department of Computer Science P515 Specification and Verification For: Dr. Steven Johnson Table

More information

CIS 890: Safety Critical Systems

CIS 890: Safety Critical Systems CIS 890: Safety Critical Systems Lecture: SPARK -- Analysis Tools Copyright 2007, John Hatcliff. The syllabus and all lectures for this course are copyrighted materials and may not be used in other course

More information

15-451/651: Design & Analysis of Algorithms October 5, 2017 Lecture #11: Depth First Search and Strong Components last changed: October 17, 2017

15-451/651: Design & Analysis of Algorithms October 5, 2017 Lecture #11: Depth First Search and Strong Components last changed: October 17, 2017 15-451/651: Design & Analysis of Algorithms October 5, 2017 Lecture #11: Depth First Search and Strong Components last changed: October 17, 2017 1 Introduction Depth first search is a very useful technique

More information

Recitation 4: Elimination algorithm, reconstituted graph, triangulation

Recitation 4: Elimination algorithm, reconstituted graph, triangulation Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.438 Algorithms For Inference Fall 2014 Recitation 4: Elimination algorithm, reconstituted graph, triangulation

More information

Sankalchand Patel College of Engineering - Visnagar Department of Computer Engineering and Information Technology. Assignment

Sankalchand Patel College of Engineering - Visnagar Department of Computer Engineering and Information Technology. Assignment Class: V - CE Sankalchand Patel College of Engineering - Visnagar Department of Computer Engineering and Information Technology Sub: Design and Analysis of Algorithms Analysis of Algorithm: Assignment

More information