Download:
|
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
|