Skip to main content
Log in

Automated reasoning for attributed graph properties

  • FASE 2017
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

Abstract

Graphs are ubiquitous in computer science. Moreover, in various application fields, graphs are equipped with attributes to express additional information such as names of entities or weights of relationships. Due to the pervasiveness of attributed graphs, it is highly important to have the means to express properties on attributed graphs to strengthen modeling capabilities and to enable analysis. Firstly, we introduce a new logic of attributed graph properties, where the graph part and attribution part are neatly separated. The graph part is equivalent to first-order logic on graphs as introduced by Courcelle. It employs graph morphisms to allow the specification of complex graph patterns. The attribution part is added to this graph part by reverting to the symbolic approach to graph attribution, where attributes are represented symbolically by variables whose possible values are specified by a set of constraints making use of algebraic specifications. Secondly, we extend our refutationally complete tableau-based reasoning method as well as our symbolic model generation approach for graph properties to attributed graph properties. Due to the new logic mentioned above, neatly separating the graph and attribution parts, and the categorical constructions employed only on a more abstract level, we can leave the graph part of the algorithms seemingly unchanged. For the integration of the attribution part into the algorithms, we use an oracle, allowing for flexible adoption of different available SMT solvers in the actual implementation. Finally, our automated reasoning approach for attributed graph properties is implemented in the tool AutoGraph integrating in particular the SMT solver Z3 for the attribute part of the properties. We motivate and illustrate our work with a particular application scenario on graph database query validation.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16

Similar content being viewed by others

Notes

  1. Firstly, the algebraic specification used is given by \((\Sigma _{A_2}, EQ )\) where \(\Sigma _{A_2}\) is the signature with variables obtained for the attribution \(A_2\) of \(G_2^{ sa }\) and the signature \(\Sigma \) from \( SP \) as in Definition 10. Secondly, \(f_{AX}: AX _1\rightarrow AX _2\) is a member of \(\mathcal {V}_{\Sigma _{A_1},\Sigma _{A_2}} \) according to Definition 4.

  2. The empty conjunction \(\wedge \emptyset \) is the base case of the inductive definition.

  3. Formally, the family is a map that assigns one triple to each \(i\in I'\).

  4. Intuitively, a triple \(\langle T_i,j,c_i\rangle \) is either generated by the initialization rule or is generated by the nesting rule and \(T_i\) is a tableau for a condition \(c_i\) that is the inner condition of some literal \(\ell =\exists (m,c_i)\) that is in a leaf node of the parent tableau \(T_j\) that is assigned to index j in \( NT \).

References

  1. Abiteboul, S., Hull, R., Vianu, V. (eds.): Foundations of Databases: The Logical Level, 1st edn. Addison-Wesley Longman Publishing Co., Inc., Boston, MA (1995)

    Google Scholar 

  2. Angles, R., Arenas, M., Barceló, P., Hogan, A., Reutter, J.L., Vrgoc, D.: Foundations of modern graph query languages. CoRR, abs/1610.06264 (2016)

  3. Angles, R., Gutierrez, C.: Survey of graph database models. ACM Comput. Surv. 40(1), 1:1–1:39 (2008)

    Article  Google Scholar 

  4. Bak, K., Diskin, Z., Antkiewicz, M., Czarnecki, K., Wasowski, A.: Clafer: unifying class and feature modeling. Softw. Syst. Model. 15(3), 811–845 (2016)

    Article  Google Scholar 

  5. Baudry, B.: Testing model transformations: a case for test generation from input domain models. In: Model-Driven Engineering for Distributed Real-Time Systems, Chap. 3, pp. 43–72. Wiley (2013). https://doi.org/10.1002/9781118558096.ch3

    Chapter  Google Scholar 

  6. Beyhl, T., Blouin, D., Giese, H., Lambers, L.: On the operationalization of graph queries with generalized discrimination networks. In: Echahed and Minas [12], pp. 170–186

    Chapter  Google Scholar 

  7. Blanco, R., Tuya, J.: A test model for graph database applications: an MDA-based approach. In: Vos Tanja E.J. Eldh, S., Prasetya, W. (eds.) Proceedings of the 6th International Workshop on Automating Test Case Design, Selection and Evaluation, A-TEST 2015, Bergamo, Italy, August 30–31, 2015, pp. 8–15. ACM (2015)

  8. Codd, E.F.: A relational model of data for large shared data banks. Commun. ACM 13(6), 377–387 (1970)

    Article  Google Scholar 

  9. Courcelle, B.: The expression of graph properties and graph transformations in monadic second-order logic. In: Rozenberg [44], pp. 313–400

    Chapter  Google Scholar 

  10. Daniel, G., Sunyé, G., Cabot, J.: Umltographdb: mapping conceptual schemas to graph databases. In: Comyn-Wattiau, I., Tanaka, K., Song, I.-Y., Yamamoto, S., Saeki, M. (eds.) Conceptual Modeling—35th International Conference, volume 9974 of Lecture Notes in Computer Science, pp. 430–444 (2016)

    Chapter  Google Scholar 

  11. Deckwerth, F.: Static verification techniques for attributed graph transformations. Ph.D. thesis, Darmstadt University of Technology, Germany (2017)

  12. Echahed, R., Minas, M. (eds.): Graph Transformation—9th International Conference, ICGT 2016, in Memory of Hartmut Ehrig, Held as Part of STAF 2016, Vienna, Austria, July 5–6, 2016, Proceedings, volume 9761 of Lecture Notes in Computer Science. Springer (2016)

  13. Ehrig, H., Ehrig, K., Prange, U., Taentzer, G.: Fundamentals of Algebraic Graph Transformation. Springer, Berlin (2006)

    MATH  Google Scholar 

  14. 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. Fundam. Inform. 118(1–2), 35–63 (2012). https://doi.org/10.3233/FI-2012-705

    Article  MathSciNet  MATH  Google Scholar 

  15. Ehrig, H., Heckel, R., Rozenberg, G., Taentzer, G., (eds.): Graph Transformations, 4th International Conference, ICGT 2008, Leicester, United Kingdom, September 7–13, 2008. Proceedings, volume 5214 of Lecture Notes in Computer Science. Springer (2008)

  16. Ehrig, H., Mahr, B.: Fundamentals of algebraic specification 1: equations und initial semantics. In: EATCS Monographs on Theoretical Computer Science, vol. 6. Springer, Heidelberg (1985). https://doi.org/10.1007/978-3-642-69962-7

    Book  MATH  Google Scholar 

  17. Giese, H., König, B. (eds.): Graph Transformation—7th International Conference, ICGT 2014, Held as Part of STAF 2014, York, UK, July 22–24, 2014. Proceedings, volume 8571 of Lecture Notes in Computer Science. Springer (2014)

  18. Gogolla, M., Hilken, F.: Model validation and verification options in a contemporary UML and OCL analysis tool. In: Oberweis, A., Reussner, R.H., (eds.) Modellierung 2016, 2.-4. März 2016, Karlsruhe, volume 254 of LNI, pp. 205–220. GI (2016)

  19. González, C.A., Cabot, J.: Test data generation for model transformations combining partition and constraint analysis. In: Ruscio, D.D., Varró, D. (eds.) Theory and Practice of Model Transformations—7th International Conference, ICMT 2014, Held as Part of STAF 2014, York, UK, July 21–22, 2014. Proceedings, volume 8568 of Lecture Notes in Computer Science, pp. 25–41. Springer (2014)

  20. Habel, A., Heckel, R., Taentzer, G.: Graph grammars with negative application conditions. Fundam. Inform. 26(3/4), 287–313 (1996)

    MathSciNet  MATH  Google Scholar 

  21. Habel, A., Pennemann, K.-H.: Correctness of high-level transformation systems relative to nested conditions. Math. Struct. Comput. Sci. 19(2), 245–296 (2009)

    Article  MathSciNet  Google Scholar 

  22. Hähnle, R.: Tableaux and related methods. In Robinson, J.A., Voronkov, A. (eds.) Handbook of Automated Reasoning (in 2 volumes), pp. 100–178. Elsevier and MIT Press (2001)

  23. Heckel, R., Wagner, A.: Ensuring consistency of conditional graph rewriting—a constructive approach. Electr. Notes Theor. Comput. Sci. 2, 118–126 (1995)

    Article  Google Scholar 

  24. Jackson, E.K., Levendovszky, T., Balasubramanian, D.: Reasoning about metamodeling with formal specifications and automatic proofs. In: Whittle, J., Clark, T., Kühne, T. (eds.) Model Driven Engineering Languages and Systems, 14th International Conference, MODELS 2011, Wellington, New Zealand, October 16–21, 2011. Proceedings, volume 6981 of Lecture Notes in Computer Science, pp. 653–667. Springer (2011)

  25. Jackson, E.K., Sztipanovits, J.: Constructive techniques for meta- and model-level reasoning. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds.) Model Driven Engineering Languages and Systems, 10th International Conference, MoDELS 2007, Nashville, USA, September 30–October 5, 2007, Proceedings, volume 4735 of Lecture Notes in Computer Science, pp. 405–419. Springer (2007)

  26. Krause, C., Johannsen, D., Deeb, R., Sattler, K.-U., Knacker, D., Niadzelka, A.: An SQL-based query language and engine for graph pattern matching. In: Echahed and Minas [12], pp. 153–169

    Chapter  Google Scholar 

  27. Lambers, L., Orejas, F.: Tableau-based reasoning for graph properties. In: Giese and König [17], pp. 17–32

    MATH  Google Scholar 

  28. Microsoft Corporation. Z3. https://github.com/Z3Prover/z3. Accessed 19 Sept 2017

  29. Milicevic, A., Near, J.P., Eunsuk, K., Jackson, D.: Alloy*: a general-purpose higher-order relational constraint solver. In: Bertolino, A., Canfora, G., Elbaum, S.G. (eds.) 37th IEEE/ACM International Conference on Software Engineering, ICSE 2015, Florence, Italy, May 16–24, 2015, Volume 1, pp. 609–619. IEEE Computer Society (2015)

  30. Mougenot, A., Darrasse, A., Blanc, X., Soria, M.: Uniform random generation of huge metamodel instances. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) Model Driven Architecture—Foundations and Applications, 5th European Conference, ECMDA-FA 2009, Enschede, The Netherlands, June 23–26, 2009. Proceedings, volume 5562 of Lecture Notes in Computer Science, pp. 130–145. Springer (2009)

    Google Scholar 

  31. Nelson, T., Saghafi, S., Dougherty, D.J., Fisler, K., Krishnamurthi, S.: Aluminum: principled scenario exploration through minimality. In: Notkin, D., Cheng, B.H.C., Pohl, K. (eds.) 35th International Conference on Software Engineering, ICSE ’13, San Francisco, CA, USA, May 18–26, 2013, pp. 232–241. IEEE Computer Society (2013)

  32. Orejas, F.: Attributed graph constraints. In: Ehrig et al. [15], pp. 274–288

  33. Orejas, F., Ehrig, H., Prange, U.: A logic of graph constraints. In: Fiadeiro, J.L., Inverardi, P. (eds.) Fundamental Approaches to Software Engineering, 11th International Conference, FASE 2008, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2008, Budapest, Hungary, March 29-April 6, 2008. Proceedings, volume 4961 of Lecture Notes in Computer Science, pp. 179–198. Springer (2008)

  34. Orejas, F., Ehrig, H., Prange, U.: Reasoning with graph constraints. Formal Asp. Comput. 22(3–4), 385–422 (2010)

    Article  Google Scholar 

  35. Orejas, F., Lambers, L.: Symbolic attributed graphs for attributed graph transformation. ECEASST 30, (2010). https://doi.org/10.1016/j.jsc.2010.09.009

    Article  MathSciNet  Google Scholar 

  36. Orejas, F., Lambers, L.: Lazy graph transformation. Fundam. Inform. 118(1–2), 65–96 (2012)

    MathSciNet  MATH  Google Scholar 

  37. Pennemann, K.-H.: An algorithm for approximating the satisfiability problem of high-level conditions. Electr. Notes Theor. Comput. Sci. 213(1), 75–94 (2008)

    Article  Google Scholar 

  38. Pennemann, K.-H.: Resolution-like theorem proving for high-level conditions. In: Ehrig et al. [15], pp. 289–304

  39. Pennemann, K.-H.: Development of correct graph transformation systems, Ph.D. Thesis. Dept. Informatik, Univ. Oldenburg (2009)

  40. Poskitt, C.M., Plump, D.: Verifying monadic second-order properties of graph programs. In: Giese and König [17], pp. 33–48

    MATH  Google Scholar 

  41. Radke, H.: HR* graph conditions between counting monadic second-order and second-order graph formulas. ECEASST 61, (2013). https://doi.org/10.14279/tuj.eceasst.61.831.831

  42. Radke, H., Arendt, T., Becker, J.S., Habel, A., Taentzer, G.: Translating essential OCL invariants to nested graph constraints focusing on set operations. In: Parisi-Presicce, F., Westfechtel, B. (eds.) Graph Transformation—8th International Conference, ICGT 2015, Held as Part of STAF 2015, L’Aquila, Italy, July 21–23, 2015. Proceedings, volume 9151 of Lecture Notes in Computer Science, pp. 155–170. Springer (2015)

  43. Rensink, A.: Representing first-order logic using graphs. In: Ehrig, H., Engels, G., Parisi-Presicce, F., Rozenberg, G. (eds.) Graph Transformations, Second International Conference, ICGT 2004, Rome, Italy, September 28–October 2, 2004, Proceedings, volume 3256 of Lecture Notes in Computer Science, pp. 319–335. Springer (2004)

  44. Rozenberg, G. (ed.).: Handbook of graph grammars and computing by graph transformations, vol. 1: foundations. World Scientific (1997). https://doi.org/10.1142/3303

    Book  Google Scholar 

  45. Salay, R., Chechik, M.: A generalized formal framework for partial modeling. In: Egyed, A., Schaefer, I. (eds.) Fundamental Approaches to Software Engineering—18th International Conference, FASE 2015, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2015, London, UK, April 11–18, 2015. Proceedings, volume 9033 of Lecture Notes in Computer Science, pp. 133–148. Springer (2015)

    Google Scholar 

  46. Schneider, S., Lambers, L., Orejas, F.: Symbolic model generation for graph properties. In: Huisman, M., Rubin, J. (eds). Fundamental Approaches to Software Engineering—20th International Conference, FASE 2017, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2017, Uppsala, Sweden, April 22–29, 2017, Proceedings, volume 10202 of Lecture Notes in Computer Science, pp. 226–243. Springer (2017)

  47. Schneider, S., Lambers, L., Orejas, F.: Symbolic model generation for graph properties (extended version). Number 115 in Technische Berichte des Hasso-Plattner-Instituts fr Softwaresystemtechnik an der Universität Potsdam. Universitätsverlag Potsdam, Hasso Plattner Institute (Germany, Potsdam), 1 edition, 2 (2017)

  48. Schweikardt, N., Schwentick, T., Segoufin, L.: Algorithms and Theory of Computation Handbook. Chapter Database Theory: Query Languages, vol. 19, pp. 1–34. Chapman & Hall/CRC, Boca Raton (2010)

    Google Scholar 

  49. Semeráth, O., Varró, D.: Graph constraint evaluation over partial models by constraint rewriting. In: Guerra, E., van den Brand, M. (eds.) Theory and Practice of Model Transformation—10th International Conference, ICMT 2017, Held as Part of STAF 2017, Marburg, Germany, July 17–18, 2017, Proceedings, volume 10374 of Lecture Notes in Computer Science, pp. 138–154. Springer (2017)

  50. Semeráth, O., Vörös, A., Varró, D.: Iterative and incremental model generation by logic solvers. In: Stevens, P., Wasowski, A. (eds.) Fundamental Approaches to Software Engineering—19th International Conference, FASE 2016, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2016, Eindhoven, The Netherlands, April 2–8, 2016, Proceedings, volume 9633 of Lecture Notes in Computer Science, pp. 87–103. Springer (2016)

    Chapter  Google Scholar 

  51. The Linked Data Benchmark Council (LDBC). Social network benchmark. https://github.com/ldbc/ldbc_snb_docs. Accessed: 21 Aug 2017

  52. The World Wide Web Consortium (W3C). W3c xml schema definition language (xsd) 1.1 part 1: Structures (2012)

  53. Wood, P.T.: Query languages for graph databases. SIGMOD Rec. 41(1), 50–60 (2012)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sven Schneider.

Appendices

Some details on AutoGraph

Definition 30

(Z3 Signature)

$$\begin{aligned} \textit{sorts:}\;&\mathsf {bool},\mathsf {int},\mathsf {string} \\ \textit{opns:}\;&\mathsf {true}:{}\rightarrow \mathsf {bool} \\&\mathsf {false}:{}\rightarrow \mathsf {bool} \\&\mathsf {not}:\mathsf {bool} \rightarrow \mathsf {bool} \\&\mathsf {and}:\mathsf {bool} \;\mathsf {bool} \rightarrow \mathsf {bool} \\&\mathsf {or}:\mathsf {bool} \;\mathsf {bool} \rightarrow \mathsf {bool} \\&\mathsf {xor}:\mathsf {bool} \;\mathsf {bool} \rightarrow \mathsf {bool} \\&\mathsf {implies}:\mathsf {bool} \;\mathsf {bool} \rightarrow \mathsf {bool} \\&\mathsf {eq\_{bool}}:\mathsf {bool} \;\mathsf {bool} \rightarrow \mathsf {bool} \\&\mathsf {ifthenelse\_{bool}}:\mathsf {bool} \;\mathsf {bool} \;\mathsf {bool} \rightarrow \mathsf {bool} \\&\mathsf {zero}:{}\rightarrow \mathsf {int} \\&\mathsf {succ}:\mathsf {int} \rightarrow \mathsf {int} \\&\mathsf {pred}:\mathsf {int} \rightarrow \mathsf {int} \\&\mathsf {minus}:\mathsf {int} \rightarrow \mathsf {int} \\&\mathsf {add}:\mathsf {int} \;\mathsf {int} \rightarrow \mathsf {int} \\&\mathsf {sub}:\mathsf {int} \;\mathsf {int} \rightarrow \mathsf {int} \\&\mathsf {mul}:\mathsf {int} \;\mathsf {int} \rightarrow \mathsf {int} \\&\mathsf {mod}:\mathsf {int} \;\mathsf {int} \rightarrow \mathsf {int} \\&\mathsf {rem}:\mathsf {int} \;\mathsf {int} \rightarrow \mathsf {int} \\&\mathsf {power}:\mathsf {int} \;\mathsf {int} \rightarrow \mathsf {int} \\&\mathsf {eq\_{int}}:\mathsf {int} \;\mathsf {int} \rightarrow \mathsf {bool} \\&\mathsf {gt}:\mathsf {int} \;\mathsf {int} \rightarrow \mathsf {bool} \\&\mathsf {lt}:\mathsf {int} \;\mathsf {int} \rightarrow \mathsf {bool} \\&\mathsf {ge}:\mathsf {int} \;\mathsf {int} \rightarrow \mathsf {bool} \\&\mathsf {le}:\mathsf {int} \;\mathsf {int} \rightarrow \mathsf {bool} \\&\mathsf {ifthenelse\_{int}}:\mathsf {bool} \;\mathsf {int} \;\mathsf {int} \rightarrow \mathsf {int} \\&\mathsf {empty}:{}\rightarrow \mathsf {string} \\&\mathsf {concat}:\mathsf {string} \;\mathsf {string} \rightarrow \mathsf {string} \\&\mathsf {length}:\mathsf {string} \rightarrow \mathsf {int} \\&\mathsf {contains}:\mathsf {string} \;\mathsf {string} \rightarrow \mathsf {bool} \\&\mathsf {indexOf}:\mathsf {string} \;\mathsf {string} \;\mathsf {int} \rightarrow \mathsf {int} \\&\mathsf {replace}:\mathsf {string} \;\mathsf {string} \;\mathsf {string} \rightarrow \mathsf {string} \\&\mathsf {prefixOf}:\mathsf {string} \;\mathsf {string} \rightarrow \mathsf {bool} \\&\mathsf {suffixOf}:\mathsf {string} \;\mathsf {string} \rightarrow \mathsf {bool} \\&\mathsf {at}:\mathsf {string} \;\mathsf {int} \rightarrow \mathsf {string} \\&\mathsf {extract}:\mathsf {string} \;\mathsf {int} \;\mathsf {int} \rightarrow \mathsf {string} \\&\mathsf {eq\_{string}}:\mathsf {string} \;\mathsf {string} \rightarrow \mathsf {bool} \\&\mathsf {ifthenelse\_{string}}:\mathsf {bool} \;\mathsf {string} \;\mathsf {string} \rightarrow \mathsf {string} \end{aligned}$$

Furthermore, we assume sufficient operations for constructing values of \(\mathsf {string}\) as terms such as \(\mathsf {a},\dots ,\mathsf {z},\mathsf {0},\dots ,\mathsf {9},\mathsf {-},\mathsf {SPACE}:{}\rightarrow \mathsf {string} \).

Categorical preliminaries and properties of GraphsSTA

Lemma 11

(GraphsSTA: Characterization of the Monomorphisms, Epimorphisms, and Isomorphisms) A graph morphism \(f:G\rightarrow G'\) from the category GraphsSTA is a mono(morphism) (epi(morphism)) (iso(morphism)), if each of its components is injective (surjective) (bijective), respectively. And, for isomorphisms, we additionally require that the reversed implication from Definition  11 holds as well, i.e., for all \(\sigma \in \mathcal {V}_{\Sigma _{A_2},\Sigma _{A_2}} \): \(\sigma \models f_{ AX }(\varPhi _1)\) implies \(\sigma \models \varPhi _2\).

Proof

(idea) Due to the componentwise characterization.

Definition 31

(\(\mathcal {E}\)-\(\mathcal {M}\)-Factorization) Given a category, a set \(\mathcal {E}\) of epimorphisms, and a set \(\mathcal {M}\) of monomorphisms. The category has \(\mathcal {E}\)-\(\mathcal {M}\) -Factorizations, if

  • (existence) for each \(f:A\rightarrow C\) there are \((e:A\twoheadrightarrow K)\in \mathcal {E}\) and s.t. \(m\circ e=f\) and

  • (uniqueness) for \((e':A\twoheadrightarrow K')\in \mathcal {E}\) and with \(m'\circ e'=f\) there is with \(i\circ e=e'\) and \(m'\circ i=m\).

Definition 32

(Jointly Epimorphic Morphisms [13, Definition A.16, p. 334]) Two morphisms \(e_1:A_1\rightarrow B\) and \(e_2:A_2\rightarrow B\) of a category are Jointly Epimorphic, if any two morphisms \(g,h:B\rightarrow C\) are equal whenever \(g\circ e_i=h\circ e_i\) (for each \(1\le i \le 2\)).

Pair Factorization (cf. [13, Definition 5.25, p. 122]) has the intuition that any two morphisms \(f_1\) and \(f_2\) with common codomain C coincide (in the sense of mapping to the same elements) on a well-defined subgraph K of C. That K does not include further elements (on which the two morphisms do not coincide) is expressed by stating that the morphisms \(e_1\) and \(e_2\) are jointly epimorphic and the coincidence is expressed by stating that m is a monomorphism together with the commutation.

Definition 33

(\(\mathcal {E'}\)-\(\mathcal {M}\)-Pair Factorization) For a given category, a set \(\mathcal {E'}\) of pairs \((f_1,f_2)\) of jointly epi morphisms, and a set \(\mathcal {M}\) of monomorphisms. The category has \(\mathcal {E'}\)-\(\mathcal {M}\) -Pair Factorizations, if for each two morphisms \(f_1:A_1\rightarrow C\) and \(f_2:A_2\rightarrow C\) there are \((e_1:A_1\rightarrow K,e_2:A_2\rightarrow K)\in \mathcal {E'}\) and s.t. \(m\circ e_i=f_i\) (for each \(1\le i\le 2\)).

Definition 34

(Binary Coproduct) A category has binary coproducts, if for every \(A_i\) (with \(1\le i\le 2\)) there are \(f_i:A_i\rightarrow C\) (for each \(1\le i\le 2\)) s.t. (the following universal property holds) for all \(g_i:A_i\rightarrow X\) there is a unique \(h:C\rightarrow X\) with \(h\circ f_i=g_i\) (for each \(1\le i\le 2\)).

Lemma 12

(GraphsSTA has Binary Coproducts)

Proof

(idea) The binary coproduct C with morphisms \(f_1\) and \(f_2\) from Definition  34 is constructed componentwise using the disjoint union, as usual.

For the category GraphsSTA, we use as \(\mathcal {E}\) the set of all epimorphisms, as \(\mathcal {M}\) the set of all monomorphisms, and as \(\mathcal {E'}\) the set of all pairs of jointly epimorphic morphisms.

Lemma 13

(GraphsSTA has \(\mathcal {E}\)-\(\mathcal {M}\)-Factorization)

Proof

(idea) The morphisms e and m, required according to Definition 31, are constructed componentwise for a morphism f.

Lemma 14

(GraphsSTA has \(\mathcal {E'}\)-\(\mathcal {M}\)-Pair Factorization)

Proof

(idea) Analogously to [13, Remark 5.26, p. 122], we construct the \(\mathcal {E'}\)-\(\mathcal {M}\)-Pair Factorizations using \(\mathcal {E}\)-\(\mathcal {M}\)-Factorizations (based on Lemma 13) and binary coproducts (based on Lemma 12).

Proofs

Proof of Lemma 2

Part1 (\(\subseteq \)).

$$\begin{aligned}&G\in \llbracket \exists (i_C,\vee S)\rrbracket \\&\quad \Longrightarrow i_G\models \exists (i_C,\vee S)\\ \end{aligned}$$

for some q:C G

$$\begin{aligned} \Longrightarrow q\models \vee S \end{aligned}$$

for some \(c\in S\)

$$\begin{aligned}&\Longrightarrow \, q\models c\\&\quad \Longrightarrow \, q\circ i_C\models \exists (i_C,c)\\&\quad \Longrightarrow \, i_G\models \exists (i_C,c)\\&\quad \Longrightarrow \, G\in \llbracket \exists (i_C,c)\rrbracket \\&\quad \Longrightarrow \, G\in \bigcup \{\llbracket \exists (i_C,c)\rrbracket \mid c\in S\} \end{aligned}$$

Part2 (\(\supseteq \)).

$$\begin{aligned} G\in \bigcup \{\llbracket \exists (i_C,c)\rrbracket \mid c\in S\} \end{aligned}$$

for some \(c\in S\)

$$\begin{aligned}&\Longrightarrow \, G\in \llbracket \exists (i_C,c)\rrbracket \\&\Longrightarrow \, i_G\models \exists (i_C,c) \end{aligned}$$

for some

$$\begin{aligned}&\Longrightarrow \, q\models c\\&\Longrightarrow \, q\models \vee S\\&\Longrightarrow \, q\circ i_C\models \exists (i_C,\vee S)\\&\Longrightarrow \, i_G\models \exists (i_C,\vee S)\\&\Longrightarrow \, G\in \llbracket \exists (i_C,\vee S)\rrbracket \end{aligned}$$

Proof of Lemma 5

Part1 (\(\subseteq \)).

for some

for some

$$\begin{aligned}&\Longrightarrow q_2\models c \text { and }q_1=q_2\circ m\\&\Longrightarrow \, q_2\circ i_{C_2}\models \exists (i_{C_2},c)\\&\Longrightarrow \, i_G\models \exists (i_{C_2},c)\\&\Longrightarrow \, G\in \llbracket \exists (i_{C_2},c)\rrbracket \end{aligned}$$

Part2 (\(\supseteq \)).

$$\begin{aligned}&G\in \llbracket \exists (i_{C_2},c)\rrbracket \\&\Longrightarrow i_G\models \exists (i_{C_2},c) \end{aligned}$$

for some

Proof of Lemma 6

Part1 (C is an element).

$$\begin{aligned}&C\in \llbracket \exists (i_C,\wedge \{\lnot \exists (m_1,c_1),\dots ,\lnot \exists (m_n,c_n)\})\rrbracket \\&\quad \Longleftarrow i_C\models \exists (i_C,\wedge \{\lnot \exists (m_1,c_1),\dots ,\lnot \exists (m_n,c_n)\}) \end{aligned}$$

for

$$\begin{aligned} \Longleftarrow&id _{C} \models \wedge \{\lnot \exists (m_1,c_1),\dots ,\lnot \exists (m_n,c_n)\} \end{aligned}$$

for each \(1\le i\le n\) simultaneously

$$\begin{aligned}&\Longleftarrow id _{C} \models \lnot \exists (m_i,c_i)\\&\Longleftarrow id _{C} \not \models \exists (m_i,c_i) \end{aligned}$$

there is no such that \(q_i\models c_i\) and \(q_i\circ m_i=q\)

$$\begin{aligned} \Longleftarrow m_i\text { is no isomorphism} \end{aligned}$$

Part2 (unique least element).

$$\begin{aligned}&C'\in \llbracket \exists (i_C,\wedge \{\lnot \exists (m_1,c_1),\dots ,\lnot \exists (m_n,c_n)\})\rrbracket \\&\Longrightarrow i_{C'}\models \llbracket \exists (i_C,\wedge \{\lnot \exists (m_1,c_1),\dots ,\lnot \exists (m_n,c_n)\})\rrbracket \end{aligned}$$

for some

$$\begin{aligned}&\Longrightarrow q\models \wedge \{\lnot \exists (m_1,c_1),\dots ,\lnot \exists (m_n,c_n)\}\\&\Longrightarrow C\subseteq C' \end{aligned}$$

Proof of Lemma 3

Part1 (\(\subseteq \)).

for some

for some

$$\begin{aligned} \Longrightarrow q_2\models c' \text { and }q_1=q_2\circ m \end{aligned}$$
(2)

also

$$\begin{aligned}&q_1\models \wedge S\\&\Longrightarrow q_2\circ m\models \wedge S\\&\Longrightarrow q_2\models shift (m,\wedge S) \\&\Longrightarrow q_2\models c'\wedge shift (m,\wedge S) \\&\Longrightarrow q_2\circ m\models \exists (m,c'\wedge shift (m,\wedge S))\\&\Longrightarrow q_2\circ m\circ i_C\models \exists (i_C,\exists (m,c'\wedge shift (m,\wedge S)))\\&\Longrightarrow i_G\models \exists (i_C,\exists (m,c'\wedge shift (m,\wedge S)))\\&\Longrightarrow G\in \llbracket \exists (i_C,\exists (m,c'\wedge shift (m,\wedge S)))\rrbracket \end{aligned}$$

Part2 (\(\supseteq \)).

$$\begin{aligned}&G\in \llbracket \exists (i_C,\exists (m,c'\wedge shift (m,\wedge S)))\rrbracket \\&\quad \Longrightarrow i_G\models \exists (i_C,\exists (m,c'\wedge shift (m,\wedge S))) \end{aligned}$$

for some

$$\begin{aligned}&\Longrightarrow q_1\models \exists (m,c'\wedge shift (m,\wedge S)) \end{aligned}$$

for some

$$\begin{aligned}&\Longrightarrow q_2\models c'\wedge shift (m,\wedge S) \text { and }q_1=q_2\circ m\\&\Longrightarrow q_2\models c'\text { and }q_2\models shift (m,\wedge S) \\&\Longrightarrow q_2\circ m\models \exists (m,c') \end{aligned}$$

also

Proof of Lemma 8

Part1.1 (if).

$$\begin{aligned}&covered (\mathcal {S}) = covered (\mathcal {S} ') \\&\quad \Longrightarrow covered (\mathcal {S}) \subseteq covered (\mathcal {S} ') \end{aligned}$$

because \( covered (\mathcal {S}-\mathcal {S} ') \subseteq covered (\mathcal {S}) \)

$$\begin{aligned}&\Longrightarrow covered (\mathcal {S}-\mathcal {S} ') \subseteq covered (\mathcal {S} ') \\&\Longrightarrow covered (\mathcal {S}-\mathcal {S} ')- covered (\mathcal {S} ') =\emptyset \end{aligned}$$

Part1.2 (only if).

$$\begin{aligned}&covered (\mathcal {S}-\mathcal {S} ')- covered (\mathcal {S} ') =\emptyset \\&\Longrightarrow covered (\mathcal {S}-\mathcal {S} ') \subseteq covered (\mathcal {S} ') \end{aligned}$$

because \( covered (\mathcal {S})- covered (\mathcal {S} ') \subseteq covered (\mathcal {S}-\mathcal {S} ') \)

$$\begin{aligned}&\Longrightarrow covered (\mathcal {S})- covered (\mathcal {S} ') \subseteq covered (\mathcal {S} ') \\&\Longrightarrow ( covered (\mathcal {S})- covered (\mathcal {S} '))- covered (\mathcal {S} ') =\emptyset \\&\Longrightarrow covered (\mathcal {S})- covered (\mathcal {S} ') =\emptyset \\&\Longrightarrow covered (\mathcal {S}) \subseteq covered (\mathcal {S} ') \end{aligned}$$

because \(\mathcal {S} '\subseteq \mathcal {S} \) implies \( covered (\mathcal {S} ') \subseteq covered (\mathcal {S}) \)

$$\begin{aligned}&\Longrightarrow covered (\mathcal {S}) = covered (\mathcal {S} ') \end{aligned}$$

Part2.

$$\begin{aligned}&\vee \{\exists (i_C,c)\mid \langle C,c\rangle \in \mathcal {S}-\mathcal {S} '\}\\&\quad \wedge \lnot \vee \{\exists (i_C,c)\mid \langle C,c\rangle \in \mathcal {S} '\}\text { is refutable}\\&\Longleftrightarrow \llbracket \vee \{\exists (i_C,c)\mid \langle C,c\rangle \in \mathcal {S}-\mathcal {S} '\}\\&\quad \wedge \lnot \vee \{\exists (i_C,c)\mid \langle C,c\rangle \in \mathcal {S} '\}\rrbracket =\emptyset \\&\Longleftrightarrow \llbracket \vee \{\exists (i_C,c)\mid \langle C,c\rangle \in \mathcal {S}-\mathcal {S} '\}\rrbracket \\&\quad \cap \llbracket \lnot \vee \{\exists (i_C,c)\mid \langle C,c\rangle \in \mathcal {S} '\}\rrbracket =\emptyset \\&\Longleftrightarrow covered (\mathcal {S}-\mathcal {S} ') \\&\quad \cap (\{G\mid G\text { is a graph}\}- covered (\mathcal {S} '))=\emptyset \\&\Longleftrightarrow covered (\mathcal {S}-\mathcal {S} ')- covered (\mathcal {S} ') =\emptyset \end{aligned}$$

Proof of Lemma 9

  • Part1 (if). Fix some \(\langle C,\wedge \emptyset \rangle \in \mathcal {S} \).

    Assume for the contradiction \( covered (\mathcal {S}) = covered (\mathcal {S}-\{\langle C,\wedge \emptyset \rangle \}) \). Hence, for each \(G\in covered (\langle C,\wedge \emptyset \rangle ) \) there is some other \(\langle C',\wedge \emptyset \rangle \in \mathcal {S} \) s.t. \(G\in covered (\langle C,\wedge \emptyset \rangle ) \).

    Note that \(C\in covered (\langle C',\wedge \emptyset \rangle ) \). Hence, we are able to pick some \(\langle C',\wedge \emptyset \rangle \) s.t. \(C\in covered (\langle C',\wedge \emptyset \rangle ) \).

    Hence, there is a monomorphism .

    This is a contradiction.

  • Part2 (only if). Fix distinct \(\langle C,\wedge \emptyset \rangle \in \mathcal {S} \) and \(\langle C',\wedge \emptyset \rangle \in \mathcal {S} \).

    Assume for the contradiction that is a monomorphism.

    Hence \( covered (\langle C,\wedge \emptyset \rangle ) \subseteq covered (\langle C',\wedge \emptyset \rangle ) \).

    Hence \( covered (\mathcal {S}) = covered (\mathcal {S}-\{\langle C,\wedge \emptyset \rangle \}) \).

    Hence \(\mathcal {S} \) is not compact.

    This is a contradiction.

Proof of Corollary 1

  • Let \(\mathcal {S} \) be nonambiguous, (sound,) complete, minimally representable.

  • We show that \(\mathcal {S} \) is compact.

  • Fix some \(\langle C,c\rangle \in \mathcal {S} \).

  • We show that \( covered (\mathcal {S}) \ne covered (\mathcal {S}-\{\langle C,c\rangle \}) \).

    • We show that \(C\in covered (\mathcal {S}) \).

      From minimally representability we have that \(C\models p\).

      From completeness we that \(C\in covered (\mathcal {S}) \).

    • We show that \(C\notin covered (\mathcal {S}-\{\langle C,c\rangle ) \).

      Assume for the contradiction that \(\langle C',c'\rangle \in \mathcal {S}-\{\langle C,c\rangle \) such that \(C\in covered (\langle C',c'\rangle ) \).

      Then, \( covered (\langle C',c'\rangle ) \cap covered (\langle C,c\rangle ) \ne \emptyset \) contradicts nonambiguity because \(\langle C',c'\rangle \ne \langle C,c\rangle \).

Lemma 15

(Satisfaction is a Congruence) Let \(c_1\) and \(c_2\) be conditions from \(\mathcal {C}_{C} \) such that \(\{q\mid q\models c_1\}=\{q\mid q\models c_2\}\). Then all following items are satisfied.

  • \(\{q\mid q\models \wedge (S\cup \{c_1\})\} =\{q\mid q\models \wedge (S\cup \{c_2\})\}\) for all finite \(S\subseteq \mathcal {C}_{C} \).

  • \(\{q\mid q\models \lnot c_1\} =\{q\mid q\models \lnot c_2\}\).

  • for every .

Proof of Lemma 15

Fix \(c_1,c_2\in \mathcal {C}_{C} \).

Assume (A) that \(\{q\mid q\models c_1\}=\{q\mid q\models c_2\}\). In each case, we show only one direction wlog.

  • Fix some \(S\subseteq \mathcal {C}_{C} \) that is finite.

    Fix some such that \(q\models \wedge (S\cup \{c_1\})\).

    Hence, \(q\models \wedge S\) and \(q\models c_1\).

    From (A) we have that \(q\models c_2\).

    Hence, \(q\models \wedge (S\cup \{c_2\})\).

  • Fix some such that \(q\models \lnot c_1\).

    Hence, not \(q\models c_1\).

    From (A) we have that not \(q\models c_2\).

    Hence, \(q\models \lnot c_2\).

  • Fix some .

    Fix some such that .

    Hence, there is some such that \(q\models c_1\) and \(q\circ m=q'\).

    From (A) we have that \(q\models c_2\).

    Hence, .

Proof of Lemma 4

The construction steps of \([\cdot ]\) replace subterms.

By structural induction relying on Lemma 15, it is sufficient to consider how one condition \(c_1\) is replaced by another condition \(c_2\) over same graph in the sense of \(\{q\mid q\models c_1\}=\{q\mid q\models c_2\}\).

We verify for all five steps of the operation \([\cdot ]\) that the property is rephrased equivalently.

  • Step 1: The unfolding of abbreviations is sound by default.

  • Step 2: We assume that has been replaced by \(c_2\).

    We perform an induction on \(c_1\).

    • Case: \(c_1=\lnot c_1'\) and, hence, for some \(c_2'\)

      As induction hypothesis, we assume that \(\{q\mid q\models c_1'\}=\{q\mid q\models c_2'\}\). We have to show , which is the direct consequence from Lemma 15.

    • Case: \(c_1{=}\wedge \{c_{0,1},\dots ,c_{n,1}\}\) and, hence, \(c_2{=}\wedge \{c_{0,2},\dots ,c_{n,2}\}\) for some \(c_{0,2}\), ..., \(c_{n,2}\) As induction hypothesis we assume that \(\{q\mid q\models c_{i,1}\}=\{q\mid q\models c_{i,2}\}\) (for \(0\le i\le n\)) We have to show , which is the direct consequence from Lemma 15.

    • Case: and, hence, \(c_2=\exists (m\circ i,c_1')\)

      We have to show , which holds directly application of Definition 16.

  • Step 3: We show that if is empty. This is trivially the case because \(\{q\mid q\models \vee \emptyset \}\) is also empty.

  • Step 4: The mentioned replacement rules

    \(\lnot (\wedge S){\mathop {=}\limits ^{\cdot }}\vee \{\lnot c\mid c\in S\}\),

    \(\lnot (\vee S){\mathop {=}\limits ^{\cdot }}\wedge \{\lnot c\mid c\in S\}\), and

    \(\lnot \lnot c{\mathop {=}\limits ^{\cdot }}c\)

    are obviously sound in the sense of:

    \(\{q\mid q\models lhs \}=\{q\mid q\models rhs \}\).

  • Step 5: The mentioned replacement rules

    \(\wedge (S\cup \{\wedge S'\}){\mathop {=}\limits ^{\cdot }}\wedge (S\cup S')\),

    \(\vee (S\cup \{\vee S'\}){\mathop {=}\limits ^{\cdot }}\vee (S\cup S')\),

    \(\wedge (S\cup \{\vee S'\}){\mathop {=}\limits ^{\cdot }}\vee \{\wedge (S\cup \{c\})\mid c\in S'\}\), and

    \(\vee (S\cup \{\wedge S'\}){\mathop {=}\limits ^{\cdot }}\wedge \{\vee (S\cup \{c\})\mid c\in S'\}\)

    are obviously sound in the sense of:

    \(\{q\mid q\models lhs \}=\{q\mid q\models rhs \}\).

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Schneider, S., Lambers, L. & Orejas, F. Automated reasoning for attributed graph properties. Int J Softw Tools Technol Transfer 20, 705–737 (2018). https://doi.org/10.1007/s10009-018-0496-3

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-018-0496-3

Keywords

Navigation