Abstract: An extension to the Murphi verifier is presented to verify systems with replicated identical components. Although most systems are finite-state in nature, many of them are also designed to be scalable, so that a description gives a family of systems, each member of which has a different number of replicated components. It is therefore desirable to be able to verify the entire family of systems, independent of the exact number of replicated components.
The verification is performed by explicit state enumeration in an abstract state space where states do not record the exact numbers of components. We provide an extension to the existing Murphi language, by which a designer can easily specify a system in its concrete form. Through a new datatype, called RepetitiveID, a designer can suggest the use of this abstraction to verify a family of systems.
First of all, Murphi automatically checks the soundness of this abstraction. Then it automatically translates the system description to an abstract state graph for a system of a fixed size. During the verification of the system of a fixed size, Murphi uses a simple run-time check to determine if the result can be generalized for a family of systems with sizes larger than the original system, including the system with an unbounded number of components.
Summary: This paper is an extended version of the two conference papers on symmetry; We also included in this paper the formal semantic of a description language, the formal proof of the full symmetry behavior of systems with scalarset, and the formal proof of the data saturation behaviour. The symmetry reduction algorithm was improved through the use of graph isomorphism heuristic; the speedups obtained for several realistic high-level designs range from 65% to 98%.
This paper improves upon previous work to achieve the following goals: 1) the definition of reversible rules is simpliified so that it is easy to apply the reduction method on practice; 2) the definition is generalized to allow more reduction in the size of the state graph.
The reduction algorithm can be combined with symmetry reduction techniques, for verification of invariants, deadlock-freedom, and stuttering-invariant temporal properties.
Abstract: We present an extension to the Murphi verifier to verify systems with replicated identical components . Verification is by explicit state enumeration in an abstract state space where states do not record the exact numbers of components.
Through a new datatype, called RepetitiveID , the user can suggest the use of such an abstraction to verify a system of fixed size. Murphi automatically checks the soundness of the abstract state graph, and automatically constructs the abstract state graph using the system description.
Using a simple run time check, Murphi can also determine if it can generalize the verification result of a system with fixed size to systems of larger sizes, including the system with infinite number of components.
Abstract: We reduce the state explosion problem in automatic verification of finite state systems by automatically collapsing subgraphs of the state graph into abstract states. The key idea of the method is to identify state generateion rules that can be invertted. It can be used for verifcation of deadlock-freedom, error and invariant checking and stuttering-inveariant CTL model checking.
Summary: Previously, we proposed a reduction technique based on symmetries to alleviate the state explosion problem in automatic verification of concurrent systems. This paper describes the results of testing the technique on a wide range of algorithms and protocols, including realistic multiprocessor synchronization algorithms and cache coherence protocols. Memory requirements were reduced by amounts ranging from 83% to over 99%, and time requirements were often reduced as well. We also consider the effectiveness of the technique on different types of symmetries, such as symmetries in identical system components and symmetries in data values.)
Summary: We address the state explosion problem in automatic verification of finite-state systems by exploiting symmetries in the system description. We also make symmetries easy to detect by introducing a new data type scalarset, a finite and unordered set, to our description language. In some cases, this method can collapse infinite state spaces into finite spaces. We call this property data saturation. Data saturation can be used to exploit data-independence of protocols automatically, without hand-modification of the protocol descriptions.
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation of the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers or to redistributed to list, requires prior specific permission and/or a fee.