Skip to main content

Towards Modular Algebraic Specifications for Pointer Programs: A Case Study

  • Chapter
Book cover Rewriting, Computation and Proof

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4600))

Abstract

We present on an example the framework currently under development in the Why/Krakatoa/Caduceus platform for proving that a Java or a C program is a correct implementation of some model defined by algebraic specifications, in a modular setting.

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. Floyd, R.W.: Assigning meanings to programs. In: Schwartz, J.T. (ed.) Mathematical Aspects of Computer Science. In: Proceedings of Symposia in Applied Mathematics, Providence, Rhode Island, American Mathematical Society, vol. 19, pp. 19–32 (1967)

    Google Scholar 

  2. Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580, 583 (1969)

    Article  MATH  Google Scholar 

  3. Dijkstra, E.W.: A discipline of programming. In: Series in Automatic Computation, Prentice Hall Int., Englewood Cliffs (1976)

    Google Scholar 

  4. Downey, P.J., Sethi, R., Tarjan, R.E.: Variations on the common subexpressions problem. Journal of the ACM 27, 771–785 (1980)

    Article  MathSciNet  Google Scholar 

  5. Nelson, G., Oppen, D.C.: Fast decision procedures based on congruence closure. Journal of the ACM 27, 356–364 (1980)

    Article  MATH  MathSciNet  Google Scholar 

  6. Ranise, S., Tinelli, C.:The smt-lib format: An initial proposal. In: Proceedings of PDPAR 2003 (2003)

    Google Scholar 

  7. Filliâtre, J.C., Marché, C.: The Why/Krakatoa/Caduceus platform for deductive program verification. In: Damm, W., Hermanns, H. (eds.) CAV 2007, LNCS, vol. 4590. Springer, Heidelberg (2007)

    Google Scholar 

  8. Burdy, L., Cheon, Y., Cok, D., Ernst, M., Kiniry, J., Leavens, G.T., Leino, K.R.M., Poll, E.: An overview of JML tools and applications. International Journal on Software Tools for Technology Transfer (2004)

    Google Scholar 

  9. Marché, C., Paulin-Mohring, C.: Reasoning about Java programs with aliasing and frame conditions. In: Hurd, J., Melham, T. (eds.) TPHOLs 2005. LNCS, vol. 3603, Springer, Heidelberg (2005)

    Google Scholar 

  10. Filliâtre, J.C., Marché, C.: Multi-prover verification of C programs. In: Davies, J., Schulte, W., Barnett, M. (eds.) ICFEM 2004. LNCS, vol. 3308, pp. 15–29. Springer, Heidelberg (2004)

    Google Scholar 

  11. Bornat, R.: Proving pointer programs in Hoare logic. In: Mathematics of Program Construction, pp. 102–126 (2000)

    Google Scholar 

  12. Marché, C., Paulin-Mohring, C., Urbain, X.: The Krakatoa tool for certification of Java/JavaCard programs annotated in JML. Journal of Logic and Algebraic Programming 58, 89–106 (2004), http://krakatoa.lri.fr

    Article  MATH  Google Scholar 

  13. Cheon, Y., Leavens, G., Sitaraman, M., Edwards, S.: Model variables: cleanly supporting abstraction in design by contract. Softw. Pract. Exper. 35(6), 583–599 (2005)

    Article  Google Scholar 

  14. Breunesse, C.B., Poll, E.: Verifying jml specifications with model fields. In: Formal Techniques for Java-like Programs (FTFJP 2003) (2003)

    Google Scholar 

  15. Boulmé, S., Potet, M.L.: Interpreting invariant composition in the B method using the Spec# ownership relation: a way to explain and relax Brestrictions. In: Julliand, J., Kouchnarenko, O. (eds.) B 2007. LNCS, vol. 4355, Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  16. Leavens, G.T., Leino, K.R.M., Müller, P.: Specification and verification challenges for sequential object-oriented programs. Formal Aspects of Computing (to appear, 2007)

    Google Scholar 

  17. Okasaki, C., Gill, A.: Fast mergeable integer maps. In: Workshop on ML, pp. 77–86 (1998)

    Google Scholar 

  18. Sedgewick, R.: Algorithms in Java, Parts 1-4, 3rd edn. Addison-Wesley, London, UK (2003)

    Google Scholar 

  19. Barthe, G., Courtieu, P.: Efficient Reasoning about Executable Specifications in Coq. In: Carreño, V.A., Muñoz, C.A., Tahar, S. (eds.) TPHOLs 2002. LNCS, vol. 2410, pp. 31–46. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  20. Barnett, M., DeLine, R., Fáhndrich, M., Leino, K.R.M., Schulte, W.: Verification of object-oriented programs with invariants. Journal of Object Technology 3(6), 27–56 (2004)

    Google Scholar 

  21. Reynolds, J.C.: Separation logic: a logic for shared mutable data structures. In: 17h Annual IEEE Symposium on Logic in Computer Science. IEEE Computer Society Press, Los Alamitos (2002)

    Google Scholar 

  22. Tofte, M., Talpin, J.P.: Region-based memory management. Information and Computation 132, 109–176 (1997)

    Article  MATH  MathSciNet  Google Scholar 

  23. Hubert, T., Marché, C.: Separation analysis for deductive verification. In: Heap Analysis and Verification (HAV 2007), Braga, Portugal (2007), http://www.lri.fr/~marche/hubert07hav.pdf

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hubert Comon-Lundh Claude Kirchner Hélène Kirchner

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Marché, C. (2007). Towards Modular Algebraic Specifications for Pointer Programs: A Case Study. In: Comon-Lundh, H., Kirchner, C., Kirchner, H. (eds) Rewriting, Computation and Proof. Lecture Notes in Computer Science, vol 4600. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-73147-4_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-73147-4_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-73146-7

  • Online ISBN: 978-3-540-73147-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics