 
 
 
 
 
   
One of the most important operations in model checking is the relational product:
 
 through the
transition relation
through the
transition relation 
 .
This operation can be performed
as a single step by most BDD packages. Although it works quite well
in practice, this operation has worst case exponential complexity
[47]. The transition relation is said to be monolithic,
as it consists of a single BDD.
.
This operation can be performed
as a single step by most BDD packages. Although it works quite well
in practice, this operation has worst case exponential complexity
[47]. The transition relation is said to be monolithic,
as it consists of a single BDD.
In many practical cases, building the BDD for 
 may
not be feasible. In many cases, however, it is possible to exploit the
structure of the system and build the transition relation as a list of small
BDDs, called clusters, which are implicitly disjoined (e.g., with an
asynchronous model of concurrency) or conjoined (e.g., with synchronous
systems) [9,10,11].
may
not be feasible. In many cases, however, it is possible to exploit the
structure of the system and build the transition relation as a list of small
BDDs, called clusters, which are implicitly disjoined (e.g., with an
asynchronous model of concurrency) or conjoined (e.g., with synchronous
systems) [9,10,11].
|  | disjunctive | 
|  | conjunctive | 
With a disjunctively partitioned transition relation, the relational
product can be computed as follows:
 
For synchronous systems, NUSMV implements techniques based on early
variable quantifications [59,9,10]. The basic idea is to
find an ordering of the partitions 
 such that the
quantification can be pushed inside the formula as much as possible,
thus allowing relational products between small BDDs and existential
quantification on a small number of variables, and thus reducing the
complexity of the whole operation:
such that the
quantification can be pushed inside the formula as much as possible,
thus allowing relational products between small BDDs and existential
quantification on a small number of variables, and thus reducing the
complexity of the whole operation:
 
 are disjoint sets of variables,
are disjoint sets of variables, 
 being the set of
variables the
being the set of
variables the 
 with j>i depends on, but
with j>i depends on, but
 does not depend on.
does not depend on.
NUSMV allows the user to perform model checking using the monolithic transition relation or the disjunctively or conjunctively partitioned transition relation. For conjunctive partitioning, the heuristics described in [35] and in [53] are available. They allow the user to compute the clusters for the conjunctively partitioned transition relation.
 >
>