Automated correctness proofs of machine code programs for a commercial microprocessor
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 . 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.
Key wordsAutomated reasoning Nqthm Boyer-Moore Theorem Prover formal program verification object code Gnu C Ada
Unable to display preview. Download preview PDF.
- William Bevier, Warren Hunt, J Strother Moore, and William Young. Special issue on system verification. Journal of Automated Reasoning, 5(4), 1989.Google Scholar
- Robert S. Boyer and J. Strother Moore. A Computational Logic. Academic Press, New York, 1979.Google Scholar
- Robert S. Boyer and J Strother Moore. Program verification. Journal of Automated Reasoning, 1(1):17–23, 1985.Google Scholar
- Robert S. Boyer and J Strother Moore. A Computational Logic Handbook. Academic Press, 1988.Google Scholar
- 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
- 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
- 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
- Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language, Second Edition. Prentice Hall, Englewood Cliff, New Jersey, 1988.Google Scholar
- J. Strother Moore. Piton: A verified assembly-level language. Technical Report CLI-22, Computational Logic, Inc., Austin, Tx, June 1988.Google Scholar
- Motorola, Inc. MC68020 32-bit Microprocessor User's Manual. Prentice Hall, New Jersey, 1989.Google Scholar