MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Automated proofs of object code for a widely used microprocessor (1996) [69 citations — 3 self]

Download:
Download as a PDF | Download as a PS
by Robert S. Boyer, Yuan Yu
Journal of the ACM
http://www.cs.utexas.edu/users/boyer/mc-rev3.ps.Z
Add To MetaCart

Abstract:

Abstract. We have formally described a substantial subset of the MC68020, a widely used microprocessor built by Motorola, within the mathematical logic of the automated reasoning system Nqthm, a.k.a. the Boyer-Moore Theorem Prover [6]. Using this formal description, we have mechanically checked the correctness of MC68020 object code programs for binary search, Hoare's Quick Sort, twenty-one functions from the Berkeley Unix C string library, and other well-known algorithms. The object code for these examples was generated using the Gnu C, the Verdix Ada, and the Gnu Common Lisp compilers. We have mechanized a mathematical theory to facilitate automated reasoning about object code programs. We describe a two stage methodology we use to do our proofs. Key words. Automated reasoning, Boyer-Moore logic, Nqthm, formal methods, machine code, program verification, C, Ada, Common Lisp. 1

Citations

952 An axiomatic basis for computer programming – Hoare - 1969
491 A Computational Logic – Boyer, Moore - 1979
402 Assigning meanings to programs – Floyd - 1967
387 A Computational Logic Handbook – Boyer, Moore - 1988
159 The C Programming Language, Second Edition – Kernighan, Ritchie - 1988
97 Alpha Architecture Reference Manual – Sites - 1992
95 Metafunctions: proving them correct and using them efficiently as new proof procedures – Boyer, Moore - 1981
95 The Art of Computer Programming, volume 1 – Knuth - 1973
93 Towards a mathematical science of computation – McCarthy - 1963
59 FM8501: A Verified Microprocessor – Hunt - 1985
55 A proof of correctness of the VIPER microprocessor: The first level – Cohn
40 The Standard C – Plauger - 1992
29 A verified operating system kernel – Bevier - 1987
29 Planning and coding problems for an electronic computing instrument – Goldstine, Neumann - 1947
25 Compiler Specification and Verification – Polak - 1981
20 The verification of low-level code – Clutterbuck, Carr'e - 1988
19 Checking a Large Routine – Turing - 1949
17 Special issue on system verification – Bevier, Hunt, et al. - 1989
17 Program verification – Boyer, Moore - 1985
16 MC68020 32-bit microprocessor user's manual – Motorola - 1989
10 The formal verification of safety-critical assembly code – O'Neill - 1988
8 Verification of the C/30 microcode using the State Delta Verification System (SDVS – Cook - 1990
6 A formal specification of some user mode instructions for the motorola 68020 – Boyer, Yu - 1992
5 An IBM 370 assembly language verifier – Maurer - 1974
4 Some correctness principles for machine language program and microprocessors – Maurer - 1974
3 Private communication – Plauger