Log in

Associative composition of components with double-sided interfaces

  • Original Article
  • Published:
Acta Informatica Aims and scope Submit manuscript

Abstract

Distributed systems are often organized in chains of components (e.g. business process chains), where each component naturally has a double-sided (left and right) interface. We suggest a corresponding, highly abstract and general framework (in mathematical terms: a monoid) of components and their composition, with minimal assumptions on the underlying global infrastructure (in fact, just a global set of symbols). As a fundamental property, decisive for the composition of more than two components, composition of such properties turns out to be associative. We discuss a number of instantiations of this framework (mainly classes of Petri nets), some of which preserve important properties (such as soundness of workflows) under composition. We glance at a number of generalizations and specializations.

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

Access this article

Subscribe and save

Springer+ Basic
EUR 32.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or Ebook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price includes VAT (Germany)

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

Similar content being viewed by others

References

  1. Arbab, F.: Reo: a channel-based coordination model for component composition. Math. Struct. Comput. Sci. 14(3), 329–366 (2004)

    Article  MathSciNet  MATH  Google Scholar 

  2. Best, E., Devillers, R.R., Koutny, M.: Petri net algebra. In: Monographs in Theoretical Computer Science. An EATCS Series. Springer (2001)

  3. Broy, M.: On architecture specification. In: Tjoa, A.M., Bellatreche, L., Biffl, S., van Leeuwen, J., Wiedermann, J. (eds.) SOFSEM 2018: Theory and Practice of Computer Science—44th International Conference on Current Trends in Theory and Practice of Computer Science, Krems, Austria, January 29–February 2, 2018, Proceedings, vol. 10706 of Lecture Notes in Computer Science. Springer, pp. 19–39 (2018)

  4. Broy, M., Krüger, I.H., Meisinger, M.: A formal model of services. ACM Trans. Softw. Eng. Methodol. 16(1), 5 (2007)

    Article  Google Scholar 

  5. Broy, M., Stølen, K.: Specification and Development of Interactive Systems-Focus on Streams, Interfaces, and Refinement. Monographs in Computer Science. Springer, Berlin (2001)

    Book  MATH  Google Scholar 

  6. Dastani, M., Arbab, F., de Boer, F.S.: Coordination and composition in multi-agent systems. In: Dignum, F., Dignum, V., Koenig, S., Kraus, S., Singh, M.P., Wooldridge, M. (eds.) 4th International Joint Conference on Autonomous Agents and Multiagent Systems (AAMAS 2005), July 25–29, 2005, Utrecht, The Netherlands. ACM, pp. 439–446 (2005)

  7. de Alfaro, L., Henzinger, T.A.: Interface automata. In: Tjoa, A.M., Gruhn, V. (eds.) Proceedings of the 8th European Software Engineering Conference Held jointly with 9th ACM SIGSOFT International Symposium on Foundations of Software Engineering 2001, Vienna, Austria, September 10-14, 2001., ACM, pp. 109–120 (2001)

  8. Dong, W., Yu, H., Zhang, Y.: Testing bpel-based web service composition using high-level petri nets. In: Tenth IEEE International Enterprise Distributed Object Computing Conference (EDOC 2006), 16–20 October 2006, Hong Kong, China. IEEE Computer Society, pp. 441–444 (2006)

  9. Esparza, J., Hoffmann, P.: Reduction rules for colored workflow nets. In: 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 (2016), Stevens, P., Wasowski, A. Eds., vol. 9633 of Lecture Notes in Computer Science, Springer, pp. 342–358

  10. Gößler, G., Graf, S., Majster-Cederbaum, M.E., Martens, M., Sifakis, J.: An approach to modelling and verification of component based systems. In: van Leeuwen, J., Italiano, G.F., van der Hoek, W., Meinel, C., Sack, H., Plasil, F. (eds.) SOFSEM 2007: Theory and Practice of Computer Science, 33rd Conference on Current Trends in Theory and Practice of Computer Science, Harrachov, Czech Republic, January 20–26, 2007, Proceedings, vol. 4362 of Lecture Notes in Computer Science. Springer, pp. 295–308 (2007)

  11. Hamadi, R., Benatallah, B.: A petri net-based model for web service composition. In: Schewe, K., Zhou, X. (eds.) Database Technologies 2003, Proceedings of the 14th Australasian Database Conference, ADC 2003, Adelaide, South Australia, February 2003, vol. 17 of CRPIT. Australian Computer Society, pp. 191–200 (2003)

  12. Hesami Rostami, N., Kheirkhah, E., Jalali, M.: Web services composition methods and techniques: a review. Int J Comp Sci Eng Inf Technol. 3 (2013)

  13. Knapp, A., Marczynski, G., Wirsing, M., Zawlocki, A.: A heterogeneous approach to service-oriented systems specification. In: Shin, S.Y., Ossowski, S., Schumacher, M., Palakal, M.J., Hung, C. (eds.) Proceedings of the 2010 ACM Symposium on Applied Computing (SAC), Sierre, Switzerland, March 22–26, 2010. ACM, pp. 2477–2484 (2010)

  14. Lynch, N.A., Tuttle, M.R.: Hierarchical correctness proofs for distributed algorithms. In: Schneider, F.B. (ed.) Proceedings of the Sixth Annual ACM Symposium on Principles of Distributed Computing, Vancouver, British Columbia, Canada, August 10–12, 1987. ACM, pp. 137–151 (1987)

  15. Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)

    Article  Google Scholar 

  16. Meseguer, J., Montanari, U.: Petri nets are monoids. Inf. Comput. 88(2), 105–155 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  17. Nadareishvili, I., Mitra, R., McLarty, M., Amundsen, M.: Microservice Architecture: Aligning Principles, Practices, and Culture, 1st edn. O’Reilly Media, Inc., Newton (2016)

    Google Scholar 

  18. Nierstrasz, O., Achermann, F.: A calculus for modeling software components. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.P. (eds.) Formal Methods for Components and Objects, First International Symposium, FMCO 2002, Leiden, The Netherlands, November 5–8, 2002, Revised Lectures, vol. 2852 of Lecture Notes in Computer Science. Springer, pp. 339–360 (2002)

  19. Pautasso, C., Wilde, E.: Why is the web loosely coupled?: a multi-faceted metric for service design. In: Quemada, J., León, G., Maarek, Y.S., Nejdl, W. (eds.) Proceedings of the 18th International Conference on World Wide Web, WWW 2009, Madrid, Spain, April 20–24, 2009. ACM, pp. 911–920 (2009)

  20. Polyvyanyy, A., Weidlich, M., Weske, M.: Connectivity of workflow nets: the foundations of stepwise verification. Acta Inf. 48(4), 213–242 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  21. Reisig, W.: Understanding Petri Nets—Modeling Techniques, Analysis Methods, Case Studies. Springer, Berlin (2013)

    MATH  Google Scholar 

  22. Reisig, W.: Towards a conceptual foundation of service composition. Comput. Sci. R&D 33(3–4), 281–289 (2018)

    Google Scholar 

  23. Roscoe, A.W.: Understanding Concurrent Systems. Texts in Computer Science. Springer, Berlin (2010)

    Book  Google Scholar 

  24. Sassone, V.: On the category of petri net computations. In: Mosses, P.D., Nielsen, M., Schwartzbach, M.I. (eds.) TAPSOFT’95: Theory and Practice of Software Development, 6th International Joint Conference CAAP/FASE, Aarhus, Denmark, May 22–26, 1995, Proceedings, vol. 915 of Lecture Notes in Computer Science. Springer, pp. 334–348 (1995)

  25. Sobocinski, P.: Nets, relations and linking diagrams. In: Heckel, R., Milius, S. (eds.) Algebra and Coalgebra in Computer Science—5th International Conference, CALCO 2013, Warsaw, Poland, September 3–6, 2013. Proceedings, vol. 8089 of Lecture Notes in Computer Science. Springer, pp. 282–298 (2013)

  26. Stahl, C., Wolf, K.: Deciding service composition and substitutability using extended operating guidelines. Data Knowl. Eng. 68(9), 819–833 (2009)

    Article  Google Scholar 

  27. Tan, W., Fan, Y., Zhou, M.: A petri net-based method for compatibility analysis and composition of web services in business process execution language. IEEE Trans. Autom. Sci. Eng. 6(1), 94–106 (2009)

    Article  Google Scholar 

  28. van der Aalst, W.M.P., van Hee, K.M., ter Hofstede, A.H.M., Sidorova, N., Verbeek, H.M.W., Voorhoeve, M., Wynn, M.T.: Soundness of workflow nets: classification, decidability, and analysis. Form. Asp. Comput. 23(3), 333–363 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  29. van Glabbeek, R.J., Goltz, U., Schicke-Uffmann, J.: On distributability of petri nets—(extended abstract). In: Birkedal, L. (ed.) Foundations of Software Science and Computational Structures—15th International Conference, FOSSACS 2012, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2012, Tallinn, Estonia, March 24–April 1, 2012. Proceedings, vol. 7213 of Lecture Notes in Computer Science. Springer, pp. 331–345 (2012)

  30. Vieira, H.T., Caires, L., Seco, J.C.: The conversation calculus: a model of service-oriented computation. In: Drossopoulou, S. (ed.) Programming Languages and Systems, 17th European Symposium on Programming, ESOP 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, vol. 4960 of Lecture Notes in Computer Science. Springer, pp. 269–283 (2008)

  31. Watzlawick, P., Bavelas, J., Jackson, D., O’Hanlon, B.: Pragmatics of Human Communication: A Study of Interactional Patterns, Pathologies and Paradoxes. W. W. Norton, New York (2011)

    Google Scholar 

  32. Wolf, K.: Does my service have partners? Trans. Petri Nets Other Models Concurr. 2, 152–171 (2009)

    Article  MATH  Google Scholar 

  33. **ong, P., Fan, Y., Zhou, M.: A petri net approach to analysis and composition of web services. IEEE Trans. Syst. Man Cybern. Part A 40(2), 376–387 (2010)

    Article  Google Scholar 

  34. Yang, Y., Tan, Q., **ao, Y.: Verifying web services composition based on hierarchical colored petri nets. In: Hahn, A., Abels, S., Haak, L. (eds.) Proceedings of the First International ACM Workshop on Interoperability of Heterogeneous Information Systems (IHIS’05), CIKM Conference, Bremen, Germany, November 4, 2005. ACM, pp. 47–54 (2005)

Download references

Acknowledgements

I am very grateful to the anonymous reviewers for their very detailed and constructive review. They pointed at formal inconsistencies, debatable intuitive statements, and necessary clarifications of a previous version of this paper. Heinz Schmidt from RMIT University (Melbourne) showed me the relevance of our framework for the definition of architecture definition languages to model component based software architectures.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Wolfgang Reisig.

Appendix: Proof of the theorem

Appendix: Proof of the theorem

For component models X,Y, in the sequel we write

$$\begin{aligned} XY \text { for } Y \cdot Y \end{aligned}$$
(11)

Let GH and K be component models. To prove the Theorem, with Definition 2 we have to show:

$$\begin{aligned}&\text {The nodes of } (GH)K \text { and of } G(HK) \text { coincide}.\end{aligned}$$
(12)
$$\begin{aligned}&\text {The arcs of } (GH)K \text { and of } G(HK) \text { coincide,}\end{aligned}$$
(13)
$$\begin{aligned}&^{*}{}{((GH)K)} = ^{*}{}{(G(HK))}\end{aligned}$$
(14)
$$\begin{aligned}&((GH)K)^{*} = (G(HK))^{*}\end{aligned}$$
(15)
$$\begin{aligned}&\lambda _{^{*}{}{((GH)K)}} = \lambda _{^{*}{}{(G(HK))}}\end{aligned}$$
(16)
$$\begin{aligned}&\lambda _{((GH)K)^{*}} = \lambda _{(G(HK))^{*}}\end{aligned}$$
(17)
$$\begin{aligned}&\delta _{^{*}{}{((GH)K)}} = \delta _{^{*}{}{(G(HK))}}\end{aligned}$$
(18)
$$\begin{aligned}&\delta _{((GH)K)^{*}} = \delta _{(G(HK))^{*}} \end{aligned}$$
(19)

Proof of (12)

Definitions 2 and 4 immediately imply for component models XY and \(f \in {{\mathrm{inner}}}(X)\):

$$\begin{aligned} f \in {{\mathrm{inner}}}(XY) \text { and } f \in {{\mathrm{inner}}}(YX). \end{aligned}$$

This in turn implies for all \(f \in {{\mathrm{inner}}}(G) \, \cup \, {{\mathrm{inner}}}(H) \, \cup \, {{\mathrm{inner}}}(K) \): \(f \in {{\mathrm{inner}}}((GH)K)\) and \(f \in {{\mathrm{inner}}}(G(HK))\). The proposition then follows with forthcoming properties (23) and (24), and Definition 2. \(\square \)

Proof of (13)

Property (12) implies that the matching pairs of (GH)K and of G(HK) coincide. Hence, the replacements of arcs in the arc sets of (GH)K and of G(HK), as in Definition 4, coincide. \(\square \)

Proof of (16)

For component models X and Y, the \(\lambda \)-label of an element e in \(^{*}{}{X}\) or \(^{*}{}{Y}\) remains when e moves to \(^{*}{}{(XY)}\), according to Definition 4. Likewise, the \(\lambda \)-label of an element e in \(X^*\) or \(Y^*\) remains when e moves to \((XY)^*\). The proposition the follows with (14) and (15). \(\square \)

Proof of (17)

Analog to Proof of (16). \(\square \)

(14) and (18) are proven in the sequel. (15) and (19) follow analogously to (14) and (18) and are left to the reader.

Proof of (14) and (18)

In the sequel, a portP is the left or right interface \(^{*}{}{X }\) or \(X^*\) of one of the component models

$$\begin{aligned} X = G, H, K, GH, HK, (GH)K \text{ or } G(HK) {.} \end{aligned}$$
(20)

With respect to a port P and \(f \in P\) we write

$$\begin{aligned}&\max (P) \text{ for } |\{p \in P \; | \; \lambda _P(p) = \lambda _P(f)\}|, \text{ and } \end{aligned}$$
(21)
$$\begin{aligned}&P(f) \text{ for } \delta _P(f) . \end{aligned}$$
(22)

In (21), \(\text {max}(P)\) refers to an element f of P that is clear in each context, and is not noted for the sake of readability. Intuitively formulated, \(\max (P)\) is the number of nodes in P with labels coinciding with the label of f. These nodes are numbered by \(\delta _P\), and P(f) is the corresponding number of f. Obviously holds \(\square \)

Lemma 1

Let P be a port, let \(f \in P\). Then \(P(f) \le \max (P)\).

In order to show (14) and (18) we observe (by Definition 4) that, \(^{*}{}{((GH)K)}\) and \(^{*}{}{(G(HK))}\) contain only nodes of \(^{*}{}{G}, ^{*}{}{H}\) and \(^{*}{}{K}\). Therefore it suffices to show for each \(f \in \, ^{*}{}{G} \, \cup \; ^*\negthickspace \, H \, \cup \, ^*\negthickspace \, K\):

$$\begin{aligned} f \in ^{*}{}{((GH)K)} \text{ and } f \in ^{*}{}{(G(HK))}, \text{ with } ^{*}{}{((GH)K)}(f) = ^{*}{}{(G(HK))}(f) \end{aligned}$$
(23)

or for some node g,

$$\begin{aligned} (g,f) \in {{\mathrm{inner}}}((GH)K) \text{ and } (g,f) \in {{\mathrm{inner}}}(G(HK)). \end{aligned}$$
(24)

We start with some obvious properties that are later on used to justify deduction steps:

Fig. 10
figure 10

Structure of the proof of (14)

Fig. 11
figure 11

Case 1

Lemma 2

Let XY be component models.

  1. (i)

    Let \(x \in ^{*}{}{X}\). Then \(x \in ^{*}{}{(XY)}\) and \(^{*}{}{(XY)}(x)= ^{*}{}{X}(x)\).

  2. (ii)

    Let \(y \in Y^{*}\). Then \(y \in (XY)^{*}\) and \((XY)^{*}(y)= Y^{*}(y)\).

  3. (iii)

    Let \(y \in ^{*}{}{Y}\) and \(\max (X^{*}) \ge ^{*}{}{Y}(y)\). Then there exists a unique \(x\in X^{*}\) with \(\lambda _{^{*}{}{Y}}(y) = \lambda _{X^*}(x)\), \(X^{*}(x) = ^{*}{}{Y}(y)\) and \((x,y) \in {{\mathrm{inner}}}(XY)\).

  4. (iv)

    Let \(y \in ^{*}{}{Y}\) and let \(\max (X^{*}) < ^{*}{}{Y}(y)\). Then \(y \in ^{*}{}{(XY)}\) and \(^{*}{}{(XY)}(y) = \max (^{*}{}{X}) + ^{*}{}{Y}(y)-\max (X^{*})\)

  5. (v)

    Let \(x \in X^{*}\) and \(X^{*}(x) > \max (Y^{*})\). Then \(x \in (XY)^{*}\) and \((XY)^{*}(x)=X^{*}(x)+\max (Y^{*}) - \max (^{*}{}{X})\).

  6. (vi)

    Let \(\max (X^{*}) > \max (^{*}{}{Y})\). Then \(\max (^{*}{}{(XY)}) = \max (^{*}{}{X})\).

  7. (vii)

    Let \(\max (X^{*}) \ge \max (^{*}{}{Y})\). Then \(\max ((XY)^{*}) = \max (Y^{*}) + \max (X^{*}) - \max (^{*}{}{X})\).

  8. (viii)

    Let \(\max (X^{*}) < \max (^{*}{}{Y})\). Then \(\max (^{*}{}{(XY)}) = \max (^{*}{}{X}) + \max (^{*}{}{Y}) - \max (X^{*})\).

  9. (ix)

    Let \(\max (X^{*})< \max (^{*}{}{Y})\). Then \(\max ((XY)^{*})= \max (Y^{*})\)

  10. (x)

    \(\max (^{*}{}{X}) \le \max (^{*}{}{(XY)})\).

  11. (xi)

    Let \(f \in X^*\). Then \(\max (X^*) \ge X^*(f)\).

For the proof of (14) and (18) we distinguish seven cases, structured as shown in Fig. 10. Property (24) applies to cases 2.1, 3.1 and 3.2.2.1. For all other cases we show property (23). Figures outline the (increasingly more involved) proof steps of the seven cases.

  • Case 1\(f \in ^{*}{}{G}\) (Fig. 11). We prove (23):

    1. a)

      \(f \in ^{*}{}{(G(HK))}\) and \(^{*}{}{(G(HK))}(f)=^{*}{}{G}(f)\), by Case 1 and Lemma 2(ii).

    2. b)

      \(f \in ^{*}{}{(GH)}\) and \(^{*}{}{(GH)}(f) = ^{*}{}{G}(f)\), by Case 1 and Lemma 2(ii). Then \(f \in ^{*}{}{((GH)K)}\) and \(^{*}{}{((GH)K)}(f)=^{*}{}{G}(f)\), by Lemma 2(i).

  • Case 2\(f \in ^{*}{}{H}\).

    • Case 2.1\(\max (G^{*}) \ge ^{*}{}{H}(f)\) (Fig.12). We prove (24).

      • There exists a unique \(g \in G^{*}\) with \(\lambda _{G^*}(g) = \lambda _{^*\negthickspace \, H}(f)\) and \(G^{*}(g) = ^{*}{}{H}(f)\), by Case 2.1 and Lemma 2(iii).

        1. a)

          \(f \in ^{*}{}{(HK)}\) and \(^{*}{}{(HK)}(f) = ^{*}{}{H}(f)\), by Case 2 and Lemma 2(i).

          Then \(\max (G^{*}) \ge ^{*}{}{(HK)}(f)\), by Case 2.1. Then \((g,f) \in {{\mathrm{inner}}}(G(HK))\), by Case 2 and Lemma 2(iii).

        2. b)

          \((g,f) \in {{\mathrm{inner}}}(GH)\), by Case 2, Case 2.1 and Lemma 2(iii).

          Then \((g,f) \in {{\mathrm{inner}}}((GH)K)\), by Definition 4.

    Fig. 12
    figure 12

    Case 2.1

    Fig. 13
    figure 13

    Case 2.2

    • Case 2.2\(\max (G^{*}) < ^{*}{}{H}(f)\) (Fig. 13). We prove (23).

      • As a shorthand, let

        $$\begin{aligned} n =_\textit{def} \max (^{*}{}{G}) + ^{*}{}{H}(f)- \max (G^{*}). \end{aligned}$$
        (25)
        1. a)
          $$\begin{aligned} f \in ^{*}{}{(HK)} \text { and } ^{*}{}{(HK)}(f) = ^{*}{}{H}(f) \end{aligned}$$
          (26)

          by Case 2 and Lemma 2(i).

          Then \(\max (G^{*}) < ^{*}{}{(HK)}(f)\), by Case 2.2. Then by Lemma 2(iv) \(f \in ^{*}{}{(G(HK))}\) and

          $$\begin{aligned}&^{*}{}{(G(HK))}(f)\\&\quad =\max (^{*}{}{G}) + ^{*}{}{(HK)}(f) - \max (G^{*}) \text {, by Lemma}~2(iv)\\&\quad =\max (^{*}{}{G}) + ^{*}{}{H}(f)-\max (G^{*}) \text {, by } (26)\\&\quad =n \text {, by } (25) \end{aligned}$$
        2. b)

          \(f \in ^{*}{}{(GH)}\) and

          $$\begin{aligned} ^{*}{}{(GH)}(f) = \max (^{*}{}{G})+^{*}{}{H}(f) - \max (G^{*}) \end{aligned}$$
          (27)

          by Case 2 and Lemma 2(iv).

          Then \(f \in ^{*}{}{((GH)K)}\) and

          $$\begin{aligned}&^{*}{}{((GH)K)}(f)\\&\quad =^{*}{}{(GH)}(f) \text {, by Lemma}~2{} \textit{(i)}\\&\quad =\max (^{*}{}{G}) + ^{*}{}{H}(f) - \max (G^{*}) \text {, by } (27)\\&\quad =n \text {, by } (25). \end{aligned}$$
  • Case 3\(f \in ^{*}{}{K}\).

    • Case 3.1\(\max (H^{*})\ge ^{*}{}{K}(f)\) (Fig. 14). We prove (24).

      • There exists a unique \(h \in H^{*}\) with

        $$\begin{aligned} H^{*}(h) = ^{*}{}{K}(f) \end{aligned}$$
        (28)
      • and \((h,f) \in {{\mathrm{inner}}}(HK)\), by case 3, case 3.1 and Lemma 2(iii).

        1. a)

          Then \((h,f) \in {{\mathrm{inner}}}(G(HK))\) by Definition 4.

        2. b)

          \(f \in ^{*}{}{K}\) and \(\max (H^*) \ge ^{*}{}{K}(f)\), by case 3 and case 3.1.

          Then \(f \in ^{*}{}{K}\) and \(\max ((GH)^{*}) \ge ^{*}{}{K}(f)\), by (21), and, obviously, \(H^* \subseteq (GH)^*\).

          Then there exists a unique \(g \in (GH)^{*}\) with \(\lambda _{^{*}{}{K}}(f) = \lambda _{(HK)^*}(g)\) and \((GH)^{*}(g) = ^{*}{}{K}(f)\) and \((g,f) \in {{\mathrm{inner}}}((GH)K)\), by Lemma 2(iii).

          Furthermore, \(g=h\), because \(\delta _{(GH)^*}\) is injective.

          Then \((h,f) \in {{\mathrm{inner}}}((GH)K)\).

    • Case 3.2\(\max (H^{*}) < ^{*}{}{K}(f)\).

      • In the rest of this proof, let

        $$\begin{aligned} n=_{\text {def}} \max (^{*}{}{G}) + \max (^{*}{}{H}) + ^{*}{}{K}(f) - \max (G^{*})-\max (H^{*}) \end{aligned}$$
        (29)
      • Furthermore it holds:

        $$\begin{aligned} f \in ^{*}{}{(HK)} \text {and} ^{*}{}{(HK)}(f) = \max (^{*}{}{H}) + ^{*}{}{K}(f) - \max (H^{*}) \end{aligned}$$
        (30)
      • by 3.2 and Lemma 2(iv).

    Fig. 14
    figure 14

    Case 3.1

    Fig. 15
    figure 15

    Case 3.2.1 (a)

    • Case 3.2.1\(\max (G^{*}) < \max (^{*}{}{H})\) (Figs. 15, 16). We prove (23).

      1. a)

        \(f \in ^{*}{}{(HK)}\) and \(\max (G^*) < ^{*}{}{(HK)}(f)\), by (29) and (30).

        Then \(f \in ^{*}{}{(G(HK))}\) and

        $$\begin{aligned}&^{*}{}{(G(HK))}(f)\\&\quad = \max (^{*}{}{G}) + ^{*}{}{(HK)}(f) - \max (G^{*}) \text { , by }(30) \text { and Lemma}~2\text {(iv)}&\\&\quad = \max (^{*}{}{G}) + \max (^{*}{}{H}) + ^{*}{}{K}(f) - \max (H^{*}) - \max (G^{*}) \text { , by } (30)\\&\quad = n \text { , by } (29) \end{aligned}$$
      2. b)

        \(\max ((GH)^{*}) = \max (H^{*})\), by 3.2.1 and Lemma 2(ix). Then \(\max ((GH)^{*}) < ^{*}{}{K}(f)\) by 3.2. Then \(f \in ^{*}{}{((GH)K)}\) and

        $$\begin{aligned}&^{*}{}{((GH)K)}(f)\\&\quad =\,\max (^{*}{}{(GH)}) + ^{*}{}{K}(f) - \max ((GH)^{*}) \text {, by case 3 and Lemma}~2\text {(iv)}\\&\quad =\, \max (^{*}{}{G}) + \max (^{*}{}{H})- \max (G^*) + ^{*}{}{K}(f) - \max ((GH)^*)\text {,}\\&\qquad \text { by Lemma}~2\text {(viii)}\\&\quad =\, \max (^{*}{}{G}) + \max (^{*}{}{H})- \max (G^*) + ^{*}{}{K}(f) - \max (H^*) \text {, by Lemma}~2\text {(ix)}\\&\quad =\, n \text {, by } (29). \end{aligned}$$
    • Case 3.2.2\(\max {G^*} \ge \max (^{*}{}{H})\).

    • Case 3.2.2.1\(\max (G^{*}) \ge \max (^{*}{}{H}) + ^{*}{}{K}(f) - \max (H^{*})\) (Figs. 17, 18). We prove (24).

      • There exists a unique \(g \in G^{*}\) with

        $$\begin{aligned} G^{*}(g) = \max (^{*}{}{H}) + ^{*}{}{K}(f) - \max (H^{*}) \text {,} \end{aligned}$$
        (31)
      • by 3.2.2 and Lemma 2(v).

        1. a)

          \(f \in ^{*}{}{K}\) and \(\max (H^*) \ge ^{*}{}{K}(f)\), by case 3 and case 3.2.

          Then \(f \in ^{*}{}{(HK)}\) and \(^{*}{}{(HK)}(f) = \max (^{*}{}{H}) + ^{*}{}{K}(f) - \max (H^*)\), by Lemma 2(iv) and (31).

          Then \((g,f) \in {{\mathrm{inner}}}(G(HK))\), by Lemma 2(iii).

        2. b)

          \(G^{*}(g) > \max (^{*}{}{H})\) by (31) and case 3.2.

          Then \(g \in (GH)^{*}\), and \((GH)^{*}(g) = \max (H^{*}) + G^{*}(g) - \max (^{*}{}{H})\) by (31) and Lemma 2(v).

          Then \(g \in (GH)^{*}\) and \((GH)^{*}(g) = ^{*}{}{K}(f)\), by (31).

          Then \(\max ((GH)^{*}) \ge ^{*}{}{K}(f)\) and \((GH)^{*}(g) = ^{*}{}{K}(f)\) by Lemma 1.

          Then \((g,f) \in {{\mathrm{inner}}}((GH)K)\) by Lemma 2(iii).

        Fig. 16
        figure 16

        Case 3.2.1 (b)

        Fig. 17
        figure 17

        Case 3.2.2.1 (a)

        Fig. 18
        figure 18

        Case 3.2.2.1 (b)

    • Case 3.2.2.2\(\max (G^{*}) < \max (^{*}{}{H}) + ^{*}{}{K}(f) - \max (H^{*})\) (Figs. 19, 20). We prove (23).

      1. a)

        \(f \in ^{*}{}{(HK)}\) and \(^{*}{}{(HK)}(f)\)

        $$\begin{aligned} = \max (^{*}{}{H}) + ^{*}{}{K}(f) - \max (H^{*}) \end{aligned}$$
        (32)

        by case 3.2 and Lemma 2(iv).

        Then \(f \in ^{*}{}{(HK)}\) and \(\max (G^{*}) < ^{*}{}{(HK)}(f)\), by case 3.2.2 and case 3.2.2.2. Then \(f \in ^{*}{}{(G(HK))}\) and

        $$\begin{aligned}&^{*}{}{((GH)K)}(f)\\&\quad = \max (^{*}{}{G}) + ^{*}{}{(HK)}(f) - \max (G^{*}) \text { , by Lemma}~2\text {(iv)}\\&\quad = \max (^{*}{}{G}) + \max (^{*}{}{H}) + ^{*}{}{K}(f) - \max (H^{*}) - \max (G^{*}) \text { , by } (32)\\&\quad = n \text { , by } (29). \end{aligned}$$
      2. b)

        \(\max (G^{*}) + \max (H^{*}) -\max (^{*}{}{H}) < ^{*}{}{K}(f)\), by 3.2.2.2.

        Then \(\max ((GH)^{*}) < ^{*}{}{K}(f)\) by Lemma 2(vii). Then \(f \in ^{*}{}{((GH)K)}\) and

        $$\begin{aligned}&^{*}{}{((GH)K)}(f)\\&\quad = \max (^{*}{}{(GH)}) + ^{*}{}{K}(f) - \max ((GH)^{*}) \text { , by case 3. and Lemma}~2\text {(iv)}\\&\quad = \max (^{*}{}{G}) + ^{*}{}{K}(f) - \max ((GH)^{*}) \text { , by case 3.2.2 and Lemma}~2\text {(vi)}\\&\quad = \max (^{*}{}{G}) + ^{*}{}{K}(f) - (\max (G^{*}) + \max (H^{*}) - \max (^{*}{}{H})) \text { , by case}\\&\qquad \text { 3.2.2 and Lemma}~2\text {(vii)}\\&\quad = n \text { , by } (29). \end{aligned}$$
Fig. 19
figure 19

Case 3.2.2.2 (a)

Fig. 20
figure 20

Case 3.2.2.2 (b)

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Reisig, W. Associative composition of components with double-sided interfaces. Acta Informatica 56, 229–253 (2019). https://doi.org/10.1007/s00236-018-0328-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00236-018-0328-7

Navigation