Towards Distributed Software Model-Checking
Using Decision Diagrams
⋆
Maximilien Colange
1
, Souheib Baarir
2
, Fabrice Kordon
1
, and Yann Thierry-Mieg
1
1
LIP6, CNRS UMR 7606, Université P. & M. Curie – Paris 6
4, Place Jussieu, F-75252 Paris Cedex 05, France
2
LIP6, CNRS UMR 7606 and Université Paris Ouest Nanterre La Défense
200, avenue de la République, F-92001 Nanterre Cedex, France
first.last@lip6.fr
Abstract. Symbolic data structures such as Decision Diagrams have proved suc-
cessful for model-checking. For high-level specifications such as those used in
programming languages, especially when manipulating pointers or arrays, build-
ing and evaluating the transition is a challenging problem that limits wider appli-
cability of symbolic methods.
We propose a new symbolic algorithm, EquivSplit, allowing an efficient and
fully symbolic manipulation of transition relations on Data Decision Diagrams.
It allows to work with equivalence classes of states rather than individual states.
Experimental evidence on the concurrent software oriented benchmark BEEM
shows that this approach is competitive.
1 Introduction
Model-checking of concurrent software faces state space explosion. To address this is-
sue, many algorithms and data structures have been proposed, one of the most success-
ful being symbolic shared data structures such as Binary Decision Diagrams (BDD).
While BDD allow in many cases to cope with very large state spaces, expressing
algorithms symbolically to take full advantage of the data structure is tricky. Symbolic
evaluation algorithms that are aware of the data structure itself such as saturation-style
algorithms [6,11] can be orders of magnitude better than naive evaluation in a breadth-
first search manner.
The transition relation of a system of k boolean variables, can be seen as a function
B
k
→ 2
B
k
and is usually built and stored as a second decision diagram N, with two
variables “before” and “after” for each variable of the system. A specific operation
between any subset of the state space S encoded as a decision diagram and the transition
relation N yields a decision diagram S
′
= N(S) representing immediate successors of S.
Let us define statements as (sequences of) assignments of expressions to variables.
The support of a statement is the set of variables it reads or writes to. This notion of
locality is heavily exploited, to limit the representation of transitions to the effect they
have on variables of their support. For each transition with k
′
Boolean support variables,
⋆
This work has been supported by a grant from the Délégation Générale pour l’Armement and
by the project ImpRo/ANR-2010-BLAN-0317.
N. Sharygina and H. Veith (Eds.): CAV 2013, LNCS 8044, pp. 830–845, 2013.
© Springer-Verlag Berlin Heidelberg 2013