Skip to main content

An Integrated Formal Methods Tool-Chain and Its Application to Verifying a File System Model

  • Conference paper
Formal Methods: Foundations and Applications (SBMF 2009)

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

Included in the following conference series:

Abstract

Tool interoperability as a mean to achieve integration is among the main goals of the international Grand Challenge initiative. In the context of the Verifiable file system mini-challenge put forward by Rajeev Joshi and Gerard Holzmann, this paper focuses on the integration of different formal methods and tools in modelling and verifying an abstract file system inspired by the Intel\(^{\textrm{\textregistered}}\) Flash File System Core. We combine high-level manual specification and proofs with current state of the art mechanical verification tools into a tool-chain which involves Alloy, VDM++ and HOL. The use of (pointfree) relation modelling provides the glue which binds these tools together.

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. Escher Technologies - Products, http://www.eschertech.com/products

  2. Spin - Formal Verification, http://spinroot.com

  3. Bird, R., de Moor, O.: Algebra of Programming. Series in Computer Science. Prentice-Hall International, Englewood Cliffs (1997), C.A.R. Hoare, series editor

    MATH  Google Scholar 

  4. Bjørner, D., Jones, C.B.: The Vienna Development Method: The Meta-Language. LNCS, vol. 61. Springer, Heidelberg (1978)

    MATH  Google Scholar 

  5. Coleman, J., Jones, C., Oliver, I., Romanovsky, A., Troubitsyna, E.: RODIN (Rigorous open Development Environment for Complex Systems). In: WORDS, pp. 23–26. IEEE Computer Society, Los Alamitos (2005)

    Google Scholar 

  6. Intel Corporation. Intel\(^{\textrm{\textregistered}}\) Flash File System Core Reference Guide. Technical report 304436-001, Intel Corporation (2004)

    Google Scholar 

  7. Damchoom, K., Butler, M., Abrial, J.: Modelling and Proof of a Tree-Structured File System in Event-B and Rodin. In: Liu, S., Maibaum, T., Araki, K. (eds.) ICFEM 2008. LNCS, vol. 5256, pp. 25–44. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  8. Ferreira, M.: Verifying Intel\(^{\textrm{\textregistered}}\) Flash File System Core. Master’s thesis, Minho University (January 2009)

    Google Scholar 

  9. Ferreira, M., Silva, S., Oliveira, J.N.: Verifying Intel Flash File System Core Specification. In: Fourth VDM/Overture Workshop (CS-TR-1099) (May 2008)

    Google Scholar 

  10. Ferreira, M.A.: Implementing the Overture Automatic Proof System (submitted for publication, 2009)

    Google Scholar 

  11. Ferreira, M.A., Oliveira, J.N.: Verifying the (generic) flash memory implementation of abstract mappings (in preparation, 2009)

    Google Scholar 

  12. Fitzgerald, J., Larsen, P.G.: Modelling Systems: Practical Tools and Techniques in Software Development. Cambridge University Press, Cambridge (1998)

    Google Scholar 

  13. Fitzgerald, J., Larsen, P.G., Mukherjee, P., Plat, N., Verhoef, M.: Validated Designs for Object-oriented Systems. Springer, New York (2005)

    MATH  Google Scholar 

  14. Fitzgerald, J., Larsen, P.G., Sahara, S.: VDMTools: advances in support for formal modeling in VDM. SIGPLAN Notices 43(2), 3–11 (2008)

    Article  Google Scholar 

  15. Freitas, L., Fu, Z., Woodcock, J.: POSIX file store in Z/Eves: an experiment in the verified software repository. In: ICECCS 2007, Washington, DC, USA, pp. 3–14. IEEE Computer Society, Los Alamitos (2007)

    Google Scholar 

  16. Freyd, P.J., Ščedrov, A.: Categories, Allegories. Math. Lib., vol. 39. North-Holland, Amsterdam (1990)

    MATH  Google Scholar 

  17. Galloway, A., Lüttgen, G., Mühlberg, J.T., Siminiceanu, R.: Model-checking the linux virtual file system. In: Jones, N.D., Müller-Olm, M. (eds.) VMCAI 2009. LNCS, vol. 5403, pp. 74–88. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  18. Gordon, M.: From LCF to HOL: a short history, pp. 169–185. MIT Press, Cambridge (2000)

    Google Scholar 

  19. The VDM Tool Group. The VDM++ to Java Code Generator. Technical report, CSK Systems (January 2008)

    Google Scholar 

  20. Hesselink, W.H., Lali, M.I.: Formalizing an Hierarchical File System. Submitted to FM 2009 (2009)

    Google Scholar 

  21. Hoare, C.A.R.: The verifying compiler: A grand challenge for computing research. J. ACM 50(1), 63–69 (2003)

    Article  Google Scholar 

  22. Hoare, T., Misra, J.: Verified Software: Theories, Tools, Experiments Vision of a Grand Challenge Project. In: Meyer, B., Woodcock, J. (eds.) VSTTE 2005. LNCS, vol. 4171, pp. 1–18. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  23. IEEE and The Open Group. Standard for information technology - POSIX\(^{\textrm{\textregistered}}\). Base Definitions, Issue 6. IEEE Std 1003.1-2001. The Open Group Tech. Std. (2004)

    Google Scholar 

  24. Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press, Cambridge (2006)

    Google Scholar 

  25. Jones, C.B.: Systematic Software Development Using VDM, 2nd edn. Prentice-Hall International, Englewood Cliffs (1990)

    MATH  Google Scholar 

  26. Joshi, R., Holzmann, G.J.: A Mini Challenge: Build a Verifiable File system. In: Meyer, B., Woodcock, J. (eds.) VSTTE 2005. LNCS, vol. 4171, pp. 49–56. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  27. Kang, E., Jackson, D.: Formal Modeling and Analysis of a Flash Filesystem in Alloy. In: Börger, E., Butler, M., Bowen, J.P., Boca, P. (eds.) ABZ 2008. LNCS, vol. 5238, pp. 294–308. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  28. Larsen, P.G., Batle, N., Fitzgerald, J., Lausdahl, K., Ferreira, M., Verhoef, M.: The Overture Initiative Integrating all VDM tools (in preparation, 2009)

    Google Scholar 

  29. Larsen, P.G., Fitzgerald, J.S., Riddle, S.: Practice-oriented courses in formal methods using VDM++. Formal Asp. Comput. 21(3), 245–257 (2009)

    Article  Google Scholar 

  30. Larsen, P.G., Lausdahl, K., Batle, N.: Combinatorial Testing for VDM++. Submitted for publication (2009)

    Google Scholar 

  31. Leberre, D., Delorme, F.: An eclipse plugin for the alloy4 tool, http://code.google.com/p/alloy4eclipse/

  32. Oliveira, J.N.: Transforming Data by Calculation. In: Lämmel, R., Visser, J., Saraiva, J. (eds.) GTTSE 2007. LNCS, vol. 5235, pp. 134–195. Springer, Heidelberg (2008)

    Google Scholar 

  33. Oliveira, J.N.: Extended Static Checking by Calculation using the Pointfree Transform. In: Bove, A., et al. (eds.) LerNet ALFA Summer School 2008. LNCS, vol. 5520, pp. 195–251. Springer, Heidelberg (2009)

    Google Scholar 

  34. Plat, N., Larsen, P.G.: An overview of the ISO/VDM-SL standard. SIGPLAN Notices 27(8), 76–82 (1992)

    Article  Google Scholar 

  35. Schierl, A., Schellhorn, G., Haneberg, D., Reif, W.: Abstract Specification of the UBIFS File System for Flash Memory. Submitted to FM 2009 (2009)

    Google Scholar 

  36. Slind, K., Norrish, M.: A Brief Overview of HOL4. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 28–32. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  37. Tarski, A., Givant, S.: A Formalization of Set Theory without Variables. American Math. Soc., vol. 41. AMS Colloq. Pub., Providence (1987)

    MATH  Google Scholar 

  38. Vermolen, S.: Automatically Discharging VDM Proof Obligations using HOL. Master’s thesis, Radboud University, Computer Science Department (2007)

    Google Scholar 

  39. Weiser, M.: Program slicing. In: 5th Int. Conf. on Software Eng., San Diego, California (March 1981)

    Google Scholar 

  40. Yang, J., Twohey, P., Engler, D.R., Musuvathi, M.: Using model checking to find serious file system errors. ACM Trans. Comput. Syst. 24(4), 393–423 (2006)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ferreira, M.A., Oliveira, J.N. (2009). An Integrated Formal Methods Tool-Chain and Its Application to Verifying a File System Model. In: Oliveira, M.V.M., Woodcock, J. (eds) Formal Methods: Foundations and Applications. SBMF 2009. Lecture Notes in Computer Science, vol 5902. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-10452-7_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-10452-7_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-10451-0

  • Online ISBN: 978-3-642-10452-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics