Abstract
This paper studies the compositional definition and behaviour of properties that arise in pointer structures. A pointer structure is represented as a (pointer) graph. A pointer property is a set of pointer structures. A parameterised binary combinator is defined that enables important properties (like acyclicity, canonicity and reachability) to be defined in a compositional manner. The technique of parameterising a combinator derives from the definition of parallel-by-merge in ‘Unifying Theories of Programming’. It is applied here to the study of disjointness combinators that extend the separating conjunction of Separation Logic. A case study is provided to demonstrate how these ideas are used, in the form of rules of Hoare logic, to verify the correctness of an Object-Oriented 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
Bornat, R.: Proving pointer programs in Hoare logic. In: Backhouse, R., Oliveira, J.N. (eds.) MPC 2000. LNCS, vol. 1837, pp. 102–126. Springer, Heidelberg (2000)
Cardelli, L., Gardner, P., Ghelli, G.: A spatial logic for querying graphs. In: Widmayer, P., Triguero, F., Morales, R., Hennessy, M., Eidenbenz, S., Conejo, R. (eds.) ICALP 2002. LNCS, vol. 2380, pp. 597–610. Springer, Heidelberg (2002)
Chen, Y.: Generic composition. Formal Aspects of Computing 14(2), 108–122 (2002)
Harel, D.: Dynamic logic. In: Gabbay, D., Guenthner, F. (eds.) Handbook of Philosophical Logic, Extensions of Classical Logic, vol. II, pp. 497–604. D. Reidel Publ. Co. (1984)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall, Englewood Cliffs (1985)
He, J., Hoare, C.A.R.: Unifying Theories of Programming. Prentice Hall, Englewood Cliffs (1998)
He, J., Hoare, C.A.R.: A trace model for pointers and objects. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 1–17. Springer, Heidelberg (1999)
Ishtiaq, S.S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: Conf. Record of 28th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, POPL 2001, pp. 14–26. ACM Press, New York (2001)
Mijajlović, I., Torp-Smith, N., O’Hearn, P.W.: Refinement and separation contexts. In: Lodaya, K., Mahajan, M. (eds.) FSTTCS 2004. LNCS, vol. 3328, pp. 421–433. Springer, Heidelberg (2004)
Milner, R.: Communication and Concurrency. Prentice Hall, Englewood Cliffs (1989)
O’Hearn, P.W., Reynolds, J.C., Yang, H.: Local reasoning about programs that alter data structures. In: Fribourg, L. (ed.) CSL 2001 and EACSL 2001. LNCS, vol. 2142, pp. 1–19. Springer, Heidelberg (2001)
O’Hearn, P.W., Reynolds, J.C., Yang, H.: Separation and information hiding. In: Proc. of 31st ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, POPL 2004, pp. 268–280. ACM Press, New York (2004)
Paige, R.F., Ostroff, J.S.: ERC—an object-oriented refinement calculus for Eiffel. Formal Aspects of Computing 16(1), 51–79 (2004)
Parkinson, M., Bierman, G.: Separation logic and abstraction. In: Proc. of 32nd ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, POPL 2005, pp. 259–270. ACM Press, New York (2005)
Reynolds, J.C.: Separation logic: a logic for shared mutable data structures. In: Proc. of 17th IEEE Symp. on Logic in Computer Science, LICS 2002, pp. 55–74. IEEE Comput. Soc. Press, Los Alamitos (2002)
Yang, H.: Relational separation logic. Theor. Comput. Sci. (submitted)
Yang, H.: Verification of the Schorr–Waite graph marking algorithm by refinement. In: Workshop presentation (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chen, Y., Sanders, J.W. (2006). Compositional Reasoning for Pointer Structures. In: Uustalu, T. (eds) Mathematics of Program Construction. MPC 2006. Lecture Notes in Computer Science, vol 4014. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11783596_10
Download citation
DOI: https://doi.org/10.1007/11783596_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-35631-8
Online ISBN: 978-3-540-35632-5
eBook Packages: Computer ScienceComputer Science (R0)