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
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
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)
Bertoli, P., Traverso, P.: Design verification of a safety-critical embedded verifier. In: Kaufmann et al. [24], pp. 233–246
Bevier, W.R.: A verified operating system kernel. Ph.d. dissertation, University of Texas at Austin (1987)
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)
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)
Boyer, R.S., Moore, J.S.: A Computational Logic Handbook, 2nd edn. Academic Press, New York (1997)
Boyer, R.S., Yu, Y.: Automated proofs of object code for a widely used microprocessor. Journal of the ACM 43(1), 166–192 (1996)
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
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
Brock, B., Hunt Jr., W.A.: Formal analysis of the motorola CAP DSP. In: Industrial-Strength Formal Methods. Springer, Heidelberg (1999)
Bryant, R.E.: Symbolic Boolean manipulation with ordered binary decision diagrams. ACM Computing Surveys (1992)
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)
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)
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)
Flatau, A.D.: A verified implementation of an applicative language with dynamic storage allocation. Phd thesis, University of Texas at Austin (1992)
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)
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)
Gordon, M., Melham, T.: Introduction to HOL: A Theorem Proving Environment for Higher Order Logic. Cambridge University Press, Cambridge (1993)
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
Greve, D., Wilding, M., Hardin, D.: High-speed, analyzable simulators. In: Kaufmann et al. [24], pp. 113–136
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)
Hunt Jr., W.A. (ed.): FM8501: A Verified Microprocessor. LNCS, vol. 795. Springer, Heidelberg (1994)
Hunt, W.A., Brock, B.: A formal HDL and its use in the FM9001 verification. In: Proceedings of the Royal Society (April 1992)
Kaufmann, M., Manolios, P., Moore, J.S. (eds.): Computer-Aided Reasoning: ACL2 Case Studies. Kluwer Academic Press, Boston (2000)
Kaufmann, M., Manolios, P., Moore, J.S.: Computer-Aided Reasoning: An Approach. Kluwer Academic Press, Boston (2000)
Langmaack, H.: The ProCoS Approach to Correct Systems. Real Time Systems 13, 253–275 (1997)
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)
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.: Mu-calculus model-checking. In: Kaufmann et al. [24], pp. 93–112
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)
McCarthy, J.: A basis for a mathematical theory of computation. In: Computer Programming and Formal Systems. North-Holland Publishing Company, Amsterdam (1963)
McCune, W., Shumsky, O.: Ivy: A preprocessor and proof checker for first-order logic. In: Kaufmann et al. [24], pp. 265–282
McMillan, K.L.: Symbolic Model Checking. Kluwer Academic Publishers, Dordrecht (1993)
Moore, J.S.: Piton: A Mechanically Verified Assembly-Level Language. Automated Reasoning Series. Kluwer Academic Publishers, Dordrecht (1996)
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)
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
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
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)
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)
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
Russinoff, D.M., Flatau, A.: Rtl verification: A floating-point multiplier. In: Kaufmann et al. [24], pp. 201–232
Sawada, J.: Verification of a simple pipelined machine model. In: Kaufmann et al. [24], pp. 137–150
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)
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)
Somenzi, F.: CUDD: CU decision diagram package, 1997. public software, Colorado University, Boulder, CO (1997)
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
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
Young, W.D.: A verified code generator for a subset of Gypsy. Technical Report 33, Comp. Logic. Inc., Austin, Texas (1988)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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