Skip to main content

Dependency Analysis of Functional Specifications with Algebraic Data Structures

  • Conference paper
  • First Online:
Book cover Formal Methods and Software Engineering (ICFEM 2015)

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

Included in the following conference series:

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.

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 EPUB and 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

Notes

  1. 1.

    http://www.provenrun.com/.

  2. 2.

    The corresponding files are provided: http://ajl2015.ddns.net/ajl2015/proveCoq.

  3. 3.

    http://ajl2015.ddns.net/ajl2015/.

References

  1. 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)

    Google Scholar 

  2. 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)

    Chapter  Google Scholar 

  3. Cuoq, P., Prevosto, V., Yakobowski, B.: Frama-c value analysis manual. http://frama-c.com/download/value-analysis-Neon-20140301.pdf

  4. 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)

    Chapter  Google Scholar 

  5. 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)

    Chapter  Google Scholar 

  6. Lescuyer, S.: ProvenCore: Towards a verified isolation micro-kernel (2015)

    Google Scholar 

  7. 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))

    Article  MATH  Google Scholar 

  8. Mccarthy, J., Hayes, P.J.: Some philosophical problems from the standpoint of artificial intelligence. In: Machine Intelligence, pp. 463–502. Edinburgh University Press (1969)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. 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)

    Chapter  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Oana F. Andreescu .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics