Machine-code verification for multiple architectures: an application of decompilation into logic

  • Authors:
  • Magnus O. Myreen;Michael J. C. Gordon;Konrad Slind

  • Affiliations:
  • University of Cambridge, Cambridge, UK;University of Cambridge, Cambridge, UK;University of Utah, Salt Lake City, UT

  • Venue:
  • Proceedings of the 2008 International Conference on Formal Methods in Computer-Aided Design
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Realistic formal specifications of machine languages for commercial processors consist of thousands of lines of definitions. Current methods support trustworthy proofs of the correctness of programs for one such specification. However, these methods provide little or no support for reusing proofs of the same algorithm implemented in different machine languages. We describe an approach, based on proof-producing decompilation, which both makes machine-code verification tractable and supports proof reuse between different languages. We briefly present examples based on detailed models of machine code for ARM, PowerPC and x86. The theories and tools have been implemented in the HOL4 system.