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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
America, P., de Boer, F.S.: Proving total correctness of recursive procedures. Information and Computation 84(2), 129–162 (1990)
Apt, K.R.: Ten years of Hoare’s logic, a survey, part I. ACM Transactions on Programming Languages and Systems 3, 431–483 (1981)
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)
Barendregt, H.P.: The Lambda Calculus. North Holland, Amsterdam (1984)
Bekić, H.: Definable operations in general algebras, and the theory of automata and flow charts. Technical report, IBM Laboratory, Vienna (1969); Typescript
FilliĂ¢tre, J.-C., Magaud, N.: Certification of sorting algorithms in the system Coq. In: Theorem Proving in Higher Order Logics: Emerging Trends (1999)
Foley, M., Hoare, C.A.R.: Proof of a recursive program: Quicksort. Computer Journal 14(4), 391–395 (1971)
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)
Hoare, C.A.R.: Algorithm 65, Find. Communications of the ACMÂ 4(7), 321 (1961)
Hoare, C.A.R.: Quicksort. Comput. J. 5(1), 10–15 (1962)
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)
Hoare, C.A.R.: Proof of a program: Find. Communications of the ACM 14(1), 39–45 (1971)
Kaldewaij, A.: Programming: The Derivation of Algorithms. Prentice-Hall, Englewood Cliffs (1990)
Olderog, E.-R.: On the notion of expressiveness and the rule of adaptation. Theoretical Computer Science 30, 337–347 (1983)
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)
Plotkin, G.D.: A structural approach to operational semantics. Technical Report DAIMI-FN 19, Department of Computer Science, Aarhus University (1981)
Plotkin, G.D.: A structural approach to operational semantics. J. of Logic and Algebraic Programming, 60–61, 17–139 (2004); Revised version of [16]
Scott, D., de Bakker, J.W.: A theory of programs. Notes of an IBM Vienna Seminar (1969)
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
Zwiers, J.: Compositionality, Concurrency, and Partial Correctness. LNCS, vol. 321. Springer, Heidelberg (1989)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)