Abstract
In this chapter, we describe the ACL2 theorem proving system and show how it can be used to model and verify hardware using refinement.
This is a timely problem, as the ever-increasing complexity of microprocessor designs and the potentially devastating economic consequences of shipping defective products has made functional verification a bottleneck in the microprocessor design cycle, requiring a large amount of time, human effort, and resources [1, 58]. For example, the 1994 Pentium FDIV bug cost Intel $475 million and it is estimated that a similar bug in the current generation Intel Pentium processor would cost Intel $12 billion [2].
This research was funded in part by NSF grants CCF-0429924, IIS-0417413, and CCF-0438871.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Bentley, B.: Validating the Intel Pentium 4 microprocessor. In: 38th Design Automation Conference, pp. 253–255 (2001)
Bentley, B.: Validating a modern microprocessor (2005), see: http://www.cav2005.inf.ed.ac.uk/bentleyCAV07082005.ppt
Bertoli, P., Traverso, P.: Design verification of a safety-critical embedded verifier. In: Kaufmann, et al. (eds.) [22], pp. 233–245
Boyer, R.S., Goldschlag, D.M., Kaufmann, M., Moore, J.S.: Functional instantiation in first order logic. In: Lifschitz, V. (ed.) Artificial Intelligence and Mathematical Theory of Computation: Papers in Honor of John McCarthy, pp. 7–26. Academic Press, London (1991)
Boyer, R.S., Moore, J.S.: A Computational Logic Handbook, 2nd edn. Academic Press, London (1997)
Boyer, R.S., Moore, J.S.: Single-threaded objects in ACL2 (1999), see: http://www.cs.utexas.edu/users/moore/publications/acl2-papers.html#Foundations
Brock, B., Hunt Jr., W.A.: Formally specifying and mechanically verifying programs for the Motorola complex arithmetic processor DSP. In: 1997 IEEE International Conference on Computer Design, pp. 31–36. IEEE Computer Society, Los Alamitos (1997)
Brock, B., Kaufmann, M., Moore, J.S.: ACL2 theorems about commercial microprocessors. In: Srivas, M., Camilleri, A. (eds.) FMCAD 1996. LNCS, vol. 1166, pp. 275–293. Springer, Heidelberg (1996)
Browne, M., Clarke, E.M., Grumberg, O.: Characterizing finite Kripke structures in propositional temporal logic. Theoretical Computer Science 59 (1988)
Bryant, R.E., Lahiri, S.K., Seshia, S.A.: Modeling and verifying systems using a logic of counter arithmetic with lambda expressions and uninterpreted functions. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 78–92. Springer, Heidelberg (2002)
Burch, J.R., Dill, D.L.: Automatic verification of pipelined microprocessor control. In: Dill, D.L. (ed.) CAV 1994. LNCS, vol. 818, pp. 68–80. Springer, Heidelberg (1994)
Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)
Dillinger, P., Manolios, P., Moore, J.S., Vroon, D.: ACL2E homepage, see: http://www.cc.gatech.edu/home/manolios/acl2s
Greve, D., Wilding, M., Hardin, D.: High-speed, analyzable simulators. In: Kaufmann, et al. (eds.) [22], pp. 113–135
Greve, D.A.: Symbolic simulation of the JEM1 microprocessor. In: Gopalakrishnan, G.C., Windley, P. (eds.) FMCAD 1998. LNCS, vol. 1522, pp. 321–333. Springer, Heidelberg (1998)
Hardin, D., Wilding, M., Greve, D.: Transforming the theorem prover into a digital design tool: From concept car to off-road vehicle. In: Y. Vardi, M. (ed.) CAV 1998. LNCS, vol. 1427, Springer, Heidelberg (1998), http://pobox.com/users/hokie/docs/concept.ps
Hunt, W., Krug, R., Moore, J.S.: The addition of non-linear arithmetic to ACL2. In: Geist, D., Tronci, E. (eds.) CHARME 2003. LNCS, vol. 2860, pp. 319–333. Springer, Heidelberg (2003)
Hunt Jr., W.A.: Microprocessor design verification. Journal of Automated Reasoning 5(4), 429–460 (1989)
Hunt Jr., W.A., Brock, B.: A formal HDL and its use in the FM9001 verification. In: Proceedings of the Royal Society (1992)
Hunt Jr., W.A., Brock, B.: The DUAL-EVAL hardware description language and its use in the formal specification and verification of the FM9001 microprocessor. Formal Methods in Systems Design 11, 71–105 (1997)
Kane, R., Manolios, P., Srinivasan, S.K.: Monolithic verification of deep pipelines with collapsed flushing. In: Design Automation and Test in Europe, DATE 2006 (2006)
Kaufmann, M., Manolios, P., Moore, J.S. (eds.): Computer-Aided Reasoning: ACL2 Case Studies. Kluwer Academic Publishers, Dordrecht (2000)
Kaufmann, M., Manolios, P., Moore, J.S.: Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, Dordrecht (2000)
Kaufmann, M., Manolios, P., Moore, J.S.: Supporting files for Computer-Aided Reasoning: ACL2 Case Studies (2000), see the link from: http://www.cs.utexas.edu/users/moore/acl2
Kaufmann, M., Manolios, P., Moore, J.S.: Supporting files for Computer-Aided Reasoning: An Approach (2000), see the link from: http://www.cs.utexas.edu/users/moore/acl2
Kaufmann, M., Moore, J.S.: ACL2 homepage, see: http://www.cs.utexas.edu/users/moore/acl2
Kaufmann, M., Moore, J.S.: A precise description of the ACL2 logic. Technical report, Department of Computer Sciences, University of Texas at Austin (1997), see: http://www.cs.utexas.edu/users/moore/publications/acl2-papers.html#Foundations
Kaufmann, M., Moore, J.S. (eds.): Proceedings of the ACL2 Workshop 2000. The University of Texas at Austin, Technical Report TR-00-29 (November 2000)
Kaufmann, M., Moore, J.S.: Structured theory development for a mechanized logic. Journal of Automated Reasoning 26(2), 161–203 (2001)
Manolios, P.: Correctness of pipelined machines. In: Johnson, S.D., Hunt Jr., W.A. (eds.) FMCAD 2000. LNCS, vol. 1954, pp. 161–178. Springer, Heidelberg (2000)
Manolios, P.: Verification of pipelined machines in ACL2. In: Kaufmann, Moore [28]
Manolios, P.: Mechanical Verification of Reactive Systems. PhD thesis, University of Texas at Austin (August 2001), see: http://www.cc.gatech.edu/~manolios/publications.html
Manolios, P.: A compositional theory of refinement for branching time. In: Geist, D., Tronci, E. (eds.) CHARME 2003. LNCS, vol. 2860, pp. 304–318. Springer, Heidelberg (2003)
Manolios, P., Namjoshi, K.S., Sumners, R.: Linking theorem proving and model-checking with well-founded bisimulation. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 369–379. Springer, Heidelberg (1999)
Manolios, P., Srinivasan, S.: Automatic verification of safety and liveness for XScale-like processor models using WEB-refinements. In: Design Automation and Test in Europe, DATE 2004, pp. 168–175 (2004)
Manolios, P., Srinivasan, S.: A suite of hard ACL2 theorems arising in refinement-based processor verification. In: Kaufmann, M., Moore, J.S. (eds.) Fifth International Workshop on the ACL2 Theorem Prover and Its Applications (ACL2 2004) (November 2004), see: http://www.cs.utexas.edu/users/moore/acl2/workshop-2004/
Manolios, P., Srinivasan, S.: A complete compositional reasoning framework for the efficient verification of pipelined machines. In: ICCAD 2005, International Conference on Computer-Aided Design (2005)
Manolios, P., Srinivasan, S.: A computationally efficient method based on commitment refinement maps for verifying pipelined machines models. In: ACM-IEEE International Conference on Formal Methods and Models for Codesign, pp. 189–198 (2005)
Manolios, P., Srinivasan, S.: Refinement maps for efficient verification of processor models. In: Design Automation and Test in Europe, DATE 2005, pp. 1304–1309 (2005)
Manolios, P., Srinivasan, S.: Verification of executable pipelined machines with bit-level interfaces. In: ICCAD-2005, International Conference on Computer-Aided Design (2005)
Manolios, P., Vroon, D.: Algorithms for ordinal arithmetic. In: Baader, F. (ed.) CADE 2003. LNCS (LNAI), vol. 2741, pp. 243–258. Springer, Heidelberg (2003)
Manolios, P., Vroon, D.: Ordinal arithmetic in ACL2. In: Kaufmann, M., Moore, J.S. (eds.) Fourth International Workshop on the ACL2 Theorem Prover and Its Applications (ACL2 2003) (July 2003), see: http://www.cs.utexas.edu/users/moore/acl2/workshop-2003/
Manolios, P., Vroon, D.: Integrating reasoning about ordinal arithmetic into ACL2. In: Hu, A.J., Martin, A.K. (eds.) FMCAD 2004. LNCS, vol. 3312, pp. 82–97. Springer, Heidelberg (2004)
Manolios, P., Vroon, D.: Ordinal arithmetic: Algorithms and mechanization. Journal of Automated Reasoning (to appear, 2006)
Manolios, P., Vroon, D.: Termination analysis with calling context graphs (submitted, 2006)
Milner, R.: Communication and Concurrency. Prentice-Hall, Englewood Cliffs (1990)
Moore, J.S.: Piton: A Mechanically Verified Assembly-Level Language. Kluwer Academic Press, Dordrecht (1996)
Moore, J.S., Lynch, T., Kaufmann, M.: A mechanically checked proof of the AMD5 K 86 floating-point division program. IEEE Trans. Comp. 47(9), 913–926 (1998)
Namjoshi, K.S.: A simple characterization of stuttering bisimulation. In: Ramesh, S., Sivakumar, G. (eds.) FST TCS 1997. LNCS, vol. 1346, pp. 284–296. Springer, Heidelberg (1997)
Russinoff, D.M.: A mechanically checked proof of correctness of the AMD5 K 86 floating-point square root microcode. Formal Methods in System Design Special Issue on Arithmetic Circuits (1997)
Russinoff, D.M.: A mechanically checked proof of IEEE compliance of a register-transfer-level specification of the AMD-K7 floating-point multiplication, division, and square root instructions. London Mathematical Society Journal of Computation and Mathematics 1, 148–200 (1998)
Russinoff, D.M.: A mechanically checked proof of correctness of the AMD-K5 floating-point square root microcode. Formal Methods in System Design 14, 75–125 (1999)
Russinoff, D.M., Flatau, A.: RTL verification: A floating-point multiplier. In: Kaufmann, et al. (eds.) [22], pp. 201–231
Sawada, J.: Formal Verification of an Advanced Pipelined Machine. PhD thesis, University of Texas at Austin (December 1999), see: http://www.cs.utexas.edu/users/sawada/dissertation/
Sawada, J.: Verification of a simple pipelined machine model. In: Kaufmann, et al. (eds.) [22], pp. 137–150
Sawada, J., Hunt Jr., W.A.: Trace table based approach for pipelined microprocessor verification. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 364–375. Springer, Heidelberg (1997)
Sawada, J., Hunt Jr., W.A.: Processor verification with precise exceptions and speculative execution. In: Y. Vardi, M. (ed.) CAV 1998. LNCS, vol. 1427, pp. 135–146. Springer, Heidelberg (1998)
International technology roadmap for semiconductors (2004), see: http://public.itrs.net/
Steele Jr., G.L.: Common Lisp The Language, 2nd edn. Digital Press, Burlington (1990)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Manolios, P. (2006). Refinement and Theorem Proving. In: Bernardo, M., Cimatti, A. (eds) Formal Methods for Hardware Verification. SFM 2006. Lecture Notes in Computer Science, vol 3965. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11757283_7
Download citation
DOI: https://doi.org/10.1007/11757283_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34304-2
Online ISBN: 978-3-540-34305-9
eBook Packages: Computer ScienceComputer Science (R0)