UPPAAL Introduction Chien-Liang Chen.

Slides:



Advertisements
Similar presentations
Real-Time Systems, DTU, Feb 15, 2000 Paul Pettersson, BRICS, Aalborg, Denmark. Timed Automata and Timed Computation Tree Logic Paul Pettersson
Advertisements

Metodi formali dello sviluppo software a.a.2013/2014 Prof.Anna Labella.
CS 267: Automated Verification Lecture 2: Linear vs. Branching time. Temporal Logics: CTL, CTL*. CTL model checking algorithm. Counter-example generation.
Algorithmic Software Verification VII. Computation tree logic and bisimulations.
CS 267: Automated Verification Lecture 8: Automata Theoretic Model Checking Instructor: Tevfik Bultan.
Partial Order Reduction: Main Idea
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
An Introduction to the Model Verifier verds Wenhui Zhang September 15 th, 2010.
François Fages MPRI Bio-info 2006 Formal Biology of the Cell Modeling, Computing and Reasoning with Constraints François Fages, Constraints Group, INRIA.
Temporal Logic and the NuSMV Model Checker CS 680 Formal Methods Jeremy Johnson.
Model Checking I What are LTL and CTL?. and or dreq q0 dack q0bar.
CS6133 Software Specification and Verification
Hybrid Systems Presented by: Arnab De Anand S. An Intuitive Introduction to Hybrid Systems Discrete program with an analog environment. What does it mean?
Timed Automata.
UPPAAL T-shirt to (identifiable)
UPPAAL Andreas Hadiyono Arrummaisha Adrifina Harya Iswara Aditya Wibowo Juwita Utami Putri.
CSE 522 UPPAAL – A Model Checking Tool Computer Science & Engineering Department Arizona State University Tempe, AZ Dr. Yann-Hang Lee
Verification of Hybrid Systems An Assessment of Current Techniques Holly Bowen.
卜磊 Transition System. Part I: Introduction  Chapter 0: Preliminaries  Chapter 1: Language and Computation Part II: Models  Chapter.
SYMBOLIC MODEL CHECKING: STATES AND BEYOND J.R. Burch E.M. Clarke K.L. McMillan D. L. Dill L. J. Hwang Presented by Rehana Begam.
Hybrid Approach to Model-Checking of Timed Automata DAT4 Project Proposal Supervisor: Alexandre David.
1 Temporal Logic u Classical logic:  Good for describing static conditions u Temporal logic:  Adds temporal operators  Describe how static conditions.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Spin Tutorial (some verification options). Assertion is always executable and has no other effect on the state of the system than to change the local.
CSE 555 Protocol Engineering Dr. Mohammed H. Sqalli Computer Engineering Department King Fahd University of Petroleum & Minerals Credits: Dr. Abdul Waheed.
Discrete Abstractions of Hybrid Systems Rajeev Alur, Thomas A. Henzinger, Gerardo Lafferriere and George J. Pappas.
Model Checking. Used in studying behaviors of reactive systems Typically involves three steps: Create a finite state model (FSM) of the system design.
1 Carnegie Mellon UniversitySPINFlavio Lerda SPIN An explicit state model checker.
Sanjit A. Seshia and Randal E. Bryant Computer Science Department
CaV 2003 CbCb 1 Concurrency and Verification What? Why? How?
Specification Formalisms Book: Chapter 5. Properties of formalisms Formal. Unique interpretation. Intuitive. Simple to understand (visual). Succinct.
Review of the automata-theoretic approach to model-checking.
Embedded Systems Laboratory Department of Computer and Information Science Linköping University Sweden Formal Verification and Model Checking Traian Pop.
ESE601: Hybrid Systems Introduction to verification Spring 2006.
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
Flavio Lerda 1 LTL Model Checking Flavio Lerda. 2 LTL Model Checking LTL –Subset of CTL* of the form: A f where f is a path formula LTL model checking.
1 Temporal Logic-Overview FM Temporal Logic u Classical logic: Good for describing static conditions u Temporal logic: Adds temporal operators Describe.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
UPPAAL Ghaith Haddad. Introduction UPPAAL is a tool for modeling, validation and verification of real-time systems. Appropriate for systems that can be.
Copyright 2001, Matt Dwyer, John Hatcliff, and Radu Iosif. The syllabus and all lectures for this course are copyrighted materials and may not be used.
CS6133 Software Specification and Verification
Lecture51 Timed Automata II CS 5270 Lecture 5.
CS5270 Lecture 41 Timed Automata I CS 5270 Lecture 4.
Lecture 81 Optimizing CTL Model checking + Model checking TCTL CS 5270 Lecture 9.
卜磊 Transition System. Definitions and notations Reactive System The intuition is that a transition system consists of a set of possible.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 05/06 Universität Dortmund Validation - Formal verification -
1 Model Checking of of Timed Systems Rajeev Alur University of Pennsylvania.
Verification & Validation By: Amir Masoud Gharehbaghi
1 CSEP590 – Model Checking and Automated Verification Lecture outline for July 9, 2003.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Today’s Agenda  Quiz 4  Temporal Logic Formal Methods in Software Engineering1.
6/12/20161 a.a.2015/2016 Prof. Anna Labella Formal Methods in software development.
Model Checking Lecture 2. Model-Checking Problem I |= S System modelSystem property.
CS5270 Lecture 41 Timed Automata I CS 5270 Lecture 4.
Model Checking Lecture 2 Tom Henzinger. Model-Checking Problem I |= S System modelSystem property.
Complexity of Compositional Model Checking of Computation Tree Logic on Simple Structures Krishnendu Chatterjee Pallab Dasgupta P.P. Chakrabarti IWDC 2004,
UPPAAL Real-Time Systems Lab. Seolyoung, Jeong.
SS 2017 Software Verification Timed Automata
CIS 842: Specification and Verification of Reactive Systems
Timed Automata II CS 5270 Lecture Lecture5.
Program Synthesis is a Game
Timed Automata Formal Systems Pallab Dasgupta Professor,
CSEP590 – Model Checking and Automated Verification
Formal Methods in software development
CSCI1600: Embedded and Real Time Software
An explicit state model checker
Formal Methods in software development
Program correctness Model-checking CTL
CSE 503 – Software Engineering
Presentation transcript:

UPPAAL Introduction Chien-Liang Chen

Outline Real-Time Verification and Validation Tools Promela and SPIN Simulation Verification Real-Time Extensions: RT-SPIN – Real-Time extensions to SPIN UPPAAL – Toolbox for validation and verification of real-time systems

Modelling

UPPAAL UPPAAL is a tool box for simulation and verification of real-time systems based on constraint solving and other techniques. UPPAAL was developed jointly by Uppsala University and Aalborg University. It can be used for systems that are modeled as a collection of non-deterministic processes w/ finite control structures and real-valued clocks, communicating through channels and/or shared variables. It is designed primarily to check both invariants and reachability properties by exploring the statespace of a system.

UPPAAL Components UPPAAL consists of three main parts: a description language, a simulator, and a model checker. The description language is a non-deterministic guarded command language with data types. It can be used to describe a system as a network of timed automata using either a graphical (*.atg, *.xml) or textual (*.xta) format. The simulator enables examination of possible dynamic executions of a system during the early modeling stages. The model checker exhaustively checks all possible states.

UPPAAL Tools (earlier version) checkta – syntax checker simta – simulator verifyta – model checker

Example – .xta file format (from UPPAAL in a Nutshell) clock x, y; int n; chan a; process A { state A0 { y<=6 }, A1, A2, A3; init A0; trans A0 -> A1 { guard y>=3; sync a!; assign y:=0; }, A1 -> A2 { guard y>=4; A2 -> A3 { guard n==5; }, A3 -> A0; }

Example (cont.) (from UPPAAL in a Nutshell) process B { state B0 { x<=4 }, B1, B2, B3; commit B1; init B0; trans B0 -> B1 { guard x>=2; sync a?; assign n:=5,x:=0; }, B1 -> B2 { assign n:=n+1; B2 -> B3 { }, B3 -> B0; } system A, B;

Example (cont.)

Linear Temporal Logic (LTL) LTL formulae are used to specify temporal properties. LTL includes propositional logic and temporal operators: [ ]P = always P <>P = eventually P P U Q = P is true until Q becomes true Examples: Invariance: [ ] (p) Response: [ ] ((p) -> (<> (q))) Precedence: [ ] ((p) -> ((q) U (r))) Objective: [ ] ((p) -> <>((q) || (r)))

Labels and Transitions The edges of the automata can be labeled with three different types of labels: a guard expressing a condition on the values of clocks and integer variables that must be satised in order for the edge to be taken, a synchronization action which is performed when the edge is taken, and a number of clock resets and assignments to integer variables. Nodes may be labeled with invariants; that is, conditions expressing constraints on the clock values in order for control to remain in a particular node.

Committed Locations A committed location must be left immediately. A broadcast can be represented by two transitions with a committed state between sends.

Transitions Delay transitions – if none of the invariants of the nodes in the current state are violated, time may progress without making a transition; e.g., from ((A0,B0),x=0,y=0,n=0), time may elapse 3.5 units to ((A0,B0),x=3.5,y=3.5,n=0), but time cannot elapse 5 time units because that would violate the invariant on B0. Action transitions – if two complementary edges of two different components are enabled in a state, then they can synchronize; also, if a component has an enabled internal edge, the edge can be taken without any synchronizaton; e.g., from ((A0,B0),x=3.5,y=3.5,n=0) the two components can synchronize to ((A1,B1),x=0,y=0,n=5).

Transitions (cont.) Action transitions – if two complementary edges of two different components are enabled in a state, then they can synchronize; also, if a component has an enabled internal edge, the edge can be taken without any synchronizaton; e.g., from ((A0,B0),x=0,y=0,n=0) the two components can synchronize to ((A1,B1),x=0,y=0,n=5).

UPPAAL Transitions

Urgent Channels and Committed Locations Transitions can be overruled by the presence of urgent channels and committed locations: When two components can synchronize on an urgent channel, no further delay is allowed; e.g., if channel a is urgent, time could not elapse beyond 3, because in state ((A0,B0),x=3,y=3,n=0), synchronization on channel a is enabled.

Committed Nodes Transitions can be overruled by the presence of urgent channels and committed locations: If one of the components is in a committed node, no delay is allowed to occur and any action transition must involve the component committed to continue; e.g., in state ((A1,B1),x=0,y=0,n=5), B1 is commited, so the next state of the network is ((A1,B2),x=0,y=0,n=6).

UPPAAL Locations

Translation to UPPAAL Mutual Exclusion Program P1 :: while True do T1 : wait(turn=1) C1 : turn:=0 endwhile || P2 :: while True do T2 : wait(turn=0) C2 : turn:=1 Mutual Exclusion Program

Example: Mutual Exclusion

Intelligent Light Control press? Off Light Bright press? x:=0 x>3 x<=3 press? press? Requirements: If a user quickly presses the light control twice, then the light should get brighter; on the other hand, if the user slowly presses the light control twice, the light should turn off. Solution: Add a real-valued clock, x.

UPPAAL Model = Networks of Timed Automata A timed automaton is a standard finite state automaton extended with a finite collection of real-valued clocks.

Timed Automata Clocks: x, y x<=5 && y>3 State a Alur & Dill 1990 Clocks: x, y Guard Boolean combination of comp with integer bounds n Reset Action perfomed on clocks x<=5 && y>3 State ( location , x=v , y=u ) where v,u are in R a x := 0 Transitions ( n , x=2.4 , y=3.1415 ) ( m , x=0 , y=3.1415 ) a Action used for synchronization m e(1.1) ( n , x=2.4 , y=3.1415 ) ( n , x=3.5 , y=4.2415 )

Timed Automata - Invariants Clocks: x, y x<=5 Transitions x<=5 & y>3 e(3.2) Location Invariants ( n , x=2.4 , y=3.1415 ) a e(1.1) ( n , x=2.4 , y=3.1415 ) ( n , x=3.5 , y=4.2415 ) x := 0 m Invariants ensure progress. y<=10 g4 g1 g3 g2

A simple program What are possible values for x? Questions/Properties: Int x Process P do :: x<2000  x:=x+1 od Process Q :: x>0  x:=x-1 Process R :: x=2000  x:=0 fork P; fork Q; fork R What are possible values for x? Questions/Properties: E<>(x>1000) E<>(x>2000) A[](x<=2000) E<>(x<0) A[](x>=0) Possible Always

Verification (example.xta) int x:=0; process P{ state S0; init S0; trans S0 -> S0{guard x<2000; assign x:=x+1; }; } process Q{ state S1; init S1; trans S1 -> S1{guard x>0; assign x:=x-1; }; process R{ state S2; init S2; trans S2 -> S2{guard x==0; assign x:=0; }; p1:=P(); q1:=Q(); r1:=R(); system p1,q1,r1; Int x Process P do :: x<2000  x:=x+1 od Process Q :: x>0  x:=x-1 Process R :: x=2000  x:=0 fork P; fork Q; fork R

BNF for q-format

Example: Mutual Exclusion

Example (mutex2.xta) //Global declarations int turn; int in_CS; //Process template process P(const id){ clock x; state Idle, Try, Crit; init Idle; trans Idle -> Try{assign turn:=id, x:=0; }, Try -> Crit{guard turn==(1-id); assign in_CS:=in_CS+1; }, Try -> Try{guard turn==id; }, Crit -> Idle{guard x>3; assign in_CS:=in_CS-1; }; } //Process assignments P1:=P(1); P2:=P(0); //System definition. system P1, P2;

From UPPAAL-time Models to Kripke Structures I1 I2 t=1 I1 I2 t=0 T1 I2 t=0 I1 T2 t=1 T1 I2 t=1 I1 T2 t=0 T1 T2 t=0 C1 I2 t=1 T1 T2 t=1 I1 C2 t=0 C1 T2 t=1 T1 C2 t=0

CTL Models

Computation Tree Logic, CTL (Clarke and Emerson, 1980) Syntax

Example (from UPPAAL2k: Small Tutorial) Obs

Example (cont.)

Example (cont.) Verification: A[](Obs.taken imply x>=2) E<>(Obs.idle and x>3) E<>(Obs.idle and x>3000)

Example (cont.)

Example (cont.)

Translation to UPPAAL Mutual Exclusion Program P1 :: while True do T1 : wait(turn=1) C1 : turn:=0 endwhile || P2 :: while True do T2 : wait(turn=0) C2 : turn:=1 Mutual Exclusion Program

CTL Models

Computation Tree Logic, CTL (Clarke and Emerson, 1980) Syntax

Path p s s1 s2 s3... The set of path starting in s

Formal Semantics

CTL, Derived Operators possible inevitable AF p EF p p p p p . . .

CTL, Derived Operators potentially always always AG p EG p p p p p p p . . . . . . . . . . . . . . . . . . . . . . . .

Theorem All operators are derivable from EX f EG f E[ f U g ] and boolean connectives

UPPAAL Specification Language A[] p (AG p) E<> p (EF p) p::= a.l | gd | gc | p and p | p or p | not p | p imply p | ( p ) process location data guards clock guards

Semantics: Example push push click

Light Switch (cont.) A[] (x <= y) P.on --> P.off push push click

Paths push Example Path: push click

Elapsed Time in Path Example: s= D(s,1)=3.5, D(s,6)=3.5+9=12.5

Infinite State Space?

Regions Finite partitioning of state space Definition y 2 1 1 2 3 x An equivalence class (i.e. a region) in fact there are only a finite number of regions!

Regions Finite partitioning of state space Definition y 2 1 r 1 2 3 x Successor regions, Succ(r) An equivalence class (i.e. a region)

Regions Finite partitioning of state space Definition y 2 1 THEOREM r {x}r {y}r 1 2 3 x Reset regions An equivalence class (i.e. a region) r

Region graph of simple timed automata

Modified light switch

Reachable part of region graph Properties

Roughly speaking.... Model checking a timed automata against a TCTL-formula amounts to model checking its region graph against a CTL-formula

Problem to be solved    Model Checking TCTL is PSPACE-hard

Zones: From Infinite to Finite Symbolic state (set) (n, ) State (n, x=3.2, y=2.5) Zone: conjunction of x-y<=n, x<=>n x y x y

Symbolic Transitions y y delays to n x x x>3 y y conjuncts to x x projects to 3<x, y=0 m Thus (n,1<=x<=4,1<=y<=3) =a => (m, 3<x, y=0)

Forward Reachability Init -> Final ? INITIAL Passed := Ø; Waiting := {(n0,Z0)} REPEAT - pick (n,Z) in Waiting - if for some Z’ Z (n,Z’) in Passed then STOP - else (explore) add { (m,U) : (n,Z) => (m,U) } to Waiting; Add (n,Z) to Passed UNTIL Waiting = Ø or Final is in Waiting Final Waiting Init Passed

Forward Reachability Init -> Final ? INITIAL Passed := Ø; Waiting := {(n0,Z0)} REPEAT - pick (n,Z) in Waiting - if for some Z’ Z (n,Z’) in Passed then STOP - else (explore) add { (m,U) : (n,Z) => (m,U) } to Waiting; Add (n,Z) to Passed UNTIL Waiting = Ø or Final is in Waiting Final Waiting n,Z n,Z’ Init Passed

Forward Reachability Init -> Final ? INITIAL Passed := Ø; Waiting := {(n0,Z0)} REPEAT - pick (n,Z) in Waiting - if for some Z’ Z (n,Z’) in Passed then STOP - else /explore/ add { (m,U) : (n,Z) => (m,U) } to Waiting; Add (n,Z) to Passed UNTIL Waiting = Ø or Final is in Waiting Waiting Final m,U n,Z n,Z’ Init Passed

Forward Reachability Init -> Final ? INITIAL Passed := Ø; Waiting := {(n0,Z0)} REPEAT - pick (n,Z) in Waiting - if for some Z’ Z (n,Z’) in Passed then STOP - else /explore/ add { (m,U) : (n,Z) => (m,U) } to Waiting; Add (n,Z) to Passed UNTIL Waiting = Ø or Final is in Waiting Waiting Final m,U n,Z n,Z’ Init Passed

UPPAAL Verification Options Diagnostic Trace Breadth-First Depth-First Local Reduction Global Reduction Active-Clock Reduction Re-Use State-Space Over-Approximation Under-Approximation

Forward Rechability Init -> Final ? INITIAL Passed := Ø; Waiting := {(n0,Z0)} REPEAT - pick (n,Z) in Waiting - if for some Z’ Z (n,Z’) in Passed then STOP - else /explore/ add { (m,U) : (n,Z) => (m,U) } to Waiting; Add (n,Z) to Passed UNTIL Waiting = Ø or Final is in Waiting Waiting Final m,U location zone n,Z n,Z’ Init Passed

Order of Exploration Depth-First vs Breadth-First Waiting stored on stack Breadth-First Waiting stored in queue Waiting Final m,U n,Z In most cases BF is preferred because it allows for generation of “shortest” traces. DF is useful in situations when reachability may be concluded without generating the full state-space. Easy computation of traces. n,Z’ Init Passed

Philips Bounded Retransmission Protocol (BRP) [D’Argenio et.al. 97]

Protocol Overview Protocol developed by Philips. Transfer data between Audio/Video components via infra-red communication. Data files are sent in smaller chunks. Problem: Unreliable communication medium. Solution: Sender retransmits if receiver responds too late. Receiver aborts if sender sends too late.

Overview of BRP Sender Receiver S R BRP K L Input: file = p1, …, pn Output: p1, …, pn Sender Receiver S R BRP pi K lossy ack L lossy

How It Works Sender input: file = p1, …, pn. S sends (p1,FST,0), (p2,INC,1), …, (pn-1,INC,1), (pn,OK,0). R sends: ack, …, ack. S retransmits pi if timeout. Receiver recives: p1, …, pn. Sender and Receiver receive NOK or OK. more parts will follow first part of file whole file OK

BRP Model Overview Sender Receiver S R BRP K L Input: file = p1, …, pn Output: p1, …, pn Sender Receiver OK, NOK, DK IND, OK, NOK S R BRP (pi,INDicator,abit) K lossy L lossy ack

The Lossy Media one-place capacity delay value-passing lossy = may drop messages

Bounded Retransmission BRP Sender S sends a chunk pi and waits for ack from BRP Receiver R. If timeout occurs, the chunk is retransmitted. If too many timeouts occur, the transmission fails (NOK is sent to the Sender). If the whole file is successfully transmitted, then OK is sent to the Sender. BRP Receiver is similar.

Process S – BRP Sender

Process R – BRP Receiver

Sender and Receiver - Applications