Skip to main content

Automated correctness proofs of machine code programs for a commercial microprocessor

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 607))

Abstract

We have formally specified a substantial subset of the MC68020, a widely used microprocessor built by Motorola, within the mathematical logic of the automated reasoning system Nqthm, i.e., the Boyer-Moore Theorem Prover [4]. Using this MC68020 specification, we have mechanically checked the correctness of MC68020 machine code programs for Euclid's GCD, Hoare's Quick Sort, binary search, and other well-known algorithms. The machine code for these examples was generated using the Gnu C and the Verdix Ada compilers. We have developed an extensive library of proven lemmas to facilitate automated reasoning about machine code programs. We describe a two stage methodology we use to do our machine code proofs.

The work described here was supported in part by NSF Grant MIP-9017499.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. William Bevier, Warren Hunt, J Strother Moore, and William Young. Special issue on system verification. Journal of Automated Reasoning, 5(4), 1989.

    Google Scholar 

  2. Robert S. Boyer and J. Strother Moore. A Computational Logic. Academic Press, New York, 1979.

    Google Scholar 

  3. Robert S. Boyer and J Strother Moore. Program verification. Journal of Automated Reasoning, 1(1):17–23, 1985.

    Google Scholar 

  4. Robert S. Boyer and J Strother Moore. A Computational Logic Handbook. Academic Press, 1988.

    Google Scholar 

  5. Robert S. Boyer and Yuan Yu. A formal specification of some user mode instructions for the Motorola 68020. Technical Report TR-92-04, Computer Sciences Department, University of Texas at Austin, 1992.

    Google Scholar 

  6. Jeffrey V. Cook. Verification of the C/30 microcode using the state delta verification system (SDVS). In 13th National Computer Security Conference, volume 1, pages 20–31, 1990.

    Google Scholar 

  7. Herman H. Goldstine and John von Neumann. Planning and coding problems for an electronic computing instrument. In John von Neumann, Collected Works, volume V, pages 34–235. Pergamon Press, Oxford, 1961.

    Google Scholar 

  8. Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language, Second Edition. Prentice Hall, Englewood Cliff, New Jersey, 1988.

    Google Scholar 

  9. J. Strother Moore. Piton: A verified assembly-level language. Technical Report CLI-22, Computational Logic, Inc., Austin, Tx, June 1988.

    Google Scholar 

  10. Motorola, Inc. MC68020 32-bit Microprocessor User's Manual. Prentice Hall, New Jersey, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Deepak Kapur

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Boyer, R.S., Yu, Y. (1992). Automated correctness proofs of machine code programs for a commercial microprocessor. In: Kapur, D. (eds) Automated Deduction—CADE-11. CADE 1992. Lecture Notes in Computer Science, vol 607. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-55602-8_181

Download citation

  • DOI: https://doi.org/10.1007/3-540-55602-8_181

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-47252-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics