Abstraction Refinement for Large Scale Model Checking
Chao Wang (Ph.D., University of Colorado at Boulder, 2004)
Model checking is a formal method for proving that a finite state
transition system satisfies a user-defined specification. The primary
obstacle to its widespread application is the capacity problem: the
state-of-the-art model checker cannot directly handle most
industrial-scale designs. Abstraction refinement, an iterative process
of synthesizing a simplified model to help verifying the original
model, is a promising solution to the capacity problem. In this
thesis, several fully automatatic abstraction refinement techniques
are proposed to efficiently reach or come near to the simplest
abstraction.
First, a fine-grain abstraction approach is proposed to keep the
abstraction granularity small. With the advantage of including only
the relevant information, fine-grain abstraction is proven
indispensable in verifying systems with complex combinational logics.
Second, a refinement algorithm is proposed to identify the refinement
information based on the systematic analysis of all the shortest
counter-examples. Compared to single counter-example guided
algorithms, this algorithm often produces a smaller abstract model
that can prove or refute the same property. Third, a compositional
SCC analysis algorithm is proposed to quickly identify unimportant
parts of the state space and prune them away before verification is
applied to the next abstraction level. With a speed-up of up to two
orders of magintude over standard model checking algorithms, it
demonstrates the importance of reusing information learned from
previous abstraction levels. Finally, BDD based symbolic image
computation and Boolean satisfiability are studied. Two new algorithms
are proposed to improve their computational efficiency by applying the
abstraction and the successive refinements inside the two basic
decision procedures. Analytical and experimental studies demonstrate
that the fully automatic abstraction refinement techniques proposed in
this thesis are the key to applying model checking to large systems.
|