Skip to main content

Refinement and Theorem Proving

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3965))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bentley, B.: Validating the Intel Pentium 4 microprocessor. In: 38th Design Automation Conference, pp. 253–255 (2001)

    Google Scholar 

  2. Bentley, B.: Validating a modern microprocessor (2005), see: http://www.cav2005.inf.ed.ac.uk/bentleyCAV07082005.ppt

  3. Bertoli, P., Traverso, P.: Design verification of a safety-critical embedded verifier. In: Kaufmann, et al. (eds.) [22], pp. 233–245

    Google Scholar 

  4. 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)

    Chapter  Google Scholar 

  5. Boyer, R.S., Moore, J.S.: A Computational Logic Handbook, 2nd edn. Academic Press, London (1997)

    MATH  Google Scholar 

  6. 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

  7. 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)

    Google Scholar 

  8. 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)

    Chapter  Google Scholar 

  9. Browne, M., Clarke, E.M., Grumberg, O.: Characterizing finite Kripke structures in propositional temporal logic. Theoretical Computer Science 59 (1988)

    Google Scholar 

  10. 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)

    Chapter  Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)

    Google Scholar 

  13. Dillinger, P., Manolios, P., Moore, J.S., Vroon, D.: ACL2E homepage, see: http://www.cc.gatech.edu/home/manolios/acl2s

  14. Greve, D., Wilding, M., Hardin, D.: High-speed, analyzable simulators. In: Kaufmann, et al. (eds.) [22], pp. 113–135

    Google Scholar 

  15. 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)

    Chapter  Google Scholar 

  16. 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

    Chapter  Google Scholar 

  17. 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)

    Chapter  Google Scholar 

  18. Hunt Jr., W.A.: Microprocessor design verification. Journal of Automated Reasoning 5(4), 429–460 (1989)

    Article  Google Scholar 

  19. Hunt Jr., W.A., Brock, B.: A formal HDL and its use in the FM9001 verification. In: Proceedings of the Royal Society (1992)

    Google Scholar 

  20. 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)

    Article  Google Scholar 

  21. 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)

    Google Scholar 

  22. Kaufmann, M., Manolios, P., Moore, J.S. (eds.): Computer-Aided Reasoning: ACL2 Case Studies. Kluwer Academic Publishers, Dordrecht (2000)

    Google Scholar 

  23. Kaufmann, M., Manolios, P., Moore, J.S.: Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, Dordrecht (2000)

    Google Scholar 

  24. 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

  25. 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

  26. Kaufmann, M., Moore, J.S.: ACL2 homepage, see: http://www.cs.utexas.edu/users/moore/acl2

  27. 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

  28. 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)

    Google Scholar 

  29. Kaufmann, M., Moore, J.S.: Structured theory development for a mechanized logic. Journal of Automated Reasoning 26(2), 161–203 (2001)

    Article  MathSciNet  MATH  Google Scholar 

  30. 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)

    Chapter  Google Scholar 

  31. Manolios, P.: Verification of pipelined machines in ACL2. In: Kaufmann, Moore [28]

    Google Scholar 

  32. 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

  33. 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)

    Chapter  Google Scholar 

  34. 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)

    Chapter  Google Scholar 

  35. 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)

    Google Scholar 

  36. 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/

  37. 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)

    Google Scholar 

  38. 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)

    Google Scholar 

  39. 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)

    Google Scholar 

  40. Manolios, P., Srinivasan, S.: Verification of executable pipelined machines with bit-level interfaces. In: ICCAD-2005, International Conference on Computer-Aided Design (2005)

    Google Scholar 

  41. Manolios, P., Vroon, D.: Algorithms for ordinal arithmetic. In: Baader, F. (ed.) CADE 2003. LNCS (LNAI), vol. 2741, pp. 243–258. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  42. 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/

  43. 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)

    Chapter  Google Scholar 

  44. Manolios, P., Vroon, D.: Ordinal arithmetic: Algorithms and mechanization. Journal of Automated Reasoning (to appear, 2006)

    Google Scholar 

  45. Manolios, P., Vroon, D.: Termination analysis with calling context graphs (submitted, 2006)

    Google Scholar 

  46. Milner, R.: Communication and Concurrency. Prentice-Hall, Englewood Cliffs (1990)

    MATH  Google Scholar 

  47. Moore, J.S.: Piton: A Mechanically Verified Assembly-Level Language. Kluwer Academic Press, Dordrecht (1996)

    Google Scholar 

  48. 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)

    Article  Google Scholar 

  49. 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)

    Chapter  Google Scholar 

  50. 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)

    Google Scholar 

  51. 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)

    MathSciNet  MATH  Google Scholar 

  52. 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)

    Article  Google Scholar 

  53. Russinoff, D.M., Flatau, A.: RTL verification: A floating-point multiplier. In: Kaufmann, et al. (eds.) [22], pp. 201–231

    Google Scholar 

  54. 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/

  55. Sawada, J.: Verification of a simple pipelined machine model. In: Kaufmann, et al. (eds.) [22], pp. 137–150

    Google Scholar 

  56. 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)

    Chapter  Google Scholar 

  57. 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)

    Chapter  Google Scholar 

  58. International technology roadmap for semiconductors (2004), see: http://public.itrs.net/

  59. Steele Jr., G.L.: Common Lisp The Language, 2nd edn. Digital Press, Burlington (1990)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics