Computer-Aided Design, International Conference on (2000)
San Jose, California
Nov. 5, 2000 to Nov. 9, 2000
Thomas A. Henzinger , University of California, Berkeley
Shaz Qadeer , Compaq Systems Research Center
Sriram K. Rajamani , Microsoft Research
Model-checking algorithms can be used to verify, formally and automatically, if a low-level description of a design conforms with a high-level description. However, for designs with very large state spaces, prior to the application of an algorithm, the refinement-checking task needs to be decomposed into subtasks of manageable complexity. It is natural to decompose the task following the component structure of the design. However, an individual component often does not satisfy its requirements unless the component is put into the right context, which constraints the inputs to the component. Thus, in order to verify each component individually, we need to make assumptions about its inputs, which are provided by the other components of the design. This reasoning is circular: component A is verified under the assumption that context B behaves correctly, and symmetrically, B is verified assuming the correctness of A. The assume-guarantee paradigm provides a systematic theory and methodology for ensuring the soundness of the circular style of postulating and discharging assumptions in component-based reasoning.<div></div> We give a tutorial introduction to the assume-guarantee paradigm for decomposing refinement-checking tasks. To illustrate the method, we step in detail through the formal verification of a processor pipeline against an instruction set architecture. In this example, the verification of a three-stage pipeline is broken up into three subtasks, one for each stage of the pipeline.
S. Qadeer, S. K. Rajamani and T. A. Henzinger, "Decomposing Refinement Proofs using Assume-Guarantee Reasoning," Computer-Aided Design, International Conference on(ICCAD), San Jose, California, 2000, pp. 245.