Efficient symbolic and explicit-state model checking
approaches have been developed for the verification of linear
time temporal
logic (LTL) properties. Several attempts have been made to
combine the advantages of the various algorithms. Model
checking LTL
properties usually poses two challenges: one must compute the
synchronous product of the state space and the automaton
model of the
desired property, then look for counterexamples that is
reduced to finding strongly connected components (SCCs) in
the state space
of the product. In case of concurrent systems, where the
phenomenon of state space explosion often prevents the
successful
verification, the so-called saturation algorithm has proved
its efficiency in state space exploration. This paper
proposes a new
approach that leverages the saturation algorithm both as an
iteration strategy constructing the product directly, as well
as in a
new fixed-point computation algorithm to find strongly
connected components on-the-fly by incrementally processing
the components
of the model. Complementing the search for SCCs, explicit
techniques and component-wise abstractions are used to prove
the absence
of counterexamples. The resulting on-the-fly, incremental LTL
model checking algorithm proved to scale well with the size
of
models, as the evaluation on models of the Model Checking
Contest suggests