Abstract
In this paper we investigate the existence of a deductive verification method based on a logic that describes pointer aliasing. The main idea of such a method is that the user has to annotate the program with loop invariants, pre- and post-conditions. The annotations are then automatically checked for validity by propagating weakest preconditions and verifying a number of induced implications. Such a method requires an underlying logic which is decidable and has a sound and complete weakest precondition calculus. We start by presenting a powerful logic (wAL) which can describe the shapes of most recursively defined data structures (lists, trees, etc.) has a complete weakest precondition calculus but is undecidable. Next, we identify a decidable subset (pAL) for which we show closure under the weakest precondition operators. In the latter logic one loses the ability of describing unbounded heap structures, yet bounded structures can be characterized up to isomorphism. For this logic two sound and complete proof systems are given, one based on natural deduction, and another based on the effective method of analytic tableaux. The two logics presented in this paper can be seen as extreme values in a framework which attempts to reconcile the naturally oposite goals of expressiveness and decidability.
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
Benedikt, M., Reps, T., Sagiv, M.: A decidable logic for describing linked data structures. In: Swierstra, S.D. (ed.) ESOP 1999. LNCS, vol. 1576, pp. 2–19. Springer, Heidelberg (1999)
Bozga, M., Iosif, R., Lakhnech, Y.: Storeless Semantics and Alias Logic. In: Proc. ACM SIGPLAN 2003 Workshop on Partial Evaluation and Semantics Based Program Manipulation, pp. 55–65 (2003)
Bozga, M., Iosif, R., Lakhnech, Y.: On Logics of Aliasing. Technical Report TR-2004-4, VERIMAG, http://www-verimag.imag.fr/~iosif/TR-2004-4.ps
Bozga, M., Iosif, R.: On Model Checking Generic Topologies. Technical Report TR- 2004-10, VERIMAG, http://www-verimag.imag.fr/~iosif/TR-2004-10.ps
Calcagno, C., Yang, H., O’Hearn, P.W.: Computability and Complexity Results for a Spatial Assertion Language for Data Structures. In: Hariharan, R., Mukund, M., Vinay, V. (eds.) FSTTCS 2001. LNCS, vol. 2245, pp. 108–119. Springer, Heidelberg (2001)
Calcagno, C., Cardelli, L., Gordon, A.: Deciding Validity in a Spatial Logic of Trees. In: ACM Workshop on Types in Language Design and Implementation, pp. 62–73 (2003)
Courcelle, B.: Handbook of graph grammars and computing by graph transformations. In: The expression of graph properties and graph transformations in monadic second-order logic: Foundations, vol. 1, ch. 5, pp. 313–400 (1997)
Deutsch, A.: A storeless model of aliasing and its abstractions using finite representations of right-regular equivalence relations. In: Proceedings of the IEEE 1992 Conference on Computer Languages, pp. 2–13 (1992)
Ebbinghaus, H.D., Flum, J.: Finite Model Theory. Springer, Heidelberg (1999)
Floyd, R.W.: Assigning meaning to programs. In: Proc. Symposium on Applied Mathematics. American Mathematical Society, vol. 1, pp. 19–32 (1967)
Galmiche, D., Mery, D.: Semantic Labelled Tableaux for propositional BI (without bottom). Journal of Logic and Computation 13(5) (2003)
Hoare, C.A.R., Jifeng, H.: A Trace Model for Pointers and Objects. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 1–18. Springer, Heidelberg (1999)
Ishtiaq, S., O’Hearn, P.: BI as an Assertion Language for Mutable Data Structures. In: Proc. of 28th ACM-SIGPLAN Symposium on Principles of Programming Languages (2001)
Jonkers, H.B.M.: Abstract Storage Structures. Algorithmic Languages, pp. 321–343. North-Holland, Amsterdam (1981)
Klarlund, N., Schwartzbach, M.I.: Graphs and Decidable Transductions Based on Edge Constraints. In: Tison, S. (ed.) CAAP 1994. LNCS, vol. 787, pp. 187–201. Springer, Heidelberg (1994)
Klarlund, N., Schwartzbach, M.I.: Graph Types. In: Proc. 20th Annual Symposium on Principles of Programming Languages, pp. 196–205 (1993)
Moeller, A., Schwartzbach, M.I.: The Pointer Assertion Logic Engine. In: Proc. ACM SIGPLAN Conference on Programming Languages Design and Implementation (2001)
O’Hearn, P.W., Pym, D.J.: The Logic of Bunched Implications. Bulletin of Symbolic Logic 5(2), 215–244 (1999)
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)
Rabin, M.O.: Decidability of second order theories and automata on infinite trees. Trans. Amer. Math. Soc. 141 (1969)
Ramalingam, G.: The Undecidability of Aliasing. ACM Transactions on Programming Languages and Systems 16(5), 1467–1471 (1994)
Reynolds, J.C.: Separation Logic: A Logic for Shared Mutable Data Structures. In: Proc 17th IEEE Symposium on Logic in Computer Science (2002)
Sagiv, M., Reps, M.T., Wilhelm, R.: Parametric Shape Analysis via 3-Valued Logic. ACM Transactions on Programming Languages and Systems 24(3), 217–298 (2002)
Smullyan, R.M.: First-Order Logic. Dover Publications, New York (1993)
van Dalen, D.: Logic and Structure. Springer, Heidelberg (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bozga, M., Iosif, R., Lakhnech, Y. (2004). On Logics of Aliasing. In: Giacobazzi, R. (eds) Static Analysis. SAS 2004. Lecture Notes in Computer Science, vol 3148. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-27864-1_25
Download citation
DOI: https://doi.org/10.1007/978-3-540-27864-1_25
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22791-5
Online ISBN: 978-3-540-27864-1
eBook Packages: Springer Book Archive