Abstract
In the context of interactive formal verification of complex systems, much effort is spent on proving the preservation of the systems invariants. However, most operations have a localized effect on the system, which only really impacts few invariants at the same time. Identifying those invariants that are unaffected by an operation can substantially ease the proof burden for the programmer. We present a dependency analysis for a strongly-typed, functional language, which computes a conservative approximation of the input fragments on which the operations depend. It is a flow-sensitive interprocedural analysis that handles arrays, structures and variant data types. For the latter, it simultaneously computes a subset of possible constructors. We have validated the scalability of the analysis to complex transition systems by applying it to a functional specification of the MINIX operating system.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
The corresponding files are provided: http://ajl2015.ddns.net/ajl2015/proveCoq.
- 3.
References
Clarke, D., Drossopoulou, S.: Ownership, encapsulation and the disjointness of type and effect. In: Proceedings of the 17th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA 2002, pp. 292–310. ACM, New York, NY, USA (2002)
Cuoq, P., Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C. In: Eleftherakis, G., Hinchey, M., Holcombe, M. (eds.) SEFM 2012. LNCS, vol. 7504, pp. 233–247. Springer, Heidelberg (2012)
Cuoq, P., Prevosto, V., Yakobowski, B.: Frama-c value analysis manual. http://frama-c.com/download/value-analysis-Neon-20140301.pdf
Distefano, D., O’Hearn, P.W., Yang, H.: A local shape analysis based on separation logic. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006. LNCS, vol. 3920, pp. 287–302. Springer, Heidelberg (2006)
Leino, K.R.M., Müller, P.: Verification of equivalent-results methods. In: Drossopoulou, S. (ed.) ESOP 2008. LNCS, vol. 4960, pp. 307–321. Springer, Heidelberg (2008)
Lescuyer, S.: ProvenCore: Towards a verified isolation micro-kernel (2015)
Liu, Y., Stoller, S.: Eliminating dead code on recursive data. Sci. Comput. Program. 47(2–3), 221–242 (2003). (special Issue on Static Analysis (SAS 1999))
Mccarthy, J., Hayes, P.J.: Some philosophical problems from the standpoint of artificial intelligence. In: Machine Intelligence, pp. 463–502. Edinburgh University Press (1969)
Meyer, B.: Framing the frame problem. In: Pretschner, A., Broy, M., Irlbeck, M. (eds.) Dependable Software Systems, Proc. of August 2014 Marktoberdorf Summer School. pp. 174–185. D: Information and Communication Security, Springer (2015)
Robert, V., Leroy, X.: A formally-verified alias analysis. In: Hawblitzel, C., Miller, D. (eds.) CPP 2012. LNCS, vol. 7679, pp. 11–26. Springer, Heidelberg (2012)
Acknowledgments
We would like to thank the anonymous referees for helpful comments and suggestions. For his excellent comments and sharp observations, we are particularly grateful to Olivier Delande. Our article also benefited from the remarks of P. Bolignano, G. Dupéron, L. Hubert and B. Montagu.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Andreescu, O.F., Jensen, T., Lescuyer, S. (2015). Dependency Analysis of Functional Specifications with Algebraic Data Structures. In: Butler, M., Conchon, S., Zaïdi, F. (eds) Formal Methods and Software Engineering. ICFEM 2015. Lecture Notes in Computer Science(), vol 9407. Springer, Cham. https://doi.org/10.1007/978-3-319-25423-4_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-25423-4_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-25422-7
Online ISBN: 978-3-319-25423-4
eBook Packages: Computer ScienceComputer Science (R0)