Skip to main content

Checking Graph Programs for Confluence

  • Conference paper
  • First Online:
Software Technologies: Applications and Foundations (STAF 2017)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 10748))

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    A pushout is natural if it is also a pullback.

  2. 2.

    For the construction of pullbacks over partially labelled graphs see [7, Sect. 4].

References

  1. Bak, C.: GP 2: efficient implementation of a graph programming language. Ph.D. thesis, University of York (2015). http://etheses.whiterose.ac.uk/id/eprint/12586

  2. Bang-Jensen, J., Gutin, G.: Digraphs: Theory, Algorithms and Applications, Second edn. Springer, Heidelberg (2009). https://doi.org/10.1007/978-1-84800-998-1

  3. Ehrig, H., Ehrig, K., Prange, U., Taentzer, G.: Fundamentals of Algebraic Graph Transformation. Monographs in Theoretical Computer Science, Springer, Heidelberg (2006). https://doi.org/10.1007/3-540-31188-2

  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). https://doi.org/10.3233/FI-2012-705

    MathSciNet  MATH  Google Scholar 

  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). https://doi.org/10.1007/978-3-540-30203-2_12

  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). https://doi.org/10.1007/3-540-45832-8_12

  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). https://doi.org/10.1007/978-3-642-33654-6_15

    Chapter  Google Scholar 

  8. Hristakiev, I.: Confluence analysis for a graph programming language. Ph.D. thesis, University of York (2017, to appear)

    Google Scholar 

  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). https://doi.org/10.14279/tuj.eceasst.71.1002

  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). https://doi.org/10.1007/978-3-319-50230-4_11

  11. Hristakiev, I., Plump, D.: Checking graph programs for confluence (long version) (2017). https://www.cs.york.ac.uk/plasma/publications/pdf/HristakievPlump.GCM17.Long.pdf

  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). https://doi.org/10.1007/978-3-319-72044-9_11. Long version available at: https://www.cs.york.ac.uk/plasma/publications/pdf/HristakievPlump.WADT16.Long.pdf

  13. Kroening, D., Strichman, O.: Decision Procedures - An Algorithmic Point of View. Texts in Theoretical Computer Science, Springer, Second edn. (2016). https://doi.org/10.1007/978-3-662-50497-0

  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). https://doi.org/10.4204/EPTCS.181.7

  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). https://doi.org/10.1007/978-3-540-78800-3_24, https://github.com/Z3Prover/z3

  16. Orejas, F., Lambers, L.: Lazy graph transformation. Fundamenta Informaticae 118(1–2), 65–96 (2012). https://doi.org/10.3233/FI-2012-706

    MathSciNet  MATH  Google Scholar 

  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). https://doi.org/10.1007/11601548_16

  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). https://doi.org/10.4204/EPTCS.82.1

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ivaylo Hristakiev .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Hristakiev, I., Plump, D. (2018). Checking Graph Programs for Confluence. In: Seidl, M., Zschaler, S. (eds) Software Technologies: Applications and Foundations. STAF 2017. Lecture Notes in Computer Science(), vol 10748. Springer, Cham. https://doi.org/10.1007/978-3-319-74730-9_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-74730-9_8

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-74729-3

  • Online ISBN: 978-3-319-74730-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics