Skip to main content

Modular Verification of Recursive Programs

  • Chapter
Languages: From Formal to Natural

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

Abstract

We argue that verification of recursive programs by means of the assertional method of C.A.R. Hoare can be conceptually simplified using a modular reasoning. In this approach some properties of the program are established first and subsequently used to establish other program properties. We illustrate this approach by providing a modular correctness proof of the Quicksort program.

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. America, P., de Boer, F.S.: Proving total correctness of recursive procedures. Information and Computation 84(2), 129–162 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  2. Apt, K.R.: Ten years of Hoare’s logic, a survey, part I. ACM Transactions on Programming Languages and Systems 3, 431–483 (1981)

    Article  MATH  Google Scholar 

  3. Apt, K.R., de Boer, F.S., Olderog, E.-R.: Verification of Sequential and Concurrent Programs, 3rd extended edn. Springer, New York (2009) (to appear)

    Book  MATH  Google Scholar 

  4. Barendregt, H.P.: The Lambda Calculus. North Holland, Amsterdam (1984)

    MATH  Google Scholar 

  5. Bekić, H.: Definable operations in general algebras, and the theory of automata and flow charts. Technical report, IBM Laboratory, Vienna (1969); Typescript

    Google Scholar 

  6. FilliĂ¢tre, J.-C., Magaud, N.: Certification of sorting algorithms in the system Coq. In: Theorem Proving in Higher Order Logics: Emerging Trends (1999)

    Google Scholar 

  7. Foley, M., Hoare, C.A.R.: Proof of a recursive program: Quicksort. Computer Journal 14(4), 391–395 (1971)

    Article  MathSciNet  MATH  Google Scholar 

  8. Hailpern, B., Owicki, S.: Modular verification of concurrent programs. In: POPL 1982: Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 322–336. ACM, New York (1982)

    Google Scholar 

  9. Hoare, C.A.R.: Algorithm 65, Find. Communications of the ACM 4(7), 321 (1961)

    Article  Google Scholar 

  10. Hoare, C.A.R.: Quicksort. Comput. J. 5(1), 10–15 (1962)

    Article  MathSciNet  MATH  Google Scholar 

  11. Hoare, C.A.R.: Procedures and parameters: an axiomatic approach. In: Engeler, E. (ed.) Proceedings of Symposium on the Semantics of Algorithmic Languages, New York. Lecture Notes in Mathematics, vol. 188, pp. 102–116. Springer, Heidelberg (1971)

    Chapter  Google Scholar 

  12. Hoare, C.A.R.: Proof of a program: Find. Communications of the ACM 14(1), 39–45 (1971)

    Article  MATH  Google Scholar 

  13. Kaldewaij, A.: Programming: The Derivation of Algorithms. Prentice-Hall, Englewood Cliffs (1990)

    MATH  Google Scholar 

  14. Olderog, E.-R.: On the notion of expressiveness and the rule of adaptation. Theoretical Computer Science 30, 337–347 (1983)

    Article  MathSciNet  MATH  Google Scholar 

  15. Owre, S., Shankar, N.: Writing PVS proof strategies. In: Archer, M., Di Vito, B., Muñoz, C. (eds.) Design and Application of Strategies/Tactics in Higher Order Logics (STRATA 2003), number CP-2003-212448 in NASA Conference Publication, Hampton, VA, September 2003, pp. 1–15. NASA Langley Research Center (2003)

    Google Scholar 

  16. Plotkin, G.D.: A structural approach to operational semantics. Technical Report DAIMI-FN 19, Department of Computer Science, Aarhus University (1981)

    Google Scholar 

  17. Plotkin, G.D.: A structural approach to operational semantics. J. of Logic and Algebraic Programming, 60–61, 17–139 (2004); Revised version of [16]

    Google Scholar 

  18. Scott, D., de Bakker, J.W.: A theory of programs. Notes of an IBM Vienna Seminar (1969)

    Google Scholar 

  19. Taghdiri, M.: Automating Modular Program Verification by Refining Specifications. Ph.D thesis. MIT, Cambridge, Mass (2008), http://alloy.mit.edu/community/files/mana_thesis.pdf

  20. Zwiers, J.: Compositionality, Concurrency, and Partial Correctness. LNCS, vol. 321. Springer, Heidelberg (1989)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Apt, K.R., de Boer, F.S., Olderog, ER. (2009). Modular Verification of Recursive Programs. In: Grumberg, O., Kaminski, M., Katz, S., Wintner, S. (eds) Languages: From Formal to Natural. Lecture Notes in Computer Science, vol 5533. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-01748-3_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-01748-3_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-01747-6

  • Online ISBN: 978-3-642-01748-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics