Precision On Demand:

Abstract

In explicit state (enumerative) model checking, state vectors are often represented in a compressed form in order to reduce storage needs, typically employing fingerprints, bithashes, or state signatures. When using this kind of techniques, it could happen that the compressed image of a nonvisited state s matches that of a visited state s ′ � = s, thus s and potentially many of its descendants are omitted from search. If any of these omitted states was an error state, we could also have false positives. We present a new technique which reduces the number of omitted states, by requiring a slightly higher computation time, but without employing any additional memory. Our technique works for depth-first search based state exploration, and exploits the fact that when a non-terminal state t is represented in the hash table, then one of the successors of t (the first to be expanded next, typically the left-most) is also represented in the visited states hash table. Therefore, instead of backing off when the compressed state images match, our algorithm persists to see if any of the left-most successors also matches (the number of successors which are considered for each state is user-defined, thus we name our approach Precision on Demand or POD). This paper provides a scientific evaluation of the pros and cons of this approach. We have implemented the algorithm in two versions of the Murphi explicit state model checker, one based on hash compaction and the other based on Bloom filters, and present experimental results. Our results indicate that POD-hashing has the potential to reduce storage requirements- or increase the number of bugs likely to be caught when operating within a given amount of storage, with the execution time likely to increase by a factor of 1.8 or less

    Similar works

    Full text

    thumbnail-image

    Available Versions