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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
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)