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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Escher Technologies - Products, http://www.eschertech.com/products
Spin - Formal Verification, http://spinroot.com
Bird, R., de Moor, O.: Algebra of Programming. Series in Computer Science. Prentice-Hall International, Englewood Cliffs (1997), C.A.R. Hoare, series editor
Bjørner, D., Jones, C.B.: The Vienna Development Method: The Meta-Language. LNCS, vol. 61. Springer, Heidelberg (1978)
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)
Intel Corporation. Intel\(^{\textrm{\textregistered}}\) Flash File System Core Reference Guide. Technical report 304436-001, Intel Corporation (2004)
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)
Ferreira, M.: Verifying Intel\(^{\textrm{\textregistered}}\) Flash File System Core. Master’s thesis, Minho University (January 2009)
Ferreira, M., Silva, S., Oliveira, J.N.: Verifying Intel Flash File System Core Specification. In: Fourth VDM/Overture Workshop (CS-TR-1099) (May 2008)
Ferreira, M.A.: Implementing the Overture Automatic Proof System (submitted for publication, 2009)
Ferreira, M.A., Oliveira, J.N.: Verifying the (generic) flash memory implementation of abstract mappings (in preparation, 2009)
Fitzgerald, J., Larsen, P.G.: Modelling Systems: Practical Tools and Techniques in Software Development. Cambridge University Press, Cambridge (1998)
Fitzgerald, J., Larsen, P.G., Mukherjee, P., Plat, N., Verhoef, M.: Validated Designs for Object-oriented Systems. Springer, New York (2005)
Fitzgerald, J., Larsen, P.G., Sahara, S.: VDMTools: advances in support for formal modeling in VDM. SIGPLAN Notices 43(2), 3–11 (2008)
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)
Freyd, P.J., Ščedrov, A.: Categories, Allegories. Math. Lib., vol. 39. North-Holland, Amsterdam (1990)
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)
Gordon, M.: From LCF to HOL: a short history, pp. 169–185. MIT Press, Cambridge (2000)
The VDM Tool Group. The VDM++ to Java Code Generator. Technical report, CSK Systems (January 2008)
Hesselink, W.H., Lali, M.I.: Formalizing an Hierarchical File System. Submitted to FM 2009 (2009)
Hoare, C.A.R.: The verifying compiler: A grand challenge for computing research. J. ACM 50(1), 63–69 (2003)
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)
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)
Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press, Cambridge (2006)
Jones, C.B.: Systematic Software Development Using VDM, 2nd edn. Prentice-Hall International, Englewood Cliffs (1990)
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)
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)
Larsen, P.G., Batle, N., Fitzgerald, J., Lausdahl, K., Ferreira, M., Verhoef, M.: The Overture Initiative Integrating all VDM tools (in preparation, 2009)
Larsen, P.G., Fitzgerald, J.S., Riddle, S.: Practice-oriented courses in formal methods using VDM++. Formal Asp. Comput. 21(3), 245–257 (2009)
Larsen, P.G., Lausdahl, K., Batle, N.: Combinatorial Testing for VDM++. Submitted for publication (2009)
Leberre, D., Delorme, F.: An eclipse plugin for the alloy4 tool, http://code.google.com/p/alloy4eclipse/
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)
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)
Plat, N., Larsen, P.G.: An overview of the ISO/VDM-SL standard. SIGPLAN Notices 27(8), 76–82 (1992)
Schierl, A., Schellhorn, G., Haneberg, D., Reif, W.: Abstract Specification of the UBIFS File System for Flash Memory. Submitted to FM 2009 (2009)
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)
Tarski, A., Givant, S.: A Formalization of Set Theory without Variables. American Math. Soc., vol. 41. AMS Colloq. Pub., Providence (1987)
Vermolen, S.: Automatically Discharging VDM Proof Obligations using HOL. Master’s thesis, Radboud University, Computer Science Department (2007)
Weiser, M.: Program slicing. In: 5th Int. Conf. on Software Eng., San Diego, California (March 1981)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)