CADP 2006: A Toolbox for the Construction and Analysis of Distributed Processes

Similar documents
CADP 2010: A Toolbox for the Construction and Analysis of Distributed Processes

X-Kaapi C programming interface

Tacked Link List - An Improved Linked List for Advance Resource Reservation

Comparator: A Tool for Quantifying Behavioural Compatibility

Fault-Tolerant Storage Servers for the Databases of Redundant Web Servers in a Computing Grid

Multimedia CTI Services for Telecommunication Systems

A Set of Performance and Dependability Analysis Components for CADP

PARAM: A Model Checker for Parametric Markov Models

Real-Time Collision Detection for Dynamic Virtual Environments

BoxPlot++ Zeina Azmeh, Fady Hamoui, Marianne Huchard. To cite this version: HAL Id: lirmm

Traffic Grooming in Bidirectional WDM Ring Networks

Every 3-connected, essentially 11-connected line graph is hamiltonian

Adaptation of Asynchronously Communicating Software

Formal modelling of ontologies within Event-B

Change Detection System for the Maintenance of Automated Testing

DANCer: Dynamic Attributed Network with Community Structure Generator

Reverse-engineering of UML 2.0 Sequence Diagrams from Execution Traces

A Methodology for Improving Software Design Lifecycle in Embedded Control Systems

An FCA Framework for Knowledge Discovery in SPARQL Query Answers

Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs

Computing and maximizing the exact reliability of wireless backhaul networks

A Practical Evaluation Method of Network Traffic Load for Capacity Planning

Quality of Service Enhancement by Using an Integer Bloom Filter Based Data Deduplication Mechanism in the Cloud Storage Environment

Setup of epiphytic assistance systems with SEPIA

QAKiS: an Open Domain QA System based on Relational Patterns

NP versus PSPACE. Frank Vega. To cite this version: HAL Id: hal

Structuring the First Steps of Requirements Elicitation

Assisted Policy Management for SPARQL Endpoints Access Control

Service Reconfiguration in the DANAH Assistive System

A Resource Discovery Algorithm in Mobile Grid Computing based on IP-paging Scheme

Technical Overview of F-Interop

An Efficient Numerical Inverse Scattering Algorithm for Generalized Zakharov-Shabat Equations with Two Potential Functions

Relabeling nodes according to the structure of the graph

FIT IoT-LAB: The Largest IoT Open Experimental Testbed

Developing interfaces for the TRANUS system

Lossless and Lossy Minimal Redundancy Pyramidal Decomposition for Scalable Image Compression Technique

ASAP.V2 and ASAP.V3: Sequential optimization of an Algorithm Selector and a Scheduler

Representation of Finite Games as Network Congestion Games

SVL: A SCRIPTING LANGUAGE FOR COMPOSITIONAL VERIFICATION

Acyclic Coloring of Graphs of Maximum Degree

Scalewelis: a Scalable Query-based Faceted Search System on Top of SPARQL Endpoints

Fuzzy sensor for the perception of colour

YANG-Based Configuration Modeling - The SecSIP IPS Case Study

Linked data from your pocket: The Android RDFContentProvider

The SANTE Tool: Value Analysis, Program Slicing and Test Generation for C Program Debugging

Formal Specification and Verification of Fully Asynchronous Implementations of the Data Encryption Standard

Realizability of Choreographies using Process Algebra Encodings

QuickRanking: Fast Algorithm For Sorting And Ranking Data

HySCaS: Hybrid Stereoscopic Calibration Software

Deformetrica: a software for statistical analysis of anatomical shapes

Dynamic Workflows for Multiphysics Design

THE COVERING OF ANCHORED RECTANGLES UP TO FIVE POINTS

Type Feedback for Bytecode Interpreters

LaHC at CLEF 2015 SBS Lab

A Voronoi-Based Hybrid Meshing Method

UsiXML Extension for Awareness Support

Prototype Selection Methods for On-line HWR

Asynchronous synthesis techniques for coordinating autonomic managers in the cloud

Malware models for network and service management

Application of RMAN Backup Technology in the Agricultural Products Wholesale Market System

Linux: Understanding Process-Level Power Consumption

Natural Language Based User Interface for On-Demand Service Composition

A N-dimensional Stochastic Control Algorithm for Electricity Asset Management on PC cluster and Blue Gene Supercomputer

KeyGlasses : Semi-transparent keys to optimize text input on virtual keyboard

TiPEX: A Tool Chain for Timed Property Enforcement During execution

LIG and LIRIS at TRECVID 2008: High Level Feature Extraction and Collaborative Annotation

Building Petri nets tools around Neco compiler

On the Semantics of Communicating Hardware Processes and their Translation into LOTOS for the Verification of Asynchronous Circuits with CADP

Scheduling Moldable Tasks for Dynamic SMP Clusters in SoC Technology

Stream Ciphers: A Practical Solution for Efficient Homomorphic-Ciphertext Compression

Generative Programming from a Domain-Specific Language Viewpoint

Moveability and Collision Analysis for Fully-Parallel Manipulators

Finding Your Way in a Forest: On Different Types of Trees and Their Properties

SDLS: a Matlab package for solving conic least-squares problems

Catalogue of architectural patterns characterized by constraint components, Version 1.0

Search-Based Testing for Embedded Telecom Software with Complex Input Structures

Kernel perfect and critical kernel imperfect digraphs structure

Using Isolation Spheres for Cooperative Processes Correctness

Mokka, main guidelines and future

lambda-min Decoding Algorithm of Regular and Irregular LDPC Codes

Sewelis: Exploring and Editing an RDF Base in an Expressive and Interactive Way

The Animation Loop Station: Near Real-Time Animation Production

Implementing an Automatic Functional Test Pattern Generation for Mixed-Signal Boards in a Maintenance Context

MUTE: A Peer-to-Peer Web-based Real-time Collaborative Editor

How to simulate a volume-controlled flooding with mathematical morphology operators?

TIV: A Toolset for Interactive Verification of Basic LOTOS Specifications

Comparison of radiosity and ray-tracing methods for coupled rooms

Efficient implementation of interval matrix multiplication

Inverting the Reflectance Map with Binary Search

A Generic Architecture of CCSDS Low Density Parity Check Decoder for Near-Earth Applications

MARTE based design approach for targeting Reconfigurable Architectures

The New Territory of Lightweight Security in a Cloud Computing Environment

A case-based reasoning approach for unknown class invoice processing

Experimental Evaluation of an IEC Station Bus Communication Reliability

Regularization parameter estimation for non-negative hyperspectral image deconvolution:supplementary material

Counterexample Guided Synthesis of Monitors for Realizability Enforcement. Matthias Güdemann Gwen Salaün Meriem Ouederni

Privacy-preserving carpooling

SPECIFICATION AND VERIFICATION OF A DYNAMIC RECONFIGURATION PROTOCOL FOR AGENT-BASED APPLICATIONS

Blind Browsing on Hand-Held Devices: Touching the Web... to Understand it Better

Comparison of spatial indexes

Transcription:

CADP 2006: A Toolbox for the Construction and Analysis of Distributed Processes Hubert Garavel, Frédéric Lang, Radu Mateescu, Wendelin Serwe To cite this version: Hubert Garavel, Frédéric Lang, Radu Mateescu, Wendelin Serwe. CADP 2006: A Toolbox for the Construction and Analysis of Distributed Processes. Werner Damm and Holger Hermanns. Computer Aided Verification (CAV 2007), Jul 2007, Berlin, Germany. 4590, pp.158-163, 2007, Lecture Notes in Computer Science. <inria-00189021> HAL Id: inria-00189021 https://hal.inria.fr/inria-00189021 Submitted on 19 Nov 2007 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

CADP 2006: A Toolbox for the Construction and Analysis of Distributed Processes Hubert Garavel, Radu Mateescu, Frédéric Lang, and Wendelin Serwe Inria Centre de recherche Rhône-Alpes / Vasy 655, avenue de l Europe, Montbonnot, 38 334 Saint Ismier Cedex, France {Hubert.Garavel,Radu.Mateescu,Frederic.Lang,Wendelin.Serwe}@inria.fr 1 Introduction Cadp (Construction and Analysis of Distributed Processes) 1 [2, 3] is a toolbox for specification, rapid prototyping, verification, testing, and performance evaluation of asynchronous systems (concurrent processes with message-passing communication). The developments of Cadp during the last five years led to a new release named Cadp 2006 Edinburgh (as a tribute to the achievements in concurrency theory of the Laboratory for Foundations of Computer Science) that supersedes the previous version Cadp 2001. 2 Modular Integration of Verification Techniques Cadp 2006 includes a complete range of functionalities for the design of asynchronous systems: code generation, rapid prototyping, random, interactive, or guided simulation, explicit-state verification, test case generation, and performance evaluation. Cadp accepts as input either networks of communicating automata or higher-level specification languages, such as the Iso standard Lotos. Many Cadp tools operate on Labeled Transition Systems (Ltss), which are represented either explicitly, as compact binary files encoded in the Bcg (Binary Coded Graphs) format, or implicitly, as C programs implementing the transition relation according to the Open/Cæsar Api (Application Programming Interface). Three forms of verification are supported by Cadp: visual checking (graphical inspection of an Lts), model checking (satisfaction of a modal µ- calculus formula by an Lts), and equivalence checking (comparison of two Ltss with respect to some equivalence/preorder relation). To address the state space explosion problem, Cadp 2006 provides the following verification techniques 2 : Compositional verification builds the Lts of a concurrent system incrementally by generating, minimizing, and recomposing the Ltss of individual processes. Refined compositional verification uses interface constraints (specified 1 http://www.inrialpes.fr/vasy/cadp 2 Related verification tools are listed at http://anna.fi.muni.cz/yahoda

manually or synthesized automatically) that restrict the behaviour of a process depending on its environment, thus limiting the size of intermediate Ltss. On-the-fly verification avoids the complete construction of an Lts by exploring only the portion relevant for verification. Model checking and equivalence checking are reformulated in terms of Boolean Equation Systems (Bess), which are solved on-the-fly using specialized linear-time algorithms. Partial order reductions, performed on-the-fly, reduce the Lts size by eliminating redundancies arising from the interleaving of independent transitions, still preserving various equivalence relations (branching bisimulation, weak trace equivalence, etc.). Static analysis aims at reducing the size of the Ltss generated from a system description, still preserving strong bisimulation. Massively parallel verification handles very large Ltss by using the computing resources of machine clusters and grids. A key feature of Cadp is to allow all these techniques to be combined in a highly modular way within the same software environment. Three examples of such combinations that cumulate the reductions and scale up to larger systems are: 1. One can use a grid to generate the Lts corresponding to a Lotos specification, while applying static analysis and on-the-fly τ-confluence reduction simultaneously. 2. One can model check on-the-fly whether a µ-calculus formula is satisfied by a network of communicating Ltss, while applying partial order reduction. 3. One can compare on-the-fly an Lts to a network of communicating Ltss that have been previously generated (taking into account refined interface constraints) and minimized for some bisimulation. The tools of Cadp can be invoked either interactively, by using the Eucalyptus graphical user interface, or in batch mode, by describing the desired verification scenario as a script in the Svl language. 3 New and Enhanced Tools in CADP 2006 Cadp 2006 offers 42 tools and 20 generic software libraries dedicated to verification. Numerous tools existing in Cadp 2001 were entirely rewritten or significantly improved, and 15 new tools and code libraries were added: Bcg Graph generates several useful kinds of Ltss in the Bcg format, such as bags, Fifo queues, and chaos Ltss. Bcg Merge [5] produces a single Bcg file from a Pbg file (see the Distributor tool below). It is equipped with a graphical tool to monitor the Lts generation interactively.

Bcg Steady and Bcg Transient [7] perform steady-state and transient analysis of an (extended) Ctmc (Continuous-Time Markov Chain) encoded in the Bcg format. Bisimulator [11,1] compares two Ltss on-the-fly modulo one out of 14 behavioural relations (strong, branching, observational, τ.a, safety, trace, or weak trace equivalences and their associated preorders). The equivalence checking problem is reformulated as a Bes, which is solved using the Cæsar Solve library below. When both Ltss are not related, Bisimulator generates a counterexample, i.e., an acyclic Lts containing distinguishing transition sequences. Compared with former Cadp tools, Bisimulator is more efficient and generates smaller counterexamples. Cæsar 7.0 [6] is a compiler for the behaviour part of Lotos. Among other improvements, Cæsar 7.0 implements a static analysis based on live variable analysis, which assigns a canonical value to variables that are no longer used, thus avoiding to distinguish states that only differ by values of variables not used in the future. Compared to its previous version 6.2, Cæsar 7.0 can reduce Lts size by several orders of magnitude (e.g., 10 4 ), thus allowing larger Lotos specifications to be handled. Cæsar.Bdd uses Binary Decision Diagrams to perform various structural analyses on basic Petri nets, such as exploring reachable markings to determine the set of dead transitions and the pairs of concurrent units. Cæsar Solve [11] is a generic software library for on-the-fly resolution of Bess, represented as implicit boolean graphs similarly to Ltss in Open/Cæsar. It offers 6 resolution algorithms, based on breadth-first search or depth-first search (with memory-efficient variants for acyclic or disjunctive/conjunctive BESs) strategies, which also generate diagnostics (boolean subgraphs) explaining the truth value of boolean variables. Determinator [7] takes as input an extended Ctmc encoded in the Bcg format and tries to extract on-the-fly a pure Ctmc (i.e., containing only stochastic transitions). Doing so, the tool checks a sufficient condition ensuring that the resulting Ctmc is unique, or returns an error otherwise. Distributor [5] performs distributed Lts generation and on-the-fly reduction by τ-compression and τ-confluence [10] using several machines connected by a network. It launches a remote process on each machine to generate a fragment of the entire Lts. The result of the distributed generation is a Pbg (Partitioned Bcg Graph), i.e., a set of Lts fragments located on remote machines. Distributor is equipped with a graphical tool to monitor the Pbg generation in real-time. Evaluator 3.5 [12, 11] evaluates on-the-fly, on an Lts, temporal properties expressed in regular alternation-free µ-calculus. The model checking problem is reformulated as a Bes, which is solved using the Cæsar Solve library. The tool generates full diagnostics (examples and counterexamples) and optimizes memory consumption (i.e., does not store the transitions, but only the states of the Lts) for a large spectrum of properties. Evaluator 3.5 is 3 times faster and consumes 3 times less memory than Evaluator 3.0.

Exp.Open 2.0 [8] maps communicating Ltss composed using synchronization vectors, parallel composition operators (from Ccs, Csp, µcrl, Lotos, and E-Lotos), and/or generalized hide, rename, and cut operators onto the Open/Cæsar Api. It implements partial order reductions preserving various equivalences (e.g., branching, stochastic, weak trace equivalence). It can also translate communicating Ltss into the Pep, Tina, and Fc2 formats, and can synthesize interface constraints for refined compositional verification [9]. Exp.Open 2.0 uses 2 times less memory and is up to 45 times faster than Exp.Open 1.0. Projector 2.0 [13] reduces an Lts on-the-fly with respect to interface constraints represented by another Lts and a set of labels. Among its new features, Projector 2.0 allows to describe the set of labels more compactly by the way of regular expressions. Experiments indicate that Projector 2.0 is up to 4 times faster than Projector 1.0. Reductor 5.0 reduces an Lts on-the-fly, either partially or totally, modulo one out of 8 relations (trace, weak trace, τ.a, and safety equivalences, τ- confluence, τ-compression, τ-divergence [10], and strong bisimulation), possibly displaying the equivalence classes of the quotient graph. Some of these reductions perform a local resolution of a Bes using Cæsar Solve. The algorithm used by Reductor 5.0 to eliminate invisible transitions has a lower average complexity than in earlier versions. Seq.Open [4] maps traces onto the Open/Cæsar Api. It implements an optimized representation of a trace as an Lts without storing the whole trace in memory, which is also significantly more efficient (up to 50 times faster) than converting the trace first into a Bcg file. Notice that the Aldébaran tool (available since the origin of Cadp) was replaced in Cadp 2006 by a (upward-compatible) shell script that invokes Bisimulator, Bcg Info, Bcg Min, and Reductor to provide the same functionalities as Aldébaran. 4 Conclusion Cadp 2006 Edinburgh is the result of five years of intensive R&D in verification technology. Four computing platforms are currently supported: Sparc/Solaris, Intel/Linux, Intel/Windows, and PowerPC/Mac OS. As regards impact, 366 organizations have signed the Cadp license agreement already, and Cadp has been installed on 820 machines in the world during year 2006. Cadp was used for 94 case-studies 3 and 29 research tools 4 are connected to Cadp. Most notably, in the FormalFame project, Cadp was successfully used to validate crucial parts of Bull s NovaScale machines, which form the core of Tera10, Europe s most powerful supercomputer. 3 listed at http://www.inrialpes.fr/vasy/cadp/case-studies 4 listed at http://www.inrialpes.fr/vasy/cadp/software

Cadp will continue to be enhanced in the next years. In particular, we plan to apply Cadp in three main areas: software environments for critical embedded systems (French projects OpenEmbedd and Topcased), high-performance multiprocessor architectures (French project Multival), and bio-informatics (European project Ec-Moan, where Cadp will contribute to the understanding of a bacterial model system). Acknowledgements. Damien Bergamini, David Champelovier, Adrian Curic, Nicolas Descoubes, Holger Hermanns, Christophe Joubert, Bruno Ondet, Gordon Pace, Frédéric Perret, Irina Smarandache-Sturm, Gilles Stragier, Frédéric Tronel, and Marie Vidal contributed to Cadp 2006. The authors are also grateful to the 79 Cadp users 5 whose suggestions led to numerous Cadp enhancements. References 1. D. Bergamini, N. Descoubes, C. Joubert, and R. Mateescu. BISIMULATOR: A Modular Tool for On-the-Fly Equivalence Checking. In Proc. of TACAS 2005, vol. 3440 of Lncs, 2005. 2. J.-C. Fernandez, H. Garavel, A. Kerbrat, R. Mateescu, L. Mounier, and M. Sighireanu. CADP (CÆSAR/ALDEBARAN Development Package): A Protocol Validation and Verification Toolbox. In Proc. of CAV 96, vol. 1102 of Lncs, 1996. 3. H. Garavel, F. Lang, and R. Mateescu. An Overview of CADP 2001. EASST Newsletter, 4:13 24, 2002. Also available as INRIA Technical Report RT-0254. 4. H. Garavel and R. Mateescu. SEQ.OPEN: A Tool for Efficient Trace-Based Verification. In Proc. of SPIN 2004, vol. 2989 of Lncs, 2004. 5. H. Garavel, R. Mateescu, D. Bergamini, A. Curic, N. Descoubes, C. Joubert, I. Smarandache-Sturm, and G. Stragier. DISTRIBUTOR and BCG MERGE: Tools for Distributed Explicit State Space Generation. In Proc. of TACAS 2006, vol. 2989 of Lncs, 2006. 6. H. Garavel and W. Serwe. State Space Reduction for Process Algebra Specifications. Theoretical Computer Science, 351(2):131 145, 2006. 7. H. Hermanns and C. Joubert. A Set of Performance and Dependability Analysis Components for CADP. In Proc. of TACAS 2003, vol. 2619 of Lncs, 2003. 8. F. Lang. EXP.OPEN 2.0: A Flexible Tool Integrating Partial Order, Compositional, and On-the-fly Verification Methods. In Proc. of IFM 2005, vol. 3771 of Lncs, 2005. 9. F. Lang. Refined Interfaces for Compositional Verification. In Proc. of FORTE 2006, vol. 4229 of Lncs, 2006. 10. R. Mateescu. On-the-fly State Space Reductions for Weak Equivalences. In Proc. of FMICS 05. ACM Computer Society Press, 2005. 11. R. Mateescu. CAESAR SOLVE: A Generic Library for On-the-Fly Resolution of Alternation-Free Boolean Equation Systems. Springer International Journal on Software Tools for Technology Transfer (STTT), 8(1):37 56, February 2006. 12. R. Mateescu and M. Sighireanu. Efficient On-the-Fly Model-Checking for Regular Alternation-Free Mu-Calculus. In Science of Computer Programming, 46(3):255 281, 2003. 13. G. Pace, F. Lang, and R. Mateescu. Calculating τ-confluence Compositionally. In Proc. of CAV 2003, vol. 2725 of Lncs, 2003. 5 listed at http://www.inrialpes.fr/vasy/cadp/news6.html