Improved BDD-based Discrete Analysis of Timed Systems

Similar documents
TTM/PAT: Specifying and Verifying Timed Transition Models

Verification in Continuous Time Recent Advances

An MTBDD-based Implementation of Forward Reachability for Probabilistic Timed Automata

More on Verification and Model Checking

A Test Case Generation Algorithm for Real-Time Systems

UPPAAL. Verification Engine, Options & Patterns. Alexandre David

CAV th July 2013 Saint Petersburg, Russia. PSyHCoS. Parameter Synthesis for Hierarchical Concurrent Real-Time Systems

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

Proceedings of the Automated Verification of Critical Systems (AVoCS 2013)

M. De Wulf, L. Doyen,J.-F. Raskin Université Libre de Bruxelles Centre Fédéré en Vérification

Software Testing IV. Prof. Dr. Holger Schlingloff. Humboldt-Universität zu Berlin

TermComp Proposal: Pushdown Systems as a Model for Programs with Procedures

Modeling and Analysis of Fischer s Algorithm

Overview of SRI s. Lee Pike. June 3, 2005 Overview of SRI s. Symbolic Analysis Laboratory (SAL) Lee Pike

Specification and Analysis of Real-Time Systems Using Real-Time Maude

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

TIMES A Tool for Modelling and Implementation of Embedded Systems

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

AN ABSTRACTION TECHNIQUE FOR REAL-TIME VERIFICATION

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

A Verification Approach for GALS Integration of Synchronous Components

Model checking and timed CTL

want turn==me wait req2==0

Model-Checking and Simulation for Stochastic Timed Systems

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

Modeling and Analysis of Real -Time Systems with Mutex Components

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

Overview of Timed Automata and UPPAAL

PRISM An overview. automatic verification of systems with stochastic behaviour e.g. due to unreliability, uncertainty, randomisation,

TIMO: Timed Mobility in Distributed Systems

arxiv: v3 [cs.fl] 5 Mar 2017

Further Topics in Modelling & Verification

The SPIN Model Checker

Efficient Synthesis of Production Schedules by Optimization of Timed Automata

This full text version, available on TeesRep, is the post-print (final version prior to publication) of:

Unbounded, Fully Symbolic Model Checking of Timed Automata using Boolean Methods

Model-based Analysis of Event-driven Distributed Real-time Embedded Systems

Action Language Verifier, Extended

Temporal Refinement Using SMT and Model Checking with an Application to Physical-Layer Protocols

A Methodology for On-line Monitoring Non-Functional Specifications of Web-Services

A Modal Specification Approach for Assuring the Safety of On-Demand Medical Cyber-Physical Systems

Timed Automata: Semantics, Algorithms and Tools

MODEL-BASED DESIGN OF CODE FOR PLC CONTROLLERS

Introduction to Embedded Systems

Temporal Logic and Timed Automata

Automatic Verification of the IEEE-1394 Root Contention Protocol with KRONOS and PRISM

SoftCOM 2000 THE EFFICIENT SYMBOLIC TOOLS PACKAGE

Formal Methods for Software Development

An Automatic Approach to Model Checking UML State Machines

No model may be available. Software Abstractions. Recap on Model Checking. Model Checking for SW Verif. More on the big picture. Abst -> MC -> Refine

Uppaal can be used to model check Orc models. The approach is demonstrated through a small case study. In [7], the authors deal with the compatibility

Timed Automata Based Scheduling for a Miniature Pipeless Plant with Mobile Robots *

Reasoning about Timed Systems Using Boolean Methods

Lecture 9 Extensions and Open Problems

Using Monterey Phoenix to Formalize and Verify System Architectures

Graphical Tool For SC Automata.

Automatic synthesis of switching controllers for linear hybrid systems: Reachability control

Model checking pushdown systems

A Real-Time Animator for Hybrid Systems

A Correctness Proof for a Practical Byzantine-Fault-Tolerant Replication Algorithm

Automated Formal Methods for Embedded Systems

Improving Signature Matching using Binary Decision Diagrams

Using Decision Diagrams to Compactly Represent the State Space for Explicit Model Checking

Analysis of the Zeroconf Protocol Using UPPAAL

Timed Automata From Theory to Implementation

Ionuţ Buricea. Trying to extend this work to timed protocols, I studied the verification of timed systems

Stochastic Games for Verification of Probabilistic Timed Automata

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

Denotational Semantics. Domain Theory

Overview. Probabilistic Programming. Dijkstra s guarded command language: Syntax. Elementary pgcl ingredients. Lecture #4: Probabilistic GCL

Formal Verification: Practical Exercise Model Checking with NuSMV

Model checking Timber program. Paweł Pietrzak

Using Hybrid Automata for Early Spacecraft Design Evaluation

Asynchronous Models. Chapter Asynchronous Processes States, Inputs, and Outputs

Monitoring Interfaces for Faults

Reducing Clocks in Timed Automata while Preserving Bisimulation

Past Pushdown Timed Automata and Safety Verification

Model Checking CSMA/CD Protocol Using an Actor-Based Language

T Reactive Systems: Kripke Structures and Automata

Distributed Memory LTL Model Checking

Relational String Verification Using Multitrack

Parametric Real Time System Feasibility Analysis Using Parametric Timed Automata

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

Kronos: A Model-Checking Tool for Real-Time Systems*

VHDL framework for modeling fuzzy automata

CSE450. Translation of Programming Languages. Automata, Simple Language Design Principles

Building Graphical Promela Models using UPPAAL GUI

Seamless Formal Verification of Complex Event Processing Applications

Symbolic Model Checking

Assertion Checker Synthesis for FPGA Emulation

Model Requirements and JAVA Programs MVP 2 1

Leveraging DTrace for runtime verification

Design and Analysis of Distributed Interacting Systems

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

Symbolic Model Checking of Timed Automata using LTSmin

Lecture 2: Symbolic Model Checking With SAT

A Tutorial on Uppaal

Ten Diverse Formal Models for a CBTC Automatic Train Supervision System

To be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 COPYRIGHT 2011 ALCATEL-LUCENT. ALL RIGHTS RESERVED.

Timing Analysis of Distributed End-to-End Task Graphs with Model-Checking

Transcription:

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 Technology and Design, Singapore University of Technology and Design FM 2012: 18TH INTERNATIONAL SYMPOSIUM ON FORMAL METHODS

Timed Model Checking Timed Automata off x > 10 press press x := 0 dim press bright x 10 press Zone Set of valuations defined by a clock constraint ϕ = x c x y c ϕ ϕ where {<,, =, >, } Example: (x > 3) (x y > 1) Representation: DBM

Zone Abstraction: Example <off, x = 0> <dim, x = 0> <off, x 0> <bright, x = 0> <off, x > 0> <dim, x 0> <bright, x 10> <bright, x 0>

Digitization and the Use of BDD Real-time Model Checking is really Simple. Digitization and BDD BDD is less sensitive with the number of timed automata but very sensitive with large clock values. {id = 0} [id = 0] {c := 0} A {id := i; c := 0} [id = i && c b] B [c a] [id = 0] {c := 0} {id = 0} tick {c:= inc(c)} [id = 0] {c := 0} {id := i; c := 0} [id = i && c b] tick {c:= inc(c)} A B [c < a] tick {c:= inc(c)} [id = 0] {c := 0} tick {c:= inc(c)} where inc(c) = return(c M)?(c + 1) : c and M = b

Our Results bound 32 64 128 256 512 1024 2048 3096 PAT 0.5 1.4 5 17 68 293 1297 3018 time Rabbit 5.5 44 570 memory PAT 16 21 41 49 104 298 494 519 Table : Fischer s protocol with 4 processes time memory #proc 8 12 16 24 32 40 50 PAT 0.4 1.1 4 20 61 195 531 UPPAAL 1 200 Rabbit 1.6 4.4 12 60 180 473 1142 PAT 17 26 47 136 278 386 757 UPPAAL 29 629 Table : Fischer s protocol with time upper-bound 4

Encoding with Clocks Bool variables to encode clocks. Encoded similarly to a finite state machine. Commplex transition function. a = 1, b = 3: 2 boolean variables, and 3 boolean variables to encode states, and clock values respectively {id = 0} tick {c:= inc(c)} [id = 0] {c := 0} {id := i; c := 0} [id = i && c b] tick {c:= inc(c)} A B [c < a] tick {c:= inc(c)} [id = 0] {c := 0} tick {c:= inc(c)}

Encoding with Ticks Generate all tick transitions explicitly and remove clock variables Benefit: Simple transition function Use less boolean variables tick [id = 0] [id = 0] A tick exit {id = 0; counter--} {id := i} {id := i} B tick [id = i] {counter++} tick tick tick tick

Clocks vs. Ticks time (s) memory (Mb) #proc 4 5 6 7 8 without clock variables 0 0 0.1 0.2 0.4 with clock variables 0.6 15 513 without clock variables 21 22 23 24 26 with clock variables 32 70 425 Table : Compare two different approaches of encoding timing constraints

Encoding a Timed Automaton Generate a finite automaton without clock variable from timed automaton Encoding similarly as finite state machine. The encoding of a time automaton is a tuple B = ( V, v, Init, Trans, Out, In, Tick) V : set of unprimed Boolean variables encoding global variables v : set of variables encoding local variables Init: encoding of the initial state Out: encoding of channel out transitions Int: encoding of channel in transitions Tick: encoding of tick-transitions Trans: encoding of other transitions

More than a Trick Systems are composed hierarchically. Compositional functions: Parallel, Interleave, Unconditional Choice, Deadline, Timeout... Example of Interleave of two BDD machines B i = ( V, v i, Init i, Trans i, Out i, In i, Tick i ), i {0, 1} v = v 0 v 1 ; Init = Init 0 Init 1. Trans = i {0,1} [(Trans i v 1 i = v 1 i ) (In i Out 1 i )] where ( v 1 i = v 1 i ) denotes that the local variables of B 1 i are unchanged. In = i {0,1} (In i v 1 i = v 1 i ) Out = i {0,1} (Out i v 1 i = v 1 i ) Tick = Tick 0 Tick 1

Implementation in PAT Use CUDD package Implemented in PAT framework PAT is available at http://www.patroot.com/ 1M lines of C# code, 21 modules with 100+ build in examples Used as an educational tool in e.g. York Univ., Univ. of Auckland, NII (Japan), NUS... 2000+ registered users from 400+ organizations in 52 countries and regions.

Implementation in PAT

More Experiments bound 8/248 12/372 16/497 20/621 26/808 40/1243 PAT 5 10 21 35 67 205 time Rabbit 10 32.7 67 90 342 1160 memory PAT 31 72 126 245 468 518 Table : CSMA/CD with 4 processes time memory #proc 8 10 12 14 16 32 64 128 PAT 0.3 0.3 0.4 0.6 0.8 5 45 593 UPPAAL 0.4 3.0 22.9 163 Rabbit 1 1 1.3 1.4 1.5 3 16.1 80 PAT 16 17 18 25 28 73 312 661 UPPAAL 29 51 292 1894 Table : CSMA/CD with time upper-bound 1/4

More Experiments bound 20 40 80 160 320 640 1280 2560 PAT 0.5 1.3 4 9 29 105 428 1853 time Rabbit 2.6 5.3 13.4 54.4 256 1510 memory PAT 17 24 31 35 62 122 303 446 Table : Railway control system with 4 stations time memory #proc 6 7 8 9 10 PAT 1.8 6 16 58 169 UPPAAL 0.2 1.1 7.9 83.1 Rabbit 53 805 PAT 33 64 170 460 715 UPPAAL 26 36 111 835 Table : Railway control system with time upper-bound 5

More Experiments Model Fischer Railway Control CSMA/CD #proc 6 8 10 12 14 16 6 7 8 9 4 6 8 9 PAT 5 39 177 599 1653 4345 14 48 157 887 0.2 3 24 106 +Zeno UPPAAL 2.3 6711 0.4 2.6 24.1 242 0 0.6 662 -Zeno PAT 9 59 269 980 3014 21 66 207 1006 0.4 5 55 368 Table : LTL model checking with/without non-zenoness

Conclusion and Future Work Develop a BDD library for timed verification in PAT. Applied to 2 different languages. Our approach is efficient by not using clock variables. Extend our library for probabilistic verification.