Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4767))

Included in the following conference series:

Abstract

This paper shows how a machine-code Hoare logic is used to lift reasoning from the tedious operational model of a machine language to a manageable level of abstraction without making simplifying assumptions. A Hoare logic is placed on top of a high-fidelity model of the ARM instruction set. We show how the generality of ARM instructions is captured by specifications in the logic and how the logic can be used to prove loops and procedures that traverse pointer-based data structures. The presented work has been mechanised in the HOL4 theorem prover and is currently being used to verify ARM machine code implementations of arithmetic and cryptographic operations.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Boyer, R.S., Yu, Y.: Automated proofs of object code for a widely used microprocessor. J. ACM 43(1), 166–192 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  2. Tan, G., Appel, A.W.: A compositional logic for control flow. In: Emerson, E.A., Namjoshi, K.S. (eds.) VMCAI 2006. LNCS, vol. 3855, Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  3. Hardin, D.S., Smith, E.W., Young, W.D.: A robust machine code proof framework for highly secure applications. In: Manolios, P., Wilding, M. (eds.) ACL2, pp. 11–20. ACM Press, New York (2006)

    Chapter  Google Scholar 

  4. Tuch, H., Klein, G., Norrish, M.: Types, bytes, and separation logic. In: Hofmann, M., Felleisen, M. (eds.) POPL. Proc. 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 97–108. ACM Press, New York (2007)

    Google Scholar 

  5. Myreen, M.O., Gordon, M.J.: Hoare logic for realistically modelled machine code. In: TACAS. LNCS, pp. 568–582. Springer, Heidelberg (2007)

    Google Scholar 

  6. Gordon, M.J.C., Melham, T.F. (eds.): Introduction to HOL (A theorem-proving environment for higher-order logic). Cambridge University Press, Cambridge (1993)

    MATH  Google Scholar 

  7. Fox, A.: Formal specification and verification of ARM6. In: Basin, D., Wolff, B. (eds.) TPHOLs 2003. LNCS, vol. 2758, Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  8. Reynolds, J.: Separation logic: A logic for shared mutable data structures. In: LICS. Proceedings of Logic in Computer Science, IEEE Computer Society, Los Alamitos (2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Farhad Arbab Marjan Sirjani

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Myreen, M.O., Fox, A.C.J., Gordon, M.J.C. (2007). Hoare Logic for ARM Machine Code. In: Arbab, F., Sirjani, M. (eds) International Symposium on Fundamentals of Software Engineering. FSEN 2007. Lecture Notes in Computer Science, vol 4767. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-75698-9_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-75698-9_18

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-75698-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics