A Hoare Calculus for Graph Programs

  • Christopher M. Poskitt
  • Detlef Plump
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6372)

Abstract

We present Hoare-style axiom schemata and inference rules for verifying the partial correctness of programs in the graph programming language GP. The pre- and postconditions of this calculus are the nested conditions of Habel, Pennemann and Rensink, extended with expressions for labels in order to deal with GP’s conditional rule schemata and infinite label alphabet. We show that the proof rules are sound with respect to GP’s operational semantics.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Apt, K.R., de Boer, F.S., Olderog, E.-R.: Verification of Sequential and Concurrent Programs, 3rd edn. Springer, Heidelberg (2009)MATHGoogle Scholar
  2. 2.
    Baldan, P., Corradini, A., König, B.: A framework for the verification of infinite-state graph transformation systems. Information and Computation 206(7), 869–907 (2008)MATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Bisztray, D., Heckel, R., Ehrig, H.: Compositional verification of architectural refactorings. In: de Lemos, R. (ed.) Architecting Dependable Systems VI. LNCS, vol. 5835, pp. 308–333. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  4. 4.
    Geiß, R., Batz, G.V., Grund, D., Hack, S., Szalkowski, A.M.: GrGen: A fast SPO-based graph rewriting tool. In: Corradini, A., Ehrig, H., Montanari, U., Ribeiro, L., Rozenberg, G. (eds.) ICGT 2006. LNCS, vol. 4178, pp. 383–397. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  5. 5.
    Habel, A., Pennemann, K.-H.: Correctness of high-level transformation systems relative to nested conditions. Mathematical Structures in Computer Science 19(2), 245–296 (2009)MATHCrossRefMathSciNetGoogle Scholar
  6. 6.
    Habel, A., Pennemann, K.-H., Rensink, A.: Weakest preconditions for high-level programs. In: Corradini, A., Ehrig, H., Montanari, U., Ribeiro, L., Rozenberg, G. (eds.) ICGT 2006. LNCS, vol. 4178, pp. 445–460. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  7. 7.
    Habel, A., Plump, D.: Computational completeness of programming languages based on graph transformation. In: Honsell, F., Miculan, M. (eds.) FOSSACS 2001. LNCS, vol. 2030, pp. 230–245. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  8. 8.
    Habel, A., Plump, D.: Relabelling in graph transformation. In: Corradini, A., Ehrig, H., Kreowski, H.-J., Rozenberg, G. (eds.) ICGT 2002. LNCS, vol. 2505, pp. 135–147. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  9. 9.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580 (1969)MATHCrossRefGoogle Scholar
  10. 10.
    König, B., Kozioura, V.: Towards the verification of attributed graph transformation systems. In: Ehrig, H., Heckel, R., Rozenberg, G., Taentzer, G. (eds.) ICGT 2008. LNCS, vol. 5214, pp. 305–320. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  11. 11.
    Manning, G., Plump, D.: The GP programming system. In: Proc. Graph Transformation and Visual Modelling Techniques (GT-VMT 2008). Electronic Communications of the EASST, vol. 10 (2008)Google Scholar
  12. 12.
    Nickel, U., Niere, J., Zündorf, A.: The FUJABA environment. In: Proc. International Conference on Software Engineering (ICSE 2000), pp. 742–745. ACM Press, New York (2000)Google Scholar
  13. 13.
    Plump, D.: The graph programming language GP. In: Bozapalidis, S., Rahonis, G. (eds.) Algebraic Informatics. LNCS, vol. 5725, pp. 99–122. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  14. 14.
    Plump, D., Steinert, S.: The semantics of graph programs. In: Proc. Rule-Based Programming (RULE 2009). EPTCS, vol. 21, pp. 27–38 (2010)Google Scholar
  15. 15.
    Poskitt, C.M., Plump, D.: A Hoare calculus for graph programs (long version) (2010), http://www.cs.york.ac.uk/plasma/publications/pdf/PoskittPlump.ICGT.10.Long.pdf
  16. 16.
    Rensink, A., Schmidt, Á., Varró, D.: Model checking graph transformations: A comparison of two approaches. In: Ehrig, H., Engels, G., Parisi-Presicce, F., Rozenberg, G. (eds.) ICGT 2004. LNCS, vol. 3256, pp. 226–241. Springer, Heidelberg (2004)Google Scholar
  17. 17.
    Schürr, A., Winter, A., Zündorf, A.: The PROGRES approach: Language and environment. In: Ehrig, H., Engels, G., Kreowski, H.-J., Rozenberg, G. (eds.) Handbook of Graph Grammars and Computing by Graph Transformation, ch. 13, vol. 2, pp. 487–550. World Scientific, Singapore (1999)Google Scholar
  18. 18.
    Taentzer, G.: AGG: A graph transformation environment for modeling and validation of software. In: Pfaltz, J.L., Nagl, M., Böhlen, B. (eds.) AGTIVE 2003. LNCS, vol. 3062, pp. 446–453. Springer, Heidelberg (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Christopher M. Poskitt
    • 1
  • Detlef Plump
    • 1
  1. 1.Department of Computer ScienceThe University of YorkUK

Personalised recommendations