Verification Options. To Store Or Not To Store? Inside the UPPAAL tool. Inactive (passive) Clock Reduction. Global Reduction

Size: px
Start display at page:

Download "Verification Options. To Store Or Not To Store? Inside the UPPAAL tool. Inactive (passive) Clock Reduction. Global Reduction"

Transcription

1 Inside the UPPAAL tool Data Structures DBM s (Difference Bounds Matrices) Canonical and Minimal Constraints Algorithms Reachability analysis Liveness checking Termination Verification Otions Verification Otions Diagnostic Trace Breadth-First Deth-First Local Reduction Active-Clock Reduction Global Reduction Re-Use State-Sace Over-Aroximation Under-Aroximation 1 2 Inactive (assive) Clock Reduction x is only active in location S1 Global Reduction (When to store symbolic state) x:=0 S Definition x is inactive at S if on all ath from S, x is always reset before being tested However, list useful for efficiency x:=0 x<5 x>3 3 No Cycles: list not needed for termination 4 Global Reduction [RTSS97] (When to store symbolic state) To Store Or Not To Store? [RTSS97,CAV03] Cycles: Only symbolic states involving loo-entry oints need to be saved on list 117 states total 81 states entryoint 9 states Time OH less than 10% (need to re-exlore some states) 5 6

2 Reuse of State Sace Reuse of State Sace ro2 A[] ro1 ro2 A[] ro1 ro1 A[] ro2 A[] ro3 A[] ro4 A[] ro5 A[] ron Search in existing list before continuing search Which order to search? Hashtable ro1 A[] ro2 A[] ro3 A[] ro4 A[] ro5 A[] ron Search in existing list before continuing search Which order to search? 7 8 Reuse of State Sace Reuse of State Sace ro2 A[] ro1 ro2 A[] ro1 Hashtable ro1 A[] ro2 A[] ro3 A[] ro4 A[] ro5 A[] ron Swaed to secondary memory Search in existing list before continuing search Which order to search? 9 ro1 Hashtable generation order A[] ro2 A[] ro3 A[] ro4 A[] ro5 REVERSE CREATION ORDER A[] ron Swaed to secondary memory Search in existing list before continuing search Which order to search? 10 Under-aroximation Bitstate Hashing (Holzman,SPIN) Under-aroximation Bitstate Hashing m,u Final m,u Final 1 0 = Bitarray n,z n,z 1 0 UPPAAL 8 Mbits Hashfunction F Init n,z Init n,z

3 Bit-state Hashing Under Aroximation (good for finding Bugs quickly, debugging) INITIAL := := Ø; Ø; := :={(n0,z0)} REPEAT --ick ick (n,z) (n,z) in in --ififfor for some some Z Z Z (n,z ) (n,z ) in in then then STOP STOP -else -else/exlore/ add add { (m,u) (m,u)::(n,z) (n,z) => => (m,u) (m,u)} to to ; Add Add (n,z) (n,z) to to UNTIL = Ø or or Final Final is is in in (F(n,Z)) = 1 (F(n,Z)) := 1 Possitive answer is safe (you can trust) You can trust your tool if it tells: a state is reachable (it means Reachable!) Negative answer is Inconclusive You should not trust your tool if it tells: a state is non-reachable Some of the branch may be terminated by conflict (the same hashing value of two states) Over-aroximation Convex Hull y Over-Aroximation (good for safety roerty-checking) Possitive answer is Inconclusive a state is reachable means Nothing (you should not trust your tool when it says so) Some of the transitions may be enabled by Enlarged zones Negative answer is safe a state is not reachable means Non-reachable (you can trust your tool when it says so) x Convex Hull OUTLINE A Brief Introduction Motivation what are the roblems to solve CTL, LTL and basic model-checking algorithms Timed Systems Timed automata and verification roblems UPPAAL tutorial (1): data stuctures & algorithms UPPAAL tutorial (2): inut languages TIMES: From models to code guaranteeing timing constraints Further toics/recent Work Systems with buffers/queues [CAV 2006] Lecture 7 UPPAAL tutorial (2) The UPPAAL inut languages: timed automata & TCTL in UPPAAL 17 18

4 Timed Automata + Invariants [Henzinger,Sifakis et al, 1992] Networks of Timed Automata n x<=5 Clocks: x, y m1 Location Invariants x<=5 & y>3 a x := 0 Transitions: ( n, x=24, y=31415 ) e(32) e(11) ( n, x=24, y=31415 ) ( n, x=35, y=42415 ) x>=2 i==3 x := 0 i:=i+4 y<=4 m2 m y<=10 g4 g1 g2 g3 Location invariants are used to force an automata to rogress (ie leave the location) before the invariant becomes false Two-way synchronization on comlementary actions Closed Systems! UPPAAL modeling language Networks of Timed Automata with Invariants + urgent action channels, + broadcast channels, + urgent and committed locations, + data-variables (with bounded domains), + arrays of data-variables, + constants, + guards and assignments over data-variables and arrays, + temlates with local clocks, data-variables, and constants + C subset Declarations in UPPAAL The syntax used for declarations in UPPAAL is similar to the syntax used in the C rogramming language Clocks: Syntax: clock x1,, xn ; Examle: clock x, y; Declares two clocks: x and y Declarations in UPPAAL (cont) Data variables Syntax: Declarations in UPPAAL (cont) Actions (or channels): Syntax: int n1, ; int[l,u] n1, ; int n1[m], ; Examle; int a, b; int[0,1] a, b[5]; Integer with default domain Integer with domain from l to u Integer array w elements n1[0] to n1[m-1] chan a, ; urgent chan b, ; Examle: chan a, b[2]; urgent chan c; Ordinary channels Urgent actions (described later) 23 24

5 Declarations UPPAAL (const) Declarations in UPPAAL Constants Syntax: const int c1 = n1; Examle: const int[0,1] YES = 1; const bool NO = false; Constants Bounded integers Channels Clocks Arrays Temlates Processes Systems x : = n Timed Automata in UPPAAL Clock Assignments Location Invariants n Variable Assignments x<=5 i : = Exr x>=5, y>3 Exr :: = i i[ Exr] n Exr Exr + Exr x := 0 Exr Exr m Exr * Exr y<=10 g4 Exr / Exr g1 g2 ( g? Exr : Exr) g3 d inv :: = x < n x <= n inv, inv clock natural number and g :: = gc gd g, g gc :: = x n x y + n gd :: = Exr o Exr { <, <=, ==, >=, > } o { <, <=, ==, >=, >,! = } Clock guards Data guards 27 x : = n Timed Automata in UPPAAL Clock Assignments Location Invariants n Variable Assignments x<=5 i : = Exr x>=5, y>3 Exr :: = i i[ Exr] n Exr Exr + Exr x := 0 Exr Exr m Exr * Exr y<=10 g4 Exr / Exr g1 g2 ( g? Exr : Exr) g3 d inv :: = x < n x <= n inv, inv clock natural number and Actions: :: = g c a gdname g, g of action or c :: = x n x y + n Clock guards one or zero er edge d :: = Exr o Exr Data guards { <, <=, ==, >=, > } { <, <=, ==, >=, >,! = } 28 g g g o Temlates in UPPAAL Urgent Channels: Examle 1 Temlates may be arameterised: int v; const min; const max int[0,n] e; const id Temlates are instantiated to form rocesses: = A(i,1,5); Q:= A(j,0,4); Train1:=Train(el, 1); Train2:=Train(el, 2); Q: s1 s2 Suose the two edges in automata P and Q should be taken as soon as ossible Ie as soon as both automata are ready (simultaneously in locations and s1) How to model with invariants if either one may reach or s1 first? 29 30

6 Urgent Channels: Examle 1 Urgent Channels Q: s1 s2 Suose the two edges in automata P and Q should be taken as soon as ossible Ie as soon as both automata are ready (simultaneously in locations and s1) How to model with invariants if either one may reach or s1 first? Solution: declare action a as urgent urgent chan hurry; Informal Semantics: There will be no delay if transition with urgent action can be taken Restrictions: No clock guard allowed on transitions with urgent actions Invariants and data-variable guards are allowed Urgent Channel: Examle 2 Urgent Channel: Examle 2 i==5 Assume i is a data variable We want P to take the transition from to as soon as i==5 i==5 go? Assume i is a data variable We want P to take the transition from to as soon as i==5 Solution: P can be forced to take transition if we add another automaton: s1 go! where go is an urgent channel, and we add go? to transition in automaton P Broadcast Synchronisation Urgent Location broadcast chan a, b, c[2]; Click Urgent in State Editor If a is a broadcast channel: = Emmision of broadcast = Recetion of broadcast A set of edges in different rocesses can synchronize if one is emitting and the others are receiving on the same bc channel A rocess can always emit Receivers must synchronize if they can No blocking Informal Semantics: No delay in urgent location Note: the use of urgent locations reduces the number of clocks in a model, and thus the comlexity of the analysis 35 36

7 Urgent Location: Examle Urgent Location: Examle Assume that we model a simle media M: a M that receives ackages on channel a and immediately sends them on channel b P models the media using clock x b x:=0 x 0 x==0 b! l3 Assume that we model a simle media M: a M that receives ackages on channel a and immediately sends them on channel b P models the media using clock x Q models the media using urgent location P and Q have the same behavior b x:=0 x 0 x==0 b! l3 Q: urgent b! l Committed Location Committed Location: Examle 1 Click Committed i State Editor Informal Semantics: No delay in committed location Next transition must involve automata in committed location Note: the use of committed locations reduces the number of interleaving in state sace exloration (and also the number of clocks in a model), and thus allows for more sace and time efficient analysis i==0 b! i:=1 P : i==0 n urgent b! i:=1 Assume: we want to model a rocess (P) simultaneously sending message a and b to two receiving rocesses (when i==0) P sends a two times at the same time instant, but in location n other automata, eg Q may interfear Q: k1 i==0 k Committed Location: Examle 1 i==0 b! i:=1 Assume: we want to model a rocess P : (P) simultaneously sending message (a) to two receiving rocesses (when i==0 i==0) P sends a two times at the same n time instant, but in location n other committed automata, eg Q may interfear: b! i:=1 Q: i==0 b! k1 k2 Solution: mark location n committed in automata P (instead of urgent ) Committed Locations (examle: atomic sequence in a network) x:=x+1; y:=y+1 41 If the sequence becomes too long, you can slit it 42

8 Committed Locations (examle: atomic sequence in a network) Committed Locations (examle: atomic sequence in a network) Semantics: the time sent on C-location should be zero! Semantics: the time sent on C-location should be zero! C x:=x+1 y:=y+1 C x:=x+1 y:=y Committed Locations (examle: atomic sequence in a network) Committed Locations (examle: atomic sequence in a network) Semantics: the time sent on C-location should be zero! x:=x+1 x:=x+1 C C y:=y+1 y:=y+1 Now, only the committed (red) transition can be taken! Committed Locations Committed Location: Examle 2 A trick of modeling (eg to model multi-way synchronization using handshaking) More imortantly, it is a simle and efficient mechanism for state-sace reduction! In fact, it is a simle form of artial order reduction It is used to avoid intermediate states, interleavings: Committed states are not stored in the assed list Interleavings of any state with a committed location will not be exlored Assume: we want to ass the value of integer k from automaton P to variable j in Q The value of k can is assed using a global integer variable t Location n is committed to ensure that no other automat can assign t before the assignment j:=t Q: t:=k n committed j:=t 47 48

9 More Exressions New oerators (not clocks): Logical: && (logical and), (logical or),! (logical negation), Bitwise: ^ (xor), & (bitwise and), (bitwise or), Bit shift: << (left), >> (right) Numerical: % (modulo), <? (min), >? (max) Comound Assignments: +=, -=, *=, /=, ^=, <<=, >>= Prefix or Postfix: ++ (increment), -- (decrement) More on Tyes Multi dimensional arrays eg int b[2][3]; Array initialiser: eg int b[2][3] := { {1,2,3}, {4,5,6} }; Arrays of channels, clocks, constants eg chan a[3]; clockc[3]; const k[3] { 1, 2, 3 }; Broadcast channels eg broadcast chan a; Extensions Advanced Features Select statement Models non-deterministic choise x : int[0,42] Tyes Record tyes Tye declarations Meta variables: not stored with state meta int x; Forall / Exists Exressions forall (x:int[0,42]) exr true if exr is true for all values in [0,42] of x exists (x:int[0,4]) exr true if exr is true for some values in [0,42] of x Examle: forall (x:int[0,4])array[x]; Priorities on channels chan a,b,c,d[2],e[2]; chan riority a,d[0] < default < b,e Priorities on rocesses system A < B,C < D; Functions C-like functions with return values TCTL Quantifiers in UPPAAL E A G F - exists a ath ( E in UPPAAL) - for all aths ( A in UPPAAL) - all states in a ath ( [] in UPPAAL) - some state in a ath ( <> in UPPAAL) UPPAAL secification language You may write the following queries in UPPAAL: A[], A<>, E<>, E[] and --> q 53 AG AF EF EG and q are local roerties 54

10 Local Proerties A[], A<>, E<>, E[], --> where is a local roerty E<> Reachable E<> it is ossible to reach a state in which is satisfied data guard automaton location clock guard ::= al gd gc and or not imly ( ) rocess/ name is true in (at least) one reachable state A[] Invariantly A[] holds invariantly A<> Inevitable A<> will inevitable become true, the automaton is guaranteed to eventually reach a state in which is true is true in all reachable states is true in some state of all aths E[ ] Potentially Always E[] is otentially always true --> q lead to q --> q if becomes true, q will inevitably become true same as A[]( imly A<> q ) q q There exists a ath in which is true in all states In all aths, if becomes true, q will inevitably become true 59 60

Modeling and Analysis of Networked Embedded Systems using UPPAAL. Ezio Bartocci

Modeling and Analysis of Networked Embedded Systems using UPPAAL. Ezio Bartocci Modeling and Analysis of Networked Embedded Systems using UPPAAL Ezio Bartocci Overview Timed Automata in UPPAAL UPPAAL modeling language Declara5ons in UPPAAL Templates in UPPAAL Urgent Channels Broadcast

More information

UPPAAL tutorial. UPPAAL modeling language. Timed Automata in UPPAAL. Networks of Timed Automata. Declarations in UPPAAL. x y + n Clock guards

UPPAAL tutorial. UPPAAL modeling language. Timed Automata in UPPAAL. Networks of Timed Automata. Declarations in UPPAAL. x y + n Clock guards UPPAAL tutorial What s iside UPPAAL The UPPAAL iut lauaes (i.e. TA ad TTL i UPPAAL) 1 x : = Timed Automata i UPPAAL lock Assimets Locatio Ivariats Variable Assimets x=5, y>3 Exr :: = i

More information

UPPAAL. Verification Engine, Options & Patterns. Alexandre David

UPPAAL. Verification Engine, Options & Patterns. Alexandre David UPPAAL Verification Engine, Options & Patterns Alexandre David 1.2.05 Outline UPPAAL Modelling Language Specification Language UPPAAL Verification Engine Symbolic exploration algorithm Zones & DBMs Verification

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

Intro to UPPAAL. Gerd Behrmann Kim Larsen. BRICS & Aalborg University. Intro to UPPAAL p.1/23

Intro to UPPAAL. Gerd Behrmann Kim Larsen. BRICS & Aalborg University. Intro to UPPAAL p.1/23 Intro to UPPAAL p.1/23 Intro to UPPAAL Gerd Behrmann Kim Larsen BRICS & Aalborg University Intro to UPPAAL p.2/23 Plan of the Lecture 1. UPPAAL Architecture 2. UPPAAL Features 3. Train Gate Example 4.

More information

An Introduction to UPPAAL. Purandar Bhaduri Dept. of CSE IIT Guwahati

An Introduction to UPPAAL. Purandar Bhaduri Dept. of CSE IIT Guwahati An Introduction to UPPAAL Purandar Bhaduri Dept. of CSE IIT Guwahati Email: pbhaduri@iitg.ernet.in OUTLINE Introduction Timed Automata UPPAAL Example: Train Gate Example: Task Scheduling Introduction UPPAAL:

More information

COMP 763. Eugene Syriani. Ph.D. Student in the Modelling, Simulation and Design Lab School of Computer Science. McGill University

COMP 763. Eugene Syriani. Ph.D. Student in the Modelling, Simulation and Design Lab School of Computer Science. McGill University Eugene Syriani Ph.D. Student in the Modelling, Simulation and Design Lab School of Computer Science McGill University 1 OVERVIEW In the context In Theory: Timed Automata The language: Definitions and Semantics

More information

The UPPAAL Model Checker. Julián Proenza Systems, Robotics and Vision Group. UIB. SPAIN

The UPPAAL Model Checker. Julián Proenza Systems, Robotics and Vision Group. UIB. SPAIN The UPPAAL Model Checker Julián Proenza Systems, Robotics and Vision Group. UIB. SPAIN The aim of this presentation Introduce the basic concepts of model checking from a practical perspective Describe

More information

Overview of Timed Automata and UPPAAL

Overview of Timed Automata and UPPAAL Overview of Timed Automata and UPPAAL Table of Contents Timed Automata Introduction Example The Query Language UPPAAL Introduction Example Editor Simulator Verifier Conclusions 2 Introduction to Timed

More information

A Tutorial on Uppaal

A Tutorial on Uppaal A Tutorial on Uppaal Updated 25th October 2005 Gerd Behrmann, Alexandre David, and Kim G. Larsen Department of Computer Science, Aalborg University, Denmark {behrmann,adavid,kgl}@cs.auc.dk. Abstract. This

More information

Further Topics in Modelling & Verification

Further Topics in Modelling & Verification Further Topics in Modelling & Verification Thursday Oct 09, 2014 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/34 Recap: Timed automata (TA) 2/34 Recap: Properties 3/34 Questions about TA

More information

want turn==me wait req2==0

want turn==me wait req2==0 Uppaal2k: Small Tutorial Λ 16 October 2002 1 Introduction This document is intended to be used by new comers to Uppaal and verification. Students or engineers with little background in formal methods should

More information

plant OUTLINE The Same Goal: Reliable Controllers Who is Who in Real Time Systems

plant OUTLINE The Same Goal: Reliable Controllers Who is Who in Real Time Systems OUTLINE Introduction Lecture 1: Motivation, examples, problems to solve Modeling and Verication of Timed Systems Lecture 2: Timed automata, and timed automata in UAAL Lecture 3: Symbolic verification:

More information

Lecture 8: Orthogonal Range Searching

Lecture 8: Orthogonal Range Searching CPS234 Comutational Geometry Setember 22nd, 2005 Lecture 8: Orthogonal Range Searching Lecturer: Pankaj K. Agarwal Scribe: Mason F. Matthews 8.1 Range Searching The general roblem of range searching is

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

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

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

Submission. Verifying Properties Using Sequential ATPG

Submission. Verifying Properties Using Sequential ATPG Verifying Proerties Using Sequential ATPG Jacob A. Abraham and Vivekananda M. Vedula Comuter Engineering Research Center The University of Texas at Austin Austin, TX 78712 jaa, vivek @cerc.utexas.edu Daniel

More information

More on Verification and Model Checking

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

Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. 2.3 Timed Automata and Real-Time Statecharts

Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. 2.3 Timed Automata and Real-Time Statecharts 2.3 Timed Automata and Real-Time Statecharts Develop a BOOK RATING APP and win awesome prizes! The creators of the best submissions will be invited to an exclusive party in February

More information

UPPAAL Tutorial. UPPAAL Family

UPPAAL Tutorial. UPPAAL Family UPPAAL Tutorial Beyond UPPAAL Alexandre David Paul Pettersson RTSS 05 Classic : real-time verification Cora: real-time scheduling Tron: online real-time testing Tiga: timed game Times: schedulability analysis

More information

Using Standard AADL for COMPASS

Using Standard AADL for COMPASS Using Standard AADL for COMPASS (noll@cs.rwth-aachen.de) AADL Standards Meeting Aachen, Germany; July 5 8, 06 Overview Introduction SLIM Language Udates COMPASS Develoment Roadma Fault Injections Parametric

More information

Editor. Analyser XML. Scheduler. generator. Code Generator Code. Scheduler. Analyser. Simulator. Controller Synthesizer.

Editor. Analyser XML. Scheduler. generator. Code Generator Code. Scheduler. Analyser. Simulator. Controller Synthesizer. TIMES - A Tool for Modelling and Implementation of Embedded Systems Tobias Amnell, Elena Fersman, Leonid Mokrushin, Paul Pettersson, and Wang Yi? Uppsala University, Sweden Abstract. Times is a new modelling,

More information

Timed Automata: Semantics, Algorithms and Tools

Timed Automata: Semantics, Algorithms and Tools Timed Automata: Semantics, Algorithms and Tools Johan Bengtsson and Wang Yi Uppsala University Email: {johanb,yi}@it.uu.se Abstract. This chapter is to provide a tutorial and pointers to results and related

More information

A Test Case Generation Algorithm for Real-Time Systems

A Test Case Generation Algorithm for Real-Time Systems A Test Case Generation Algorithm for Real-Time Systems Anders Hessel and Paul Pettersson Department of Information Technology Uppsala University, P.O. Box 337 SE-751 05 Uppsala, Sweden {hessel,paupet}@it.uu.se

More information

Lecture 7: Objects (Chapter 15) CS 1110 Introduction to Computing Using Python

Lecture 7: Objects (Chapter 15) CS 1110 Introduction to Computing Using Python htt://www.cs.cornell.edu/courses/cs1110/2018s Lecture 7: Objects (Chater 15) CS 1110 Introduction to Comuting Using Python [E. Andersen, A. Bracy, D. Gries, L. Lee, S. Marschner, C. Van Loan, W. White]

More information

Truth Trees. Truth Tree Fundamentals

Truth Trees. Truth Tree Fundamentals Truth Trees 1 True Tree Fundamentals 2 Testing Grous of Statements for Consistency 3 Testing Arguments in Proositional Logic 4 Proving Invalidity in Predicate Logic Answers to Selected Exercises Truth

More information

Range Searching. Data structure for a set of objects (points, rectangles, polygons) for efficient range queries.

Range Searching. Data structure for a set of objects (points, rectangles, polygons) for efficient range queries. Range Searching Data structure for a set of objects (oints, rectangles, olygons) for efficient range queries. Y Q Deends on tye of objects and queries. Consider basic data structures with broad alicability.

More information

Distributed Algorithms

Distributed Algorithms Course Outline With grateful acknowledgement to Christos Karamanolis for much of the material Jeff Magee & Jeff Kramer Models of distributed comuting Synchronous message-assing distributed systems Algorithms

More information

Design and Analysis of Distributed Interacting Systems

Design and Analysis of Distributed Interacting Systems Design and Analysis of Distributed Interacting Systems Lecture 5 Linear Temporal Logic (cont.) Prof. Dr. Joel Greenyer May 2, 2013 (Last Time:) LTL Semantics (Informally) LTL Formulae are interpreted on

More information

Efficient Synthesis of Production Schedules by Optimization of Timed Automata

Efficient Synthesis of Production Schedules by Optimization of Timed Automata Efficient Synthesis of Production Schedules by Optimization of Timed Automata Inga Krause Institute of Automatic Control Engineering Technische Universität München inga.krause@mytum.de Joint Advanced Student

More information

Real Numbers and Algebraic Expressions

Real Numbers and Algebraic Expressions College Algebra - MAT 161 Page: 1 Coyright 2009 Killoran Real Numbers and Algebraic Exressions Idea #1 Infinity- a never ending rogression Is there an infinity of sand grains on the Outer Banks of North

More information

1.5 Case Study. dynamic connectivity quick find quick union improvements applications

1.5 Case Study. dynamic connectivity quick find quick union improvements applications . Case Study dynamic connectivity quick find quick union imrovements alications Subtext of today s lecture (and this course) Stes to develoing a usable algorithm. Model the roblem. Find an algorithm to

More information

CMSC 425: Lecture 16 Motion Planning: Basic Concepts

CMSC 425: Lecture 16 Motion Planning: Basic Concepts : Lecture 16 Motion lanning: Basic Concets eading: Today s material comes from various sources, including AI Game rogramming Wisdom 2 by S. abin and lanning Algorithms by S. M. LaValle (Chats. 4 and 5).

More information

Randomized algorithms: Two examples and Yao s Minimax Principle

Randomized algorithms: Two examples and Yao s Minimax Principle Randomized algorithms: Two examles and Yao s Minimax Princile Maximum Satisfiability Consider the roblem Maximum Satisfiability (MAX-SAT). Bring your knowledge u-to-date on the Satisfiability roblem. Maximum

More information

UPPAAL in a nutshell. Key words: Modeling real-time systems Dynamic modeling Modeling tools Uppaal. 1 Introduction

UPPAAL in a nutshell. Key words: Modeling real-time systems Dynamic modeling Modeling tools Uppaal. 1 Introduction Int J STTT (1997) 1: 134 152 1997 Springer-Verlag UPPAAL in a nutshell Kim G. Larsen 1,PaulPettersson 2,WangYi 2 1 Department of Computer Science and Mathematics, Aalborg University, Denmark; E-mail: kgl@cs.auc.dk

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

Model checking and timed CTL

Model checking and timed CTL Chapter 6 Model checking and timed CTL Ah! What did I tell you? 88 miles per hour! The temporal displacement occurred at exactly 1:20am and *zero* seconds! [Dr Emmett Brown] 6.1 Timed CTL Page 86 Formal

More information

NuSMV Hands-on introduction

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

Lecture 3: Geometric Algorithms(Convex sets, Divide & Conquer Algo.)

Lecture 3: Geometric Algorithms(Convex sets, Divide & Conquer Algo.) Advanced Algorithms Fall 2015 Lecture 3: Geometric Algorithms(Convex sets, Divide & Conuer Algo.) Faculty: K.R. Chowdhary : Professor of CS Disclaimer: These notes have not been subjected to the usual

More information

Formal Specification and Verification

Formal Specification and Verification Formal Specification and Verification Introduction to Promela Bernhard Beckert Based on a lecture by Wolfgang Ahrendt and Reiner Hähnle at Chalmers University, Göteborg Formal Specification and Verification:

More information

Equality-Based Translation Validator for LLVM

Equality-Based Translation Validator for LLVM Equality-Based Translation Validator for LLVM Michael Ste, Ross Tate, and Sorin Lerner University of California, San Diego {mste,rtate,lerner@cs.ucsd.edu Abstract. We udated our Peggy tool, reviously resented

More information

UML for Global Computing Lecture 3: Property-Driven Development

UML for Global Computing Lecture 3: Property-Driven Development Contents UML for Global Comuting Lecture 3: Proerty-Driven Develoment Martin Wirsing LMU München in cooeration with Hubert Baumeister Lecture : Introducing UML for Mobility Lecture 2: Refining Mobility

More information

22. Swaping: Policies

22. Swaping: Policies 22. Swaing: Policies Oerating System: Three Easy Pieces 1 Beyond Physical Memory: Policies Memory ressure forces the OS to start aging out ages to make room for actively-used ages. Deciding which age to

More information

Lecture 18. Today, we will discuss developing algorithms for a basic model for parallel computing the Parallel Random Access Machine (PRAM) model.

Lecture 18. Today, we will discuss developing algorithms for a basic model for parallel computing the Parallel Random Access Machine (PRAM) model. U.C. Berkeley CS273: Parallel and Distributed Theory Lecture 18 Professor Satish Rao Lecturer: Satish Rao Last revised Scribe so far: Satish Rao (following revious lecture notes quite closely. Lecture

More information

Real Time Model Checking

Real Time Model Checking Real Time Model Checking using UPPAAL Kim G Larsen Collaborators @UPPsala Wang Yi Paul Pettersson John Håkansson Anders Hessel Pavel Krcal Leonid Mokrushin Shi Xiaochun @Elsewhere @AALborg Kim G Larsen

More information

Real Time Software PROBLEM SETTING. Real Time Systems. Real Time Systems. Who is Who in Timed Systems. Real Time Systems

Real Time Software PROBLEM SETTING. Real Time Systems. Real Time Systems. Who is Who in Timed Systems. Real Time Systems Schedulability Analysis of Timed Systems with contributions from PROBLEM SETTING Tobias Amnell, Elena Fersma, John Håkansson, Pavel Kracal, Leonid Mokrushine, Christer Nordström, Paul Pettersson and Anders

More information

Formal modelling and verification in UPPAAL

Formal modelling and verification in UPPAAL Budapest University of Technology and Economics Department of Measurement and Information Systems Fault Tolerant Systems Research Group Critical Embedded Systems Formal modelling and verification in UPPAAL

More information

Recap: Consensus. CSE 486/586 Distributed Systems Mutual Exclusion. Why Mutual Exclusion? Why Mutual Exclusion? Mutexes. Mutual Exclusion C 1

Recap: Consensus. CSE 486/586 Distributed Systems Mutual Exclusion. Why Mutual Exclusion? Why Mutual Exclusion? Mutexes. Mutual Exclusion C 1 Reca: Consensus Distributed Systems Mutual Exclusion Steve Ko Comuter Sciences and Engineering University at Buffalo On a synchronous system There s an algorithm that works. On an asynchronous system It

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

A Simple Tutorial on NuSMV

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

Cyber Physical System Verification with SAL

Cyber Physical System Verification with SAL Cyber Physical System Verification with July 22, 2013 Cyber Physical System Verification with Outline 1 2 3 4 5 Cyber Physical System Verification with Table of Contents 1 2 3 4 5 Cyber Physical System

More information

Shuigeng Zhou. May 18, 2016 School of Computer Science Fudan University

Shuigeng Zhou. May 18, 2016 School of Computer Science Fudan University Query Processing Shuigeng Zhou May 18, 2016 School of Comuter Science Fudan University Overview Outline Measures of Query Cost Selection Oeration Sorting Join Oeration Other Oerations Evaluation of Exressions

More information

MANY real-time applications need to store some data

MANY real-time applications need to store some data Proceedings of the International Multiconference on Computer Science and Information Technology pp. 673 678 ISBN 978-83-60810-14-9 ISSN 1896-7094 Modeling Real-Time Database Concurrency Control Protocol

More information

Who. Winter Compiler Construction Generic compiler structure. Mailing list and forum. IC compiler. How

Who. Winter Compiler Construction Generic compiler structure. Mailing list and forum. IC compiler. How Winter 2007-2008 Comiler Construction 0368-3133 Mooly Sagiv and Roman Manevich School of Comuter Science Tel-Aviv University Who Roman Manevich Schreiber Oen-sace (basement) Tel: 640-5358 rumster@ost.tau.ac.il

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

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

Cross products. p 2 p. p p1 p2. p 1. Line segments The convex combination of two distinct points p1 ( x1, such that for some real number with 0 1,

Cross products. p 2 p. p p1 p2. p 1. Line segments The convex combination of two distinct points p1 ( x1, such that for some real number with 0 1, CHAPTER 33 Comutational Geometry Is the branch of comuter science that studies algorithms for solving geometric roblems. Has alications in many fields, including comuter grahics robotics, VLSI design comuter

More information

Software Engineering using Formal Methods

Software Engineering using Formal Methods Software Engineering using Formal Methods Introduction to Promela Wolfgang Ahrendt 03 September 2015 SEFM: Promela /GU 150903 1 / 36 Towards Model Checking System Model Promela Program byte n = 0; active

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

Lecture06: Pointers 4/1/2013

Lecture06: Pointers 4/1/2013 Lecture06: Pointers 4/1/2013 Slides modified from Yin Lou, Cornell CS2022: Introduction to C 1 Pointers A ointer is a variable that contains the (memory) address of another variable What is a memory address?

More information

The Rest of the Course More DFA and Model Checking

The Rest of the Course More DFA and Model Checking The Rest of the Course More DFA and Model Checking Tuesday, Dec. 6: Guest Lecture Thursday, Dec. 8: Guest Lecture Final Exam Wednesday, Dec. 14 @ 10:30-12:30 Prof. Leon Osterweil CS 521-621 Fall Semester

More information

The Arithmetic Operators. Unary Operators. Relational Operators. Examples of use of ++ and

The Arithmetic Operators. Unary Operators. Relational Operators. Examples of use of ++ and The Arithmetic Operators The arithmetic operators refer to the standard mathematical operators: addition, subtraction, multiplication, division and modulus. Op. Use Description + x + y adds x and y x y

More information

The Arithmetic Operators

The Arithmetic Operators The Arithmetic Operators The arithmetic operators refer to the standard mathematical operators: addition, subtraction, multiplication, division and modulus. Examples: Op. Use Description + x + y adds x

More information

Software Engineering using Formal Methods

Software Engineering using Formal Methods Software Engineering using Formal Methods Introduction to Promela Wolfgang Ahrendt & Richard Bubel & Reiner Hähnle & Wojciech Mostowski 31 August 2011 SEFM: Promela /GU 110831 1 / 35 Towards Model Checking

More information

Distributed Systems (5DV147)

Distributed Systems (5DV147) Distributed Systems (5DV147) Mutual Exclusion and Elections Fall 2013 1 Processes often need to coordinate their actions Which rocess gets to access a shared resource? Has the master crashed? Elect a new

More information

CS 1110 Final, December 7th, 2017

CS 1110 Final, December 7th, 2017 CS 1110 Final, December 7th, 2017 This 150-minute exam has 8 questions worth a total of 100 oints. Scan the whole test before starting. Budget your time wisely. Use the back of the ages if you need more

More information

Definition. Pointers. Outline. Why pointers? Definition. Memory Organization Overview. by Ziad Kobti. Definition. Pointers enable programmers to:

Definition. Pointers. Outline. Why pointers? Definition. Memory Organization Overview. by Ziad Kobti. Definition. Pointers enable programmers to: Pointers by Ziad Kobti Deinition When you declare a variable o any tye, say: int = ; The system will automatically allocated the required memory sace in a seciic location (tained by the system) to store

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

Pointers and Memory Allocation p. 1. Brooklyn College. Michael Lampis. CISC 3130 Notes. Pointers and Memory Allocation

Pointers and Memory Allocation p. 1. Brooklyn College. Michael Lampis. CISC 3130 Notes. Pointers and Memory Allocation Pointers and Memory Allocation CISC 3130 Notes Michael Lamis mlamis@cs.ntua.gr Brooklyn College Pointers and Memory Allocation. 1 int x; Pointers x Pointers and Memory Allocation. 2 Pointers int x; int

More information

Improved BDD-based Discrete Analysis of Timed Systems

Improved BDD-based Discrete Analysis of Timed Systems Improved BDD-based Discrete Analysis of Timed Systems Truong Khanh Nguyen 1, Jun Sun 2, Yang Liu 1, Jin Song Dong 1 and Yan Liu 1 1 School of Computing National University of Singapore 2 Information System

More information

I ACCEPT NO RESPONSIBILITY FOR ERRORS ON THIS SHEET. I assume that E = (V ).

I ACCEPT NO RESPONSIBILITY FOR ERRORS ON THIS SHEET. I assume that E = (V ). 1 I ACCEPT NO RESPONSIBILITY FOR ERRORS ON THIS SHEET. I assume that E = (V ). Data structures Sorting Binary heas are imlemented using a hea-ordered balanced binary tree. Binomial heas use a collection

More information

OMNI: An Efficient Overlay Multicast. Infrastructure for Real-time Applications

OMNI: An Efficient Overlay Multicast. Infrastructure for Real-time Applications OMNI: An Efficient Overlay Multicast Infrastructure for Real-time Alications Suman Banerjee, Christoher Kommareddy, Koushik Kar, Bobby Bhattacharjee, Samir Khuller Abstract We consider an overlay architecture

More information

CS 1613 Lecture 24. Figure 1. Program p01.

CS 1613 Lecture 24. Figure 1. Program p01. Consider a rogram that is required to find all values larger than the average in a list of integers. The list is stored in a file. The rogram must read and store the list to fulfill its requirement. The

More information

Building Graphical Promela Models using UPPAAL GUI

Building Graphical Promela Models using UPPAAL GUI Building Graphical Promela Models using UPPAAL GUI Master s Thesis Report by Vasu Hossaholal Lingegowda Software Systems Engineering Group: B2-201 under the guidance of Dr. Alexandre David Department of

More information

CS2 Algorithms and Data Structures Note 8

CS2 Algorithms and Data Structures Note 8 CS2 Algorithms and Data Structures Note 8 Heasort and Quicksort We will see two more sorting algorithms in this lecture. The first, heasort, is very nice theoretically. It sorts an array with n items in

More information

CASCH - a Scheduling Algorithm for "High Level"-Synthesis

CASCH - a Scheduling Algorithm for High Level-Synthesis CASCH a Scheduling Algorithm for "High Level"Synthesis P. Gutberlet H. Krämer W. Rosenstiel Comuter Science Research Center at the University of Karlsruhe (FZI) HaidundNeuStr. 1014, 7500 Karlsruhe, F.R.G.

More information

Writing Program in C Expressions and Control Structures (Selection Statements and Loops)

Writing Program in C Expressions and Control Structures (Selection Statements and Loops) Writing Program in C Expressions and Control Structures (Selection Statements and Loops) Jan Faigl Department of Computer Science Faculty of Electrical Engineering Czech Technical University in Prague

More information

Part I Part 1 Expressions

Part I Part 1 Expressions Writing Program in C Expressions and Control Structures (Selection Statements and Loops) Jan Faigl Department of Computer Science Faculty of Electrical Engineering Czech Technical University in Prague

More information

TIMES A Tool for Modelling and Implementation of Embedded Systems

TIMES A Tool for Modelling and Implementation of Embedded Systems TIMES A Tool for Modelling and Implementation of Embedded Systems Tobias Amnell, Elena Fersman, Leonid Mokrushin, Paul Pettersson, and Wang Yi Uppsala University, Sweden. {tobiasa,elenaf,leom,paupet,yi}@docs.uu.se.

More information

Privacy Preserving Moving KNN Queries

Privacy Preserving Moving KNN Queries Privacy Preserving Moving KNN Queries arxiv:4.76v [cs.db] 4 Ar Tanzima Hashem Lars Kulik Rui Zhang National ICT Australia, Deartment of Comuter Science and Software Engineering University of Melbourne,

More information

Expressions. Arithmetic expressions. Logical expressions. Assignment expression. n Variables and constants linked with operators

Expressions. Arithmetic expressions. Logical expressions. Assignment expression. n Variables and constants linked with operators Expressions 1 Expressions n Variables and constants linked with operators Arithmetic expressions n Uses arithmetic operators n Can evaluate to any value Logical expressions n Uses relational and logical

More information

arxiv: v2 [cs.cr] 25 Jul 2013

arxiv: v2 [cs.cr] 25 Jul 2013 arxiv:1209.2376v2 [cs.cr] 25 Jul 2013 Two Way Concurrent Buffer System without Deadlock in Various Time Models Using Timed Automata Rohit Mishra, Md Zeeshan and Sanjay Singh February 10, 2018 Abstract

More information

CMSC 330: Organization of Programming Languages. OCaml Imperative Programming

CMSC 330: Organization of Programming Languages. OCaml Imperative Programming CMSC 330: Organization of Programming Languages OCaml Imperative Programming CMSC330 Fall 2017 1 So Far, Only Functional Programming We haven t given you any way so far to change something in memory All

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

GO - OPERATORS. This tutorial will explain the arithmetic, relational, logical, bitwise, assignment and other operators one by one.

GO - OPERATORS. This tutorial will explain the arithmetic, relational, logical, bitwise, assignment and other operators one by one. http://www.tutorialspoint.com/go/go_operators.htm GO - OPERATORS Copyright tutorialspoint.com An operator is a symbol that tells the compiler to perform specific mathematical or logical manipulations.

More information

NuSMV 2.2 Tutorial. Roberto Cavada, Alessandro Cimatti, Gavin Keighren, Emanuele Olivetti, Marco Pistore and Marco Roveri

NuSMV 2.2 Tutorial. Roberto Cavada, Alessandro Cimatti, Gavin Keighren, Emanuele Olivetti, Marco Pistore and Marco Roveri NuSMV 2.2 Tutorial Roberto Cavada, Alessandro Cimatti, Gavin Keighren, Emanuele Olivetti, Marco Pistore and Marco Roveri IRST - Via Sommarive 18, 38055 Povo (Trento) Italy Email: nusmv@irst.itc.it Contents

More information

Testing, Debugging, and Verification

Testing, Debugging, and Verification Testing, Debugging, and Verification Formal Specification, Part II Srinivas Pinisetty 23 November 2017 Introduction Today: Introduction to Dafny: An imperative language with integrated support for formal

More information

COMP30172: Advanced Algorithms Notes and Exercises on Automata-based Verification

COMP30172: Advanced Algorithms Notes and Exercises on Automata-based Verification COMP30172: Advanced Algorithms Notes and Exercises on Automata-based Verification Howard Barringer Rm2.20: Kilburn Building Email: Howard.Barringer@manchester.ac.uk March 2010 ii Contents Preface v 1 Model

More information

Timed Automata From Theory to Implementation

Timed Automata From Theory to Implementation Timed Automata From Theory to Implementation Patricia Bouyer LSV CNRS & ENS de Cachan France Chennai january 2003 Timed Automata From Theory to Implementation p.1 Roadmap Timed automata, decidability issues

More information

Introduction to Programming (Java) 2/12

Introduction to Programming (Java) 2/12 Introduction to Programming (Java) 2/12 Michal Krátký Department of Computer Science Technical University of Ostrava Introduction to Programming (Java) 2008/2009 c 2006 2008 Michal Krátký Introduction

More information

Lecture 2: Symbolic Model Checking With SAT

Lecture 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 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

Real Time Model Checking

Real Time Model Checking Real Time Model Checking using UPPAAL Kim G Larsen Collaborators @UPPsala Wang Yi Paul Pettersson John Håkansson Anders Hessel Pavel Krcal Leonid Mokrushin Shi Xiaochun @Elsewhere @AALborg Kim G Larsen

More information

Automated Test Generation using Model-Checking: An Industrial Evaluation

Automated Test Generation using Model-Checking: An Industrial Evaluation Automated Test Generation using Model-Checking: An Industrial Evaluation Eduard P. Enoiu 1, Adnan Čaušević 1, Thomas J. Ostrand 3, Elaine J. Weyuker 1, Daniel Sundmark 12, and Paul Pettersson 1 1 Mälardalen

More information

CS2 Algorithms and Data Structures Note 8

CS2 Algorithms and Data Structures Note 8 CS2 Algorithms and Data Structures Note 8 Heasort and Quicksort We will see two more sorting algorithms in this lecture. The first, heasort, is very nice theoretically. It sorts an array with n items in

More information

Operators. Java operators are classified into three categories:

Operators. Java operators are classified into three categories: Operators Operators are symbols that perform arithmetic and logical operations on operands and provide a meaningful result. Operands are data values (variables or constants) which are involved in operations.

More information

Applications of Pointers (1A) Young Won Lim 4/24/18

Applications of Pointers (1A) Young Won Lim 4/24/18 (1A) Coyright (c) 2010-2018 Young W. Lim. Permission is granted to coy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version ublished

More information

Lecture 3 SPIN and Promela

Lecture 3 SPIN and Promela Lecture 3 SPIN and Promela 1 What is SPIN(Simple Promela INterpreter) A tool for analyzing mels of concurrent systems Mels described in Promela Language with concurrent processes Communication via shared

More information