Canonical Graph Shapes

  • Arend Rensink
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2986)


Graphs are an intuitive model for states of a (software) system that include pointer structures | for instance, object-oriented programs. However, a naive encoding results in large individual states and large, or even unbounded, state spaces. As usual, some form of abstraction is necessary in order to arrive at a tractable model. In this paper we propose a decidable fragment of first-order graph logic that we call local shape logic LSL as a possible abstraction mechanism, inspired by previous work of Sagiv, Reps and Wilhelm. An LSL formula constrains the multiplicities of nodes and edges in state graphs; abstraction is achieved by reasoning not about individual, concrete state graphs but about their characteristic shape properties. We go on to define the concept of the canonical shape of a state graph, which is expressed in a monomorphic sub-fragment of LSL, for which we define a graphical representation. We show that the canonical shapes give rise to an automatic finite abstraction of the state space of a software system, and we give an upper bound to the size of this abstract state space.


Description Logic State Graph Outgoing Edge Unary Edge Separation Logic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Baader, F. (ed.): The Description Logic Handbook: Theory, Implementation and Applications. Cambridge University Press, Cambridge (2003)zbMATHGoogle Scholar
  2. 2.
    Baldan, P., König, B., König, B.: A logic for analyzing abstractions of graph transformation systems. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 255–272. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  3. 3.
    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)CrossRefGoogle Scholar
  4. 4.
    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)CrossRefGoogle Scholar
  5. 5.
    Courcelle, B.: Graph rewriting: An algebraic and logic approach. In: van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, vol. A, pp. 193–239. Elsevier, Amsterdam (1990)Google Scholar
  6. 6.
    Distefano, D., Rensink, A., Katoen, J.-P.: Model checking birth and death. In: Baeza-Yates, R., Montanari, U., Santoro, N. (eds.) Foundations of Information Technology in the Era of Network and Mobile Computing. IFIP Conference Proceedings, vol. 223, pp. 435–447. Kluwer Academic Publishers, Dordrecht (2002)Google Scholar
  7. 7.
    Distefano, D., Rensink, A., Katoen, J.-P.: Who is pointing when to whom: On model-checking pointer structures. CTIT Technical Report TR–CTIT–03–12, Department of Computer Science, University of Twente (September 2003)Google Scholar
  8. 8.
    Ferreira, P.L., Ribeiro, L.: Towards object-oriented graphs and grammars. In: Najm, E., Nestmann, U., Stevens, P. (eds.) FMOODS 2003. LNCS, vol. 2884, pp. 16–31. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  9. 9.
    Fradet, P., Le Métayer, D.: Shape types. In: Principles of Programming Languages, pp. 27–39. ACM Press, New York (1997)Google Scholar
  10. 10.
    Grädel, E., Kolatis, P.G., Vardi, M.Y.: On the decision problem for two-variable first-order logic. The Bulletin of Symbolic Logic 3(1), 53–69 (1997)zbMATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    Grädel, E., Otto, M., Rosen, E.: Two-variable logic with counting is decidable. In: Logic in Computer Science, pp. 306–317. Computer Society Press (1997)Google Scholar
  12. 12.
    Klarlund, N., Schwartzbach, M.I.: Graph types. In: Principles of Programming Languages, January 1993, pp. 196–205. ACM Press, New York (1993)Google Scholar
  13. 13.
    Mortimer, M.: On languages with two variables. Zeitschrift für Mathematische Logik und Grundlagen der Mathematik 21, 135–140 (1975)zbMATHMathSciNetCrossRefGoogle Scholar
  14. 14.
    O’Hearn, P., Reynolds, J., 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)CrossRefGoogle Scholar
  15. 15.
    Papadimitriou, C.H.: On the complexity of integer programming. J. ACM 28(4), 765–768 (1981)zbMATHCrossRefMathSciNetGoogle Scholar
  16. 16.
    Rensink, A.: A logic of local graph shapes. CTIT Technical Report TR–CTIT–03– 35, Faculty of Informatics, University of Twente (August 2003)Google Scholar
  17. 17.
    Reynolds, J.: Separation logic: A logic for shared mutable data structures. In: Logic in Computer Science. Computer Society Press (2002)Google Scholar
  18. 18.
    Sagiv, M., Reps, T., Wilhelm, R.: Solving shape-analysis problems in languages with destructive updating. ACM Trans. Prog. Lang. Syst. 20(1), 1–50 (1998)CrossRefGoogle Scholar
  19. 19.
    Scott, D.: A decision method for validity of sentences in two variables. J. Symb. Log. 27, 477 (1962)Google Scholar
  20. 20.
    Yang, H., O’Hearn, P.: A semantic basis for local reasoning. In: Nielsen, M., Engberg, U. (eds.) FOSSACS 2002. LNCS, vol. 2303, pp. 402–416. Springer, Heidelberg (2002)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Arend Rensink
    • 1
  1. 1.Department of Computer ScienceUniversity of TwenteThe Netherlands

Personalised recommendations