Skip to main content

Towards Practical Proofs of Class Correctness

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2651))

Abstract

Preliminary steps towards a theory, framework and process for proving that contract-equipped classes satisfy their contracts, including when the run-time structure involves pointers; and its application to correctness proofs of routines from a LINKED_LIST class, such as element removal and list reversal.

(also Eiffel Software, Santa Barbara, and Monash University)

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Martín Abadi and Luca Cardelli: A Theory of Objects, Monographs in Computer Science, Springer-Verlag, 1996.

    Google Scholar 

  2. Jean-Raymond Abrial, The B Book, Cambridge University Press, 1995.

    Google Scholar 

  3. Ralph Back, X. Fan and Viorel Preoteasa: Reasoning about Pointers in Refinement Calculus, Technical Report, Turku Centre for Computer Science, Turku (Finland), 22 August 2002.

    Google Scholar 

  4. Richard Bornat: Proving Pointer Programs in Hoare Logic, in Mathematics of Program Construction, Springer-Verlag, 2000, pages 102–106.

    Google Scholar 

  5. ClearSy [name of company, no author listed]: Web documents on Atelier B, http://www.atelierb.societe.com, last consulted December 2002.

  6. C.A.R. Hoare: Proof of Correctness of Data Representations, in Acta Informatica 1 (1972), pp. 271–281. Also in C.A.R. Hoare and C. B. Jones (ed.): Essays in Computing Science, Prentice Hall International, Hemel Hempstead (U.K.), 1989, pages 103–115.

    Article  MATH  Google Scholar 

  7. C. A. R. Hoare. Procedures and parameters: An axiomatic approach. In E. Engeler, editor, Symposium on Semantics of Algorithmic Languages, volume 188 of Lecture Notes in Mathematics, pages 102–116. Springer-Verlag, 1971.

    Google Scholar 

  8. C.A.R. Hoare and He Jifeng: A Trace Model for Pointers, in ECOOP’ 99 — Object-Oriented Programming, Proceedings of 13th European Conference on Object-Oriented Programming, Lisbon, June 1999, ed. Rachid Guerraoui, Lecture Notes in Computer Science 1628, Springer-Verlag, pages 1–17.

    Chapter  Google Scholar 

  9. Bertrand Meyer: Introduction to the Theory of Programming Languages, Prentice Hall, 1990.

    Google Scholar 

  10. Bertrand Meyer: Object-Oriented Software Construction, 2nd edition, Prentice Hall, 1997.

    Google Scholar 

  11. Bertrand Meyer, Christine Mingins and Heinz Schmidt: Providing Trusted Components to the Industry, in Computer (IEEE), vol. 31, no. 5, May 1998, pages 104–105.

    Article  Google Scholar 

  12. Bertrand Meyer et al.: Trusted Components papers at se.inf.ethz.ch, last consulted December 2002.

    Google Scholar 

  13. Bertrand Meyer: Proving Pointer Program Properties, series of columns to appear in Journal of Object Technology, draft version available at http://www.inf.ethz.ch/~meyer/ongoing/references/, last consulted January 2003.

  14. Bertrand Meyer: A Framework for Proving Contract-Equipped Classes, to appear in Abstract State Machines 2003 — Advances in Theory and Applications, Proc. 10th International Workshop, Taormina, Italy, March 3–7, 2003, eds. Egon Boerger, Angelo Gargantini, Elvinia Riccobene, Springer-Verlag 2003. Prepublication copy at http://www.inf.ethz.ch/~meyer/publications/, last consulted January 2003.

  15. Bernhard Möller: Calculating with Pointer Structures, in Algorithmic Languages and Calculi, Proceedings of IFIP TC2/WG2.1 Working Conference, Le Bischenberg (France), February 1997, Chapman and Hall, 1997, pages 24–48.

    Google Scholar 

  16. Joseph M. Morris, A general axiom of assignment; Assignment and linked data structures; A proof of the Schorr-Waite algorithm. In Theoretical Foundations of Programming Methodology, Proceedings of the 1981 Marktoberdorf Summer School, eds. Manfred Broy and Gunther Schmidt, Reidel 1982, pages 25–51.

    Google Scholar 

  17. John C. Reynolds: Separation Logic: A Logic for Shared mutable Data Structures, in Proceedings of 17th Annual IEEE Symposium on Logic in Computer Science, Copenhagen, July 22–25 2002.

    Google Scholar 

  18. Norihisha Suzuki, Analysis of Pointer “Rotation”, in Communications of the ACM, vol. 25, no. 5, May 1982, pages 330–335.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Meyer, B. (2003). Towards Practical Proofs of Class Correctness. In: Bert, D., Bowen, J.P., King, S., Waldén, M. (eds) ZB 2003: Formal Specification and Development in Z and B. ZB 2003. Lecture Notes in Computer Science, vol 2651. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44880-2_22

Download citation

  • DOI: https://doi.org/10.1007/3-540-44880-2_22

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40253-4

  • Online ISBN: 978-3-540-44880-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics