The IST library is a C library that
provides a set of functions together with the IST data structure to
manipulate interval constraints (i.e. contraints of the form
![$ x \in [a,b]$](IST_files/img1.png)
where

)
in a multi-dimensional space. More precisely, the sets that can
be represented by IST are the sets that can be defined by formulas
constructed from the following grammar
where boolean connectors have the usual semantics.
IST is an extension of the CST (
Covering
Sharing Trees) [DR00,DRV04] data structure based on the
Sharing Tree data structure [Zam97]. CST
allows to represent the sets that can be defined by formulas constructed
from the following grammar
Additionally to the traditional operations on sets [GMD+07,Gan02], some useful
operations for the verification of discrete systems have been implemented
[Van03, Gan02, DRV02]. An example of discrete systems which are handled by the
library are models obtained by applying a so-called counting abstraction on
abstractions of multi-threaded Java programs. The verification problem that is
solved using the library is the coverability problem (a mild form of the
reachability problem). We developed some coverability checking tools. More
information is given in the section about coverability checkers.
People involved in the development of the Interval Sharing Tree:
Pierre Ganty
Laurent Van Begin
Giorgio Delzanno
Jean-François Raskin
References
[GMD+07] Pierre Ganty, Cédric Meuter, Giorgio Delzanno, Gabriel Kalyon, Jean-François Raskin, Laurent Van Begin.
Symbolic Data Structure for sets of k-uples.
Technical Report 570, Université Libre de Bruxelles, 2007.
[GVanB07] Pierre Ganty, Laurent Van Begin.
Non Deterministic Automata for the Efficient Representation of Infinite-state Systems.
Proceedings of CP+CV, 1st workshop on Constraint Programming and Constraints for Verification, Barcelona, Spain, 2004.
[DR00] Giorgio Delzanno and Jean-François Raskin.
Symbolic Representation of Upward-Closed
Sets. In the proceedings of the 6th International Conference on
Tools and Algorithms for Construction and Analysis of Systems
(TACAS'00), Lecture Notes in Computer Science 1785, pages 426--440,
Springer, 2000.
[DRV04] Giorgio Delzanno, Jean-François Raskin and Laurent Van
Begin.
CSTs (Covering Sharing
Trees): compact Data Structures for Parameterized Verification.
Will appear in Software Tools for Technology Transfer manuscript, 2004.
[Gan02] Pierre Ganty.
Algorithmes et
structures de données efficaces pour la manipulation de
contraintes sur les intervalles. Master's Thesis,
Université Libre de Bruxelles, Bruxelles, Belgium, 2002.
[Zam97] Denis Zampuniéris.
The
Sharing Tree data structure: Theory and Applications in Formal
Verification. Ph.D. Thesis, Facultés Universitaires
Notre-Dame de la Paix, Namur, Belgium.
Coverability Checkers
On the top of the IST library we have implemented several tools to decide the
coverability problem for Petri net and monotonic extensions of the model. The
coverability problem is a weaker version of reachability problem. Those tools
implements forward/backward search of the state space using a symbolic data
structure (the IST library). On top of that, efficient techniques have been
implemented to tackle the state explosion problem. Those includes
abstraction-refinement techniques [GGVanbR09,GVanbR09] or efficient traversal
techniques of the state space [DRV01]. The coverability problem is solved on
the Petri net model [DRV01,GGVanbR09,GVanbR09] and on an extension called
Multi-Transfers Net (MTN for short) [DRV02]. Petri nets are useful to model a
wide range of parametric systems (concurrent systems where the number of process
is a priori not known). MTNs allows to model abstractions of multi-threaded
Java programs that forget the identity of the threads using a counting
abstraction but model precisely the synchronization primitive between threads (notify,
notifyall primitives).
There are four different coverability checkers based on various techniques.
-
backward: for Petri nets and MTN, backward state space search from the target
states, uses places invariant to prune the search. In the above context the
algorithm always terminates. The algorithm also handles the case when the
target set of states is not upward closed or when the guards of the transitions
are not upward closed. However termination is not guaranteed anymore. A
detailed description of the algorithm is given in [Gan02,Van03].
-
ic4pn: for Petri nets only, abstraction refinement algorithm that combines
forward and backward state space traversal. The abstraction used in there
tries to minimize the dimensionality of the underlying Petri net as described
in [GVanbR09].
-
tsi: for Petri nets only, abstraction refinement algorithm that combines
forward and backward state space traversal. The abstraction tries to minimize
the number of predicate used for each place in the Petri net as described in
[GGVanbR09].
-
eec: for Petri nets only, abstraction refinement algorithm that combines
forward and backward state space traversal. The abstraction tries to minimize
the number of predicate used for each place in the Petri net as described in
[Gee07]. (eec is used internally by tsi and ic4pn).
More details here.
The various coverability checkers are described in the following papers:
References
[GGVanbR09] Pierre Ganty, Gilles Geeraerts, Jean-François Raskin and Laurent Van Begin.
Méthodes algorithmiques pour l'analyse des réseaux de Petri.
Journal of Techniques et Sciences Informatiques 28, 2009.
[GVanbR09] Pierre Ganty, Jean-François Raskin and Laurent Van Begin.
From Many Places to Few: Automatic Abstraction Refinement for Petri Nets.
Invited extended version. Fundamenta Informaticae 88 (3), 275--305, 2008.
[Gee07] Gilles Geeraerts.
Coverability and Expressiveness Properties of Well-structured Transitions Systems.
Ph.D. Thesis, Université Libre de Bruxelles, Bruxelles, Belgium, 2007.
[Van03] Laurent Van Begin.
Efficient
Verification of Counting Abstractions for Parametric systems.
Ph.D. Thesis, Université Libre de Bruxelles, Bruxelles, Belgium, 2003.
[DRV01] Giorgio Delzanno, Jean-François Raskin and Laurent Van
Begin.
Attacking Symbolic State
Explosion. In the proceedings of the 13th International
Conference on Computer-aided Verification (CAV'01), Lecture Notes in
Computer Science 2102, pages 298--310, Springer, 2001.
[DRV02] Giorgio Delzanno, Jean-François Raskin and Laurent Van
Begin.
Towards the Automated
Verification of Multithreaded Java Programs. In the proceedings of
the 8th International Conference on Tools and Algorithms for
Construction and Analysis of Systems (TACAS'02), Lecture Notes in
Computer Science 2280, pages 173--187, Springer, 2002.
Download
The source code of the coverability checkers is under the GPL license and
available
here (updated 05-Jun-09).
Input format
S ::= vars
set_of_vars
rules
set_of_rules
init
init_states
target
target_states
invariants
invariant_set
set_of_vars::= variable , set_of_vars
| variable
set_of_rules::= guard -> effect; set_of_rules
| epsilon
guard ::= guard_atom , guard
| guard_atom
guard_atom ::= variable >= integer
| variable =integer
| variable in [integer, integer]
effect ::= effect_atom , effect
| effect_atom
effect_atom ::= variable' = assignment_var
assignment_var ::= variable + assignment_var
| integer
init_states ::= guard init_states
| guard
target_states ::= guard target_states
| guard
invariant_set ::= invariant EOL invariant_set
| epsilon
invariant ::= invariant_atom , invariant
| invariant_atom
invariant_atom::=variable = integer
Remarks
- EOL means end of line
- in production rule effect_atom, unless specified otherwise, we assume
x'=x+0. Also x+0 can be abbreviated to x
-
in production rule effect_atom, the effect that is described must corresponds to a Petri net transition or
to a Petri net extension transition (see the references).
-
in production rule assignment_var, + followed by - followed by an integer is abbreviated as - followed by an integer.
e.g. x' = y+-2 is abbreviated to x'=y-2.
-
in production rule invariant_atom x=c expresses that, in the equation specifying the invariant, c is the coefficient of
variable x.
Example
Computing the Coverability Set
If you are interested in computing the coverability set see
CSC.
Back to my homepage
Updated: Sun Jun 27 23:20:03 CEST 2010
Copyright © 2010 Pierre Ganty