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.
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs00236-018-0328-7/MediaObjects/236_2018_328_Fig1_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs00236-018-0328-7/MediaObjects/236_2018_328_Fig2_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs00236-018-0328-7/MediaObjects/236_2018_328_Fig3_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs00236-018-0328-7/MediaObjects/236_2018_328_Fig4_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs00236-018-0328-7/MediaObjects/236_2018_328_Fig5_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs00236-018-0328-7/MediaObjects/236_2018_328_Fig6_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs00236-018-0328-7/MediaObjects/236_2018_328_Fig7_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs00236-018-0328-7/MediaObjects/236_2018_328_Fig8_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs00236-018-0328-7/MediaObjects/236_2018_328_Fig9_HTML.png)
Similar content being viewed by others
References
Arbab, F.: Reo: a channel-based coordination model for component composition. Math. Struct. Comput. Sci. 14(3), 329–366 (2004)
Best, E., Devillers, R.R., Koutny, M.: Petri net algebra. In: Monographs in Theoretical Computer Science. An EATCS Series. Springer (2001)
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)
Broy, M., Krüger, I.H., Meisinger, M.: A formal model of services. ACM Trans. Softw. Eng. Methodol. 16(1), 5 (2007)
Broy, M., Stølen, K.: Specification and Development of Interactive Systems-Focus on Streams, Interfaces, and Refinement. Monographs in Computer Science. Springer, Berlin (2001)
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)
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)
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)
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
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)
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)
Hesami Rostami, N., Kheirkhah, E., Jalali, M.: Web services composition methods and techniques: a review. Int J Comp Sci Eng Inf Technol. 3 (2013)
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)
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)
Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)
Meseguer, J., Montanari, U.: Petri nets are monoids. Inf. Comput. 88(2), 105–155 (1990)
Nadareishvili, I., Mitra, R., McLarty, M., Amundsen, M.: Microservice Architecture: Aligning Principles, Practices, and Culture, 1st edn. O’Reilly Media, Inc., Newton (2016)
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)
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)
Polyvyanyy, A., Weidlich, M., Weske, M.: Connectivity of workflow nets: the foundations of stepwise verification. Acta Inf. 48(4), 213–242 (2011)
Reisig, W.: Understanding Petri Nets—Modeling Techniques, Analysis Methods, Case Studies. Springer, Berlin (2013)
Reisig, W.: Towards a conceptual foundation of service composition. Comput. Sci. R&D 33(3–4), 281–289 (2018)
Roscoe, A.W.: Understanding Concurrent Systems. Texts in Computer Science. Springer, Berlin (2010)
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)
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)
Stahl, C., Wolf, K.: Deciding service composition and substitutability using extended operating guidelines. Data Knowl. Eng. 68(9), 819–833 (2009)
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)
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)
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)
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)
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)
Wolf, K.: Does my service have partners? Trans. Petri Nets Other Models Concurr. 2, 152–171 (2009)
**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)
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)
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
Corresponding author
Appendix: Proof of the theorem
Appendix: Proof of the theorem
For component models X,Y, in the sequel we write
Let G, H and K be component models. To prove the Theorem, with Definition 2 we have to show:
Proof of (12)
Definitions 2 and 4 immediately imply for component models X, Y and \(f \in {{\mathrm{inner}}}(X)\):
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
With respect to a port P and \(f \in P\) we write
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\):
or for some node g,
We start with some obvious properties that are later on used to justify deduction steps:
Structure of the proof of (14)
Lemma 2
Let X, Y be component models.
-
(i)
Let \(x \in ^{*}{}{X}\). Then \(x \in ^{*}{}{(XY)}\) and \(^{*}{}{(XY)}(x)= ^{*}{}{X}(x)\).
-
(ii)
Let \(y \in Y^{*}\). Then \(y \in (XY)^{*}\) and \((XY)^{*}(y)= Y^{*}(y)\).
-
(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)\).
-
(iv)
Let \(y \in ^{*}{}{Y}\) and let \(\max (X^{*}) < ^{*}{}{Y}(y)\). Then \(y \in ^{*}{}{(XY)}\) and \(^{*}{}{(XY)}(y) = \max (^{*}{}{X}) + ^{*}{}{Y}(y)-\max (X^{*})\)
-
(v)
Let \(x \in X^{*}\) and \(X^{*}(x) > \max (Y^{*})\). Then \(x \in (XY)^{*}\) and \((XY)^{*}(x)=X^{*}(x)+\max (Y^{*}) - \max (^{*}{}{X})\).
-
(vi)
Let \(\max (X^{*}) > \max (^{*}{}{Y})\). Then \(\max (^{*}{}{(XY)}) = \max (^{*}{}{X})\).
-
(vii)
Let \(\max (X^{*}) \ge \max (^{*}{}{Y})\). Then \(\max ((XY)^{*}) = \max (Y^{*}) + \max (X^{*}) - \max (^{*}{}{X})\).
-
(viii)
Let \(\max (X^{*}) < \max (^{*}{}{Y})\). Then \(\max (^{*}{}{(XY)}) = \max (^{*}{}{X}) + \max (^{*}{}{Y}) - \max (X^{*})\).
-
(ix)
Let \(\max (X^{*})< \max (^{*}{}{Y})\). Then \(\max ((XY)^{*})= \max (Y^{*})\)
-
(x)
\(\max (^{*}{}{X}) \le \max (^{*}{}{(XY)})\).
-
(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 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).
-
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).
-
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.
-
a)
-
-
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)-
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}$$ -
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}$$
-
a)
-
-
-
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).
-
a)
Then \((h,f) \in {{\mathrm{inner}}}(G(HK))\) by Definition 4.
-
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)\).
-
a)
-
-
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).
-
-
Case 3.2.1\(\max (G^{*}) < \max (^{*}{}{H})\) (Figs. 15, 16). We prove (23).
-
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}$$ -
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}$$
-
a)
-
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).
-
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).
-
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).
-
a)
-
-
Case 3.2.2.2\(\max (G^{*}) < \max (^{*}{}{H}) + ^{*}{}{K}(f) - \max (H^{*})\) (Figs. 19, 20). We prove (23).
-
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}$$ -
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}$$
-
a)
-
Rights and permissions
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00236-018-0328-7