Checking Graph Programs for Confluence

  • Ivaylo HristakievEmail author
  • Detlef Plump
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10748)


We present a method for statically verifying confluence (functional behaviour) of terminating sets of rules in the graph programming language GP 2, which is undecidable in general. In contrast to other work about attributed graph transformation, we do not impose syntactic restrictions on the rules except for left-linearity. Our checking method relies on constructing the symbolic critical pairs of a rule set using an E-unification algorithm and subsequently checking whether all pairs are strongly joinable with symbolic derivations. The correctness of this method is a consequence of the main technical result of this paper, viz. that a set of left-linear attributed rules is locally confluent if all symbolic critical pairs are strongly joinable, and our previous results on the completeness and finiteness of the set of symbolic critical pairs. We also show that for checking strong joinability, it is not necessary to compute all graphs derivable from a critical pair. Instead, it suffices to focus on the pair’s persistent reducts. In a case study, we use our method to verify the confluence of a graph program that calculates shortest distances.


  1. 1.
    Bak, C.: GP 2: efficient implementation of a graph programming language. Ph.D. thesis, University of York (2015).
  2. 2.
    Bang-Jensen, J., Gutin, G.: Digraphs: Theory, Algorithms and Applications, Second edn. Springer, Heidelberg (2009).
  3. 3.
    Ehrig, H., Ehrig, K., Prange, U., Taentzer, G.: Fundamentals of Algebraic Graph Transformation. Monographs in Theoretical Computer Science, Springer, Heidelberg (2006).
  4. 4.
    Ehrig, H., Golas, U., Habel, A., Lambers, L., Orejas, F.: \(\cal{M}\)-adhesive transformation systems with nested application conditions: part 2: embedding, critical pairs and local confluence. Fundamenta Informaticae 118(1–2), 35–63 (2012). MathSciNetzbMATHGoogle Scholar
  5. 5.
    Ehrig, H., Habel, A., Padberg, J., Prange, U.: Adhesive high-level replacement categories and systems. In: Ehrig, H., Engels, G., Parisi-Presicce, F., Rozenberg, G. (eds.) ICGT 2004. LNCS, vol. 3256, pp. 144–160. Springer, Heidelberg (2004).
  6. 6.
    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).
  7. 7.
    Habel, A., Plump, D.: \(\cal{M}, \cal{N}\)-adhesive transformation systems. In: Ehrig, H., Engels, G., Kreowski, H.-J., Rozenberg, G. (eds.) ICGT 2012. LNCS, vol. 7562, pp. 218–233. Springer, Heidelberg (2012). CrossRefGoogle Scholar
  8. 8.
    Hristakiev, I.: Confluence analysis for a graph programming language. Ph.D. thesis, University of York (2017, to appear)Google Scholar
  9. 9.
    Hristakiev, I., Plump, D.: A unification algorithm for GP 2. In: Graph Computation Models (GCM 2014), Revised Selected Papers. Electronic Communications of the EASST, vol. 71 (2015).
  10. 10.
    Hristakiev, I., Plump, D.: Attributed graph transformation via rule schemata: Church-Rosser theorem. In: Milazzo, P., Varró, D., Wimmer, M. (eds.) STAF 2016. LNCS, vol. 9946, pp. 145–160. Springer, Heidelberg (2016).
  11. 11.
    Hristakiev, I., Plump, D.: Checking graph programs for confluence (long version) (2017).
  12. 12.
    Hristakiev, I., Plump, D.: Towards critical pair analysis for the graph programming language GP 2. In: James, P., Roggenbach, M. (eds.) WADT 2016. LNCS, vol. 10644, pp. 153–169. Springer, Heidelberg (2017). Long version available at:
  13. 13.
    Kroening, D., Strichman, O.: Decision Procedures - An Algorithmic Point of View. Texts in Theoretical Computer Science, Springer, Second edn. (2016).
  14. 14.
    Kulcsár, G., Deckwerth, F., Lochau, M., Varró, G., Schürr, A.: Improved conflict detection for graph transformation with attributes. In: Rensink, A., Zambon, E. (eds.) Proceedings of Graphs as Models (GaM 2015). Electronic Proceedings in Theoretical Computer Science, vol. 181, pp. 97–112 (2015).
  15. 15.
    de Moura, L.M., Bjørner, N.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008).,
  16. 16.
    Orejas, F., Lambers, L.: Lazy graph transformation. Fundamenta Informaticae 118(1–2), 65–96 (2012). MathSciNetzbMATHGoogle Scholar
  17. 17.
    Plump, D.: Confluence of graph transformation revisited. In: Middeldorp, A., van Oostrom, V., van Raamsdonk, F., de Vrijer, R. (eds.) Processes, Terms and Cycles: Steps on the Road to Infinity: Essays Dedicated to Jan Willem Klop on the Occasion of His 60th Birthday. LNCS, vol. 3838, pp. 280–308. Springer, Heidelberg (2005).
  18. 18.
    Plump, D.: The design of GP 2. In: Escobar, S. (ed.) Proceedings of International Workshop on Reduction Strategies in Rewriting and Programming (WRS 2011). Electronic Proceedings in Theoretical Computer Science, vol. 82, pp. 1–16 (2012).

Copyright information

© Springer International Publishing AG 2018

Authors and Affiliations

  1. 1.University of YorkYorkUK

Personalised recommendations