Skip to main content

A Grand Challenge Proposal for Formal Methods: A Verified Stack

  • Chapter

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2757))

Abstract

We propose a grand challenge for the formal methods community: build and mechanically verify a practical computing system, from transistors to software. The challenge is both competitive and collaborative. It is collaborative because practical systems are too large for any one group or tool to handle in isolation: groups will have to team together. Furthermore, the vertical integration of systems at different levels of abstractions – from transistors to software – will encourage the team to adopt different tools for different levels and connect them. It is competitive because there are many systems from which to choose and different teams may form around different target systems.

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. Ball, T., Rajamani, S.K.: The SLAM project: debugging system software via static analysis. In: SIGPLAN Notices: Conference Record of POPL 2002, vol. 37(1), pp. 1–3 (January 2002)

    Google Scholar 

  2. Bertoli, P., Traverso, P.: Design verification of a safety-critical embedded verifier. In: Kaufmann et al. [24], pp. 233–246

    Google Scholar 

  3. Bevier, W.R.: A verified operating system kernel. Ph.d. dissertation, University of Texas at Austin (1987)

    Google Scholar 

  4. Bevier, W.R., Hunt, W.A., Moore, J.S., Young, W.D.: Special issue on system verification. Journal of Automated Reasoning 5(4), 409–530 (1989)

    Google Scholar 

  5. Boyer, R.S., Moore, J.S.: Mechanized formal reasoning about programs and computing machines. In: Veroff, R. (ed.) Automated Reasoning and Its Applications: Essays in Honor of Larry Wos, pp. 147–176. MIT Press, Cambridge (1996)

    Google Scholar 

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

    Google Scholar 

  7. Boyer, R.S., Yu, Y.: Automated proofs of object code for a widely used microprocessor. Journal of the ACM 43(1), 166–192 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  8. Brat, G., Havelund, K., Park, S., Visser, W.: Java PathFinder - a second generation of a Java model checker. In: post-CAV 2000 Workshop on Advances in Verification, Chicago, IL, Moffett Field, CA (July 2000), http://ase.arc.nasa.gov/jpf/wave00.ps.gz

  9. Brock, B., Moore, J.S.: A mechanically checked proof of a comparator sort algorithm (1999), http://www.cs.utexas.edu/users/moore/publications/csort/main.ps.Z

  10. Brock, B., Hunt Jr., W.A.: Formal analysis of the motorola CAP DSP. In: Industrial-Strength Formal Methods. Springer, Heidelberg (1999)

    Google Scholar 

  11. Bryant, R.E.: Symbolic Boolean manipulation with ordered binary decision diagrams. ACM Computing Surveys (1992)

    Google Scholar 

  12. Clarke, E.M., Campos, S., Grumberg, O.: Selective quantitative analysis and interval model checking: Verifying different facets of a system. Formal Methods in System Design 17(2) (October 2000)

    Google Scholar 

  13. Dowek, G., Felty, A., Herbelin, H., Huet, G., Paulin, C., Werner, B.: The Coq proof assistant user’s guide, Version 5.6. Technical Report TR 134, INRIA (December 1991)

    Google Scholar 

  14. Emerson, E.A., Trefler, R.J.: From asymmetry to full symmetry: New techniques for symmetry reduction in model checking. In: Pierre, L., Kropf, T. (eds.) CHARME 1999. LNCS, vol. 1703, pp. 142–156. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  15. Flatau, A.D.: A verified implementation of an applicative language with dynamic storage allocation. Phd thesis, University of Texas at Austin (1992)

    Google Scholar 

  16. Goerigk, W., Hoffmann, U.: Rigorous Compiler Implementation Correctness: How to Prove the Real Thing Correct. In: Hutter, D., Traverso, P. (eds.) FM-Trends 1998. LNCS, vol. 1641. Springer, Heidelberg (1999)

    Google Scholar 

  17. Goldberg, J., Kautz, W., Mellear-Smith, P.M., Green, M., Levitt, K., Schwartz, R., Weinstock, C.: Development and analysis of the software implemented faulttolerance (sift) computer. Technical Report NASA Contractor Report 172146, NASA Langley Research Center, Hampton, VA (1984)

    Google Scholar 

  18. Gordon, M., Melham, T.: Introduction to HOL: A Theorem Proving Environment for Higher Order Logic. Cambridge University Press, Cambridge (1993)

    MATH  Google Scholar 

  19. Greve, D., Wilding, M.: Evaluatable, high-assurance microprocessors. In: NSA High-Confidence Systems and Software Conference (HCSS), Linthicum, MD (March 2002), http://hokiepokie.org/docs/hcss02/proceedings.pdf

  20. Greve, D., Wilding, M., Hardin, D.: High-speed, analyzable simulators. In: Kaufmann et al. [24], pp. 113–136

    Google Scholar 

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

  22. Hunt Jr., W.A. (ed.): FM8501: A Verified Microprocessor. LNCS, vol. 795. Springer, Heidelberg (1994)

    MATH  Google Scholar 

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

    Google Scholar 

  24. Kaufmann, M., Manolios, P., Moore, J.S. (eds.): Computer-Aided Reasoning: ACL2 Case Studies. Kluwer Academic Press, Boston (2000)

    Google Scholar 

  25. Kaufmann, M., Manolios, P., Moore, J.S.: Computer-Aided Reasoning: An Approach. Kluwer Academic Press, Boston (2000)

    Google Scholar 

  26. Langmaack, H.: The ProCoS Approach to Correct Systems. Real Time Systems 13, 253–275 (1997)

    Article  Google Scholar 

  27. Leino, K.R.M., Nelson, G., Saxe, J.B.: Esc/java user’s manual. Technical Report Technical Note 2000-002, Compaq Systems Research Center (October 2000)

    Google Scholar 

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

  29. Manolios, P.: Mu-calculus model-checking. In: Kaufmann et al. [24], pp. 93–112

    Google Scholar 

  30. Manolios, P., Namjoshi, K., Sumners, R.: Linking theorem proving and modelchecking 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 

  31. McCarthy, J.: A basis for a mathematical theory of computation. In: Computer Programming and Formal Systems. North-Holland Publishing Company, Amsterdam (1963)

    Google Scholar 

  32. McCune, W., Shumsky, O.: Ivy: A preprocessor and proof checker for first-order logic. In: Kaufmann et al. [24], pp. 265–282

    Google Scholar 

  33. McMillan, K.L.: Symbolic Model Checking. Kluwer Academic Publishers, Dordrecht (1993)

    MATH  Google Scholar 

  34. Moore, J.S.: Piton: A Mechanically Verified Assembly-Level Language. Automated Reasoning Series. Kluwer Academic Publishers, Dordrecht (1996)

    Google Scholar 

  35. Moore, J.S., Lynch, T., Kaufmann, M.: A mechanically checked proof of the correctness of the kernel of the AMD5K86 floating point division algorithm. IEEE Transactions on Computers 47(9), 913–926 (1998)

    Article  MathSciNet  Google Scholar 

  36. Moore, J.S., Porter, G.: An executable formal JVM thread model. In: Java Virtual Machine Research and Technology Symposium (JVM 2001), Berkeley, CA. (April 2001), USENIX, http://www.cs.utexas.edu/users/moore/publications/m4/model.ps.gz

  37. Moore, J.S., Porter, G.: The apprentice challenge. In: TOPLAS (accepted for publication, 2002) (2002), http://www.cs.utexas.edu/users/moore/publications/m5/index.html

  38. Owre, S., Rushby, J., Shankar, N.: PVS: A prototype verification system. In: Kapur, D. (ed.) CADE 1992. LNCS, vol. 607, pp. 748–752. Springer, Heidelberg (1992)

    Google Scholar 

  39. Ruess, H., Shankar, N.: Deconstructing shostak. In: 16th Annual IEEE Symposium on Logic in Computer Science, pp. 19–28. IEEE Computer Society Press, Los Alamitos (2001)

    Chapter  Google Scholar 

  40. Russinoff, D.: A mechanically checked proof of IEEE compliance of a registertransfer- 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), http://www.onr.com/user/russ/david/k7-div-sqrt.html

    MATH  MathSciNet  Google Scholar 

  41. Russinoff, D.M., Flatau, A.: Rtl verification: A floating-point multiplier. In: Kaufmann et al. [24], pp. 201–232

    Google Scholar 

  42. Sawada, J.: Verification of a simple pipelined machine model. In: Kaufmann et al. [24], pp. 137–150

    Google Scholar 

  43. Sawada, J., Hunt, W.: 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 

  44. Smith, S.W., Austel, V.: Trusting trusted hardware: Towards a formal model for programmable secure coprocessors. In: The Third USENIX Workshop on Electronic Commerce (September 1998)

    Google Scholar 

  45. Somenzi, F.: CUDD: CU decision diagram package, 1997. public software, Colorado University, Boulder, CO (1997)

    Google Scholar 

  46. Sumners, R.: Correctness proof of a BDD manager in the context of satisfiability checking. In: Proceedings of ACL2 Workshop 2000. Department of Computer Sciences, Technical Report TR-00-29 (November 2000), http://www.cs.utexas.edu/users/moore/acl2/workshop-2000/final/sumners2/paper.ps

  47. Wilding, M.: A mechanically verified application for a mechanically verified environment. In: Courcoubetis, C. (ed.) CAV 1993. LNCS, vol. 697, Springer, Heidelberg (1993), ftp://ftp.cs.utexas.edu/pub/boyer/nqthm/wilding-cav93.ps

    Google Scholar 

  48. Young, W.D.: A verified code generator for a subset of Gypsy. Technical Report 33, Comp. Logic. Inc., Austin, Texas (1988)

    Google Scholar 

  49. Zhang, L., Malik, S.: The quest for efficience boolean satisfiablity solvers. In: Voronkov, A. (ed.) CADE 2002. LNCS (LNAI), vol. 2392, pp. 295–313. Springer, Heidelberg (2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Moore, J.S. (2003). A Grand Challenge Proposal for Formal Methods: A Verified Stack. In: Aichernig, B.K., Maibaum, T. (eds) Formal Methods at the Crossroads. From Panacea to Foundational Support. Lecture Notes in Computer Science, vol 2757. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-40007-3_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-40007-3_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-20527-2

  • Online ISBN: 978-3-540-40007-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics