S oftware

I've been developping quite a few softwares since I'm part of the Validation of Systems (VASY) project at Rhône-Alpes research unit of INRIA, back in July 2000. Since then, I have been participating to the development of the Construction and Analysis of Distributed Processes (CADP) toolbox.

CAESAR_SOLVE

(top)

CAESAR_SOLVE_1 is the "solve_1" library of OPEN/CAESAR environment part of CADP

Contribution:
The "solve_1" library provides primitives for solving alternation-free boolean equation systems "on-the-fly". I made an extension of this library by designing and implementing two distributed memory algorithms solving alternation-free boolean equation systems "on-the-fly". This extension, so far called "solve_2", has not yet been integrated to CADP. "solve_2" (10 000 lines of C code) can be used as a back-end for various on-the-fly verification tools which formulate their corresponding problems (e.g., equivalence checking, model checking, tau-confluence reduction, etc.) in terms of boolean equation systems.
Documentation:
CADP web page
Overview publication on OPEN/CAESAR
Description of one of the distributed algorithms present in "solve_2"
Papers on boolean equation systems resolution and application to model checking
2004 activity report of the VASY team
2003 activity report of the VASY team
2002 activity report of the VASY team
2001 activity report of the VASY team
2000 activity report of the VASY team
1999 activity report of the VASY team
Demo examples:
BISIMULATOR, TAU_CONFLUENCE, EVALUATOR and EXTRACTOR make use of these new libraries ("solve_1" and "solve_2"). Only the "solve_1" versions of these tools are integrated into current version of CADP. As an example of use of "solve_1" (or "solve_2") EXTRACTOR will soon be available as open source in the CADP toolbox.

BISIMULATOR

(top)

BISIMULATOR is an on-the-fly equivalence/preorder checker based on OPEN/CAESAR environment part of CADP

Contribution:
BISIMULATOR performs an on-the-fly comparison of two LTSs modulo a given equivalence/preorder relation. The tool is based upon a translation of the equivalence/preorder checking problem into the resolution of a boolean equation system, which is performed on-the-fly using the algorithms provided by the "solve_1" library. I have participated to the connection of the front-end of BISIMULATOR with the "solve_2" back-end through the use of one of the distributed algorithms I designed and implemented.
Documentation:
CADP web page
Overview publication on OPEN/CAESAR
article at TACAS'2005
article at PDMC'2004
article at STTT
2004 activity report of the VASY team
2003 activity report of the VASY team
2002 activity report of the VASY team
2001 activity report of the VASY team
Demo examples:
All demos on the CADP online demo examples web page that need an equivalence/preorder checker make use of BISIMULATOR.
Tool demonstration:
You will find in Bergamini-Descoubes-Joubert-Mateescu-05-Annexe.pdf the main frame of our BISIMULATOR (using "solve_1" and "solve_2") tool demonstration at TACAS'2005.

TAU_CONFLUENCE

(top)

TAU_CONFLUENCE is an on-the-fly partial order reductor based on OPEN/CAESAR environment part of CADP

Contribution:
TAU_CONFLUENCE consists in identifying, for each state s, the set C(s) of confluent tau-transitions going out of s, meaning that after their execution any other transition going out of s can still be executed. The reduction consists in eliminating all transitions going out of s except those in C(s). This tool encodes the definition of tau-confluence as a boolean equation system, which is solved on the fly using the general algorithms A1 and A2 provided by the CÆSAR_SOLVE library. I have participated to the connection of the front-end of TAU_CONFLUENCE with the "solve_2" back-end through the use of one of the distributed algorithms I designed and implemented.
Documentation:
CADP web page
Overview publication on OPEN/CAESAR
article at CAV'2003
article submitted to FMSD
2004 activity report of the VASY team
2003 activity report of the VASY team
Demo examples:
The TAU_CONFLUENCE module has successfully been used by other tools of the CADP toolbox, namely for tau*.a equivalence checking with BISIMULATOR and BCG graph generation using reachability analysis combined with on-the-fly tau*.a reduction with REDUCTOR.

EVALUATOR

(top)

EVALUATOR is an on-the-fly model checker of regular alternation-free mu-calculus formulas, based on OPEN/CAESAR environment part of CADP

Contribution:
EVALUATOR performs an on-the-fly verification of a temporal property on a given LTS. The result of this verification (TRUE or FALSE) is returned, possibly accompanied by a diagnostic. The tool is based upon a translation of the model checking problem into the resolution of a boolean equation system, which is performed on-the-fly using the algorithms provided by the "solve_1" library. I have participated to the connection of the front-end of EVALUATOR with the "solve_2" back-end through the use of one of the distributed resolution algorithms I have designed and implemented.
Documentation:
CADP web page
Overview publication on OPEN/CAESAR
article at TACAS'2002
article at TSI
Papers on boolean equation systems resolution and application to model checking
2004 activity report of the VASY team
2003 activity report of the VASY team
2002 activity report of the VASY team
2001 activity report of the VASY team
2000 activity report of the VASY team
1999 activity report of the VASY team
Demo examples:
All demos on the CADP online demo examples web page that need a model checker make use of EVALUATOR.

EXTRACTOR

(top)

soon available...

HORN_CLAUSE

(top)

soon available...

PDAC

(top)

PDAC is a set of performance and dependability analysis components that has been integrated to CADP.

Contribution:
I have contributed to the design and implementation to the three following PDAC tools: a transient numerical analyser of (extended) continuous-time Markov chains encoded in the BCG format (BCG_TRANSIENT), a steady-state numerical analysis of (extended) continuous-time Markov chains encoded in the BCG format (BCG_STEADY), and an eliminator of nondeterminism for normal, probabilistic, or stochastic systems (DETERMINATOR).
Documentation:
CADP web page
article at FME'2002
article at TACAS'2003
2004 activity report of the VASY team
2003 activity report of the VASY team
2002 activity report of the VASY team
Demo examples:
demo_30 and demo_31 make use of these new tools and are available from the CADP online demo examples web page.
Tool demonstration:
You will find in Hermanns-Joubert-05-Annexe.pdf the main frame of our tool demonstration at TACAS'2003.
An obsolete web page of PDAC, as it was demonstrated at TACAS'2003, can be found here : http://fmt.cs.utwente.nl/tools/pdac/

DISTRIBUTOR

(top)

DISTRIBUTOR is a state space generator, part of CADP, using distributed reachability analysis

Contribution:
I first worked on DISTRIBUTOR back in 2002 during my master in computer science. I contributed to the correction of version V2.0 of DISTRIBUTOR before redesigning the algorithm (order of distributed tasks, priority between computation and communication, distributed termination detection, protocol of distributed dynamic data structures coherency) which has been integrated in current version (V3.0) of DISTRIBUTOR.
Documentation:
CADP web page
article at SPIN'2001
master research report
2004 activity report of the VASY team
2003 activity report of the VASY team
2002 activity report of the VASY team
2001 activity report of the VASY team
2000 activity report of the VASY team
1999 activity report of the VASY team
Demo examples:
from demo_02 available from the CADP online demo examples web page, you can make use of DISTRIBUTOR by constructing a .gcf file that contain the following example lines:
localhost
directory=/tmp/A
localhost
directory=/tmp/B
localhost
directory=/tmp/C
this specifies a network of three processes (in the parallel.gcf above example, all processes are local to the same machine (user local machine)), and three different working directories (one for each process). Then, by running the following command line:
caesar.open bitalt_protocol.lotos distributor.a -monitor parallel.gcf bitalt_protocol.pbg
you'll distribute the generation of alternating bit protocol with 4 messages, over three processes. Once the generation is done, you can merge the partitioned LTS into one LTS by using the BCG_MERGE tool simply as following:
bcg_merge bitalt_protocol.pbg
That's it! You've got your final merged generated LTS of the alternating bit protocol with 4 different messages.
There will be soon more demo examples of DISTRIBUTOR on the CADP online demo examples web page.
Valid XHTML 1.0!
Christophe.Joubert@inrialpes.fr

Last modification : 05/04/27 15:26:00

Valid CSS!