Symbolic verification based on Binary Decision Diagrams (BDDs) has proven to be a powerful technique for ensuring the correctness of digital hardware. In contrast, BDDs have not caught on as widely for software verification, partly because the data types used in software are more complicated than those used in hardware. In this work, we propose an extension of BDDs for dealing with dynamic data structures. Specifically, we focus on queues, since they are commonly used in modeling communication protocols. We introduce Queue BDDs (QBDDs) which include all the power of BDDs while also providing an efficient representation of queue contents. Experimental results show that QBDDs are well-suited for the verification of communication protocols.
[1]
Patrick Cousot,et al.
Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints
,
1977,
POPL.
[2]
Bernhard Steffen,et al.
Compositional Minimization of Finite State Systems
,
1990,
CAV.
[3]
Edmund M. Clarke,et al.
Symbolic Model Checking with Partitioned Transistion Relations
,
1991,
VLSI.
[4]
E. Clarke,et al.
Symbolic Model Checking withPartitioned Transition
,
1991
.
[5]
Randal E. Bryant,et al.
Symbolic Boolean manipulation with ordered binary-decision diagrams
,
1992,
CSUR.