Verification of Hardware Interaction Properties of Software

  • Ramsay Taylor
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7316)


Many high-integrity software development processes prevent any assumptions about the system hardware, but this makes it impossible to use these techniques on software that must interact with the hardware, such as device drivers. This work takes the opposite approach: if the analyst accepts that the analysis will only be valid for a particular target system then the specification of the system can be used to infer the behaviour of the software that interacts with it. An analysis process is developed that operates on disassembled executable files and formal specifications of the target platform to produce CSP-OZ formal models of the software’s behaviour. This analysis process is implemented in a prototype called Spurinna. This is demonstrated in conjunction with the verification tools Z2SAL and the SAL suite to demonstrate the verification of properties of an example program.


Model Checker Sequential Block Operation Schema Sequential Instruction Assembly Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Barnes, J.G.: High Integrity Software: The SPARK Approach to Safety and Security. Addison-Wesley Longman Publishing Co., Inc. (2003)Google Scholar
  2. 2.
    Birtwistle, G.: Control state in asynchronous micropipelines. In: Yakovlev, A., Nouta, R. (eds.) AINT, pp. 45–55 (2000)Google Scholar
  3. 3.
    Bogan, S.: Formal Specification of a Simple Operating System. PhD thesis, Saarland University, Computer Science Department (2008)Google Scholar
  4. 4.
    Bowen, J.P.: Formal specification and documentation of microprocessor instruction sets. Microprocessing and Microprogramming 21(15), 223–230 (1987)CrossRefGoogle Scholar
  5. 5.
    Cai, H., Shao, Z., Vaynberg, A.: Certified self-modifying code. In: Ferrante, J., McKinley, K.S. (eds.) PLDI, pp. 66–77. ACM (2007)Google Scholar
  6. 6.
    Carrington, D.A., Duke, D., Duke, R., King, P., Rose, G.A., Smith, G.: Object-Z: An object-oriented extension to Z. In: Vuong, S. (ed.) Formal Description Techniques II, FORTE 1989, pp. 281–296. North-Holland (1990)Google Scholar
  7. 7.
    de Moura, L., Owre, S., Shankar, N.: The SAL language manual. Technical Report SRI-CSL-01-02 (Rev.2) (2003), (accessed March 14, 2012)
  8. 8.
    Derrick, J., North, S., Simons, A.J.H.: Z2SAL: a translation-based model checker for Z. Formal Aspects of Computing 23, 43–71 (2011)zbMATHCrossRefGoogle Scholar
  9. 9.
    Faber, J., Linker, S., Olderog, E.-R., Quesel, J.-D.: Syspect - modelling, specifying, and verifying real-time systems with rich data. International Journal of Software and Informatics 5(1-2), 117–137 (2011) ISSN 1673-7288Google Scholar
  10. 10.
    Fischer, C.: CSP-OZ: a combination of Object-Z and CSP. In: Bowman, H., Derrick, J. (eds.) FMOODS, pp. 423–438. Chapman and Hall, London (1997)Google Scholar
  11. 11.
    Kemp, D.H.: Specification of VIPER1 in Z. Technical report, Royal Signals and Radar Establishment (1988)Google Scholar
  12. 12.
    Klein, G., Andronick, J., Elphinstone, K., Heiser, G., Cock, D., Derrin, P., Elkaduwe, D., Engelhardt, K., Kolanski, R., Norrish, M., Sewell, T., Tuch, H., Winwood, S.: seL4: formal verification of an operating-system kernel. Commununications of the ACM 53(6), 107–115 (2010)CrossRefGoogle Scholar
  13. 13.
    MISRA. Guidelines for the use of the C language in vehicle based software. Technical report (1998)Google Scholar
  14. 14.
    Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: LICS, pp. 55–74. IEEE Computer Society (2002)Google Scholar
  15. 15.
    Syspect. Final report of the syspect project. Technical report, Carl von Ossietzky University of Oldenburg (2006)Google Scholar
  16. 16.
    Taylor, R.: Separation of Z Operations. In: Börger, E., Butler, M., Bowen, J.P., Boca, P. (eds.) ABZ 2008. LNCS, vol. 5238, pp. 350–350. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  17. 17.
    Taylor, R.: Verification of hardware dependent software. PhD thesis, University of Sheffield (2012)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Ramsay Taylor
    • 1
  1. 1.Department of Computer ScienceThe University of SheffieldUK

Personalised recommendations