Skip to main content
Log in

A modular synthesis approach for the coordination of multi-agent systems: the multiple team case

  • Published:
Discrete Event Dynamic Systems Aims and scope Submit manuscript

Abstract

In this paper, we deal with the problem of coordinating multiple agents to accomplish a global task. This problem consists of a set of agents divided into teams of homogeneous agents that interact with each other in order to autonomously complete a common global task. Due to the fact that agents in a team are exactly the same both in hardware and control software, the open-loop behavior of any agent in a team can be represented by a template, as well as its local control specifications. Our approach is based on the Supervisory Control Theory and it derives sufficient conditions that allow us to synthesize for each team a local supervisor template from templates associated with the team and the global task model in such a way that, when this supervisor template is instantiated for the other agents in the team, the global task can be completed by the coordinated action of all agents in the system. Our sufficient conditions also guarantee that a computed set of supervisor templates does not need to be recomputed or reconfigured whenever agents are added or removed from teams. An example of 3D robotic construction is provided to illustrate our approach.

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
Algorithm 1
Algorithm 2
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

Notes

  1. two positions (xy) and \((x',y')\) are neighbor if \(|(x - x')| + |(y-y')| = 1\).

References

  • Akesson K, Fabian M, Flordal H, Malik R (2006) Supremica - an integrated environment for verification, synthesis and simulation of discrete event systems. In: 2006 8th International workshop on discrete event systems. pp 384–385

  • Alves LVR, Martins LRR, Pena PN (2017) Ultrades-a library for modeling, analysis and control of discrete event systems. In: Proceedings of the 20th world congress of the international federation of automatic control. pp 5831–5836

  • Cai K, Wonham W (2010) Supervisor localization: a top-down approach to distributed control of discrete-event systems. IEEE Trans Autom Control 55(3):605–618

    Article  MathSciNet  Google Scholar 

  • Cassandras CG, Lafortune S et al (2008) Introduction to discrete event systems, vol 2. Springer

  • Cormen TH, Leiserson CE, Rivest RL, Stein C (2009) Introduction to algorithms. MIT press

  • Deng Y, Hua Y, Napp N, Petersen K (2019) A compiler for scalable construction by the TERMES robot collective. Robot Auton Syst 121:103240. https://doi.org/10.1016/j.robot.2019.07.010

    Article  Google Scholar 

  • Gorodetski V, Kotenko I (2002) The multi-agent systems for computer network security assurance: frameworks and case studies. In: Proceedings - 2002 IEEE international conference on artificial intelligence systems, ICAIS 2002. pp 297–302

  • Hill RC, Lafortune S (2017) Scaling the formal synthesis of supervisory control software for multiple robot systems. In: Proceedings of the American control conference (July 2018). pp 3840–3847. https://doi.org/10.23919/ACC.2017.7963543

  • Hua Y, Deng Y, Petersen K (2018) Robots building bridges, not walls. In: 2018 IEEE 3rd International workshops on foundations and applications of self* systems (FAS*W). IEEE, pp 154–159. https://doi.org/10.1109/FAS-W.2018.00041

  • Jiao T, Gan Y, Xiao G, Wonham WM (2020) Exploiting symmetry of discrete-event systems by relabeling and reconfiguration. IEEE Trans Syst Man Cybern Syst 50(6):2056–2067

    Article  Google Scholar 

  • Koenig S, Kumar S (2017) A case for collaborative construction as testbed for cooperative multi-agent planning. In: Proceedings of the ICAPS-17 scheduling and planning applications workshop (SPARK)

  • Lam E, Stuckey PJ, Koenig S, Kumar TK (2020) Exact approaches to the multi-agent collective construction problem. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol 12333. LNCS, p 743–758. https://doi.org/10.1007/978-3-030-58475-7_43

  • Liu Y, Cai K, Li Z (2019) On scalable supervisory control of multi-agent discrete-event systems. Automatica 108:108460

    Article  MathSciNet  Google Scholar 

  • Napp N, Nagpal R (2014) Distributed amorphous ramp construction in unstructured environments. Robotica 32(2):279–290. https://doi.org/10.1017/S0263574714000113

    Article  Google Scholar 

  • Pena PN, Cury JE, Lafortune S (2009) Verification of nonconflict of supervisors using abstractions. IEEE Trans Autom Control 54(12):2803–2815

    Article  MathSciNet  Google Scholar 

  • Petersen K, Nagpal R, Werfel J (2012) TERMES: an autonomous robotic system for three-dimensional collective construction. Robot Sci Syst 7:257–264

    Google Scholar 

  • Petersen KH, Napp N, Stuart-Smith R, Rus D, Kovac M (2019) A review of collective robotic construction. Sci Robot 4(28)

  • Queiroz MH, Cury JE, Wonham WM (2005) Multitasking supervisory control of discrete-event systems. Discrete Event Dyn Syst Theory Appl 15(4):375–395

    Article  MathSciNet  Google Scholar 

  • Ramadge PJ, Wonham WM (1989) The control of discrete event systems. Discret Event Dyn Syst 77:81–98

    Google Scholar 

  • Rohloff K, Lafortune S (2006) The verification and control of interacting similar discrete-event systems. SIAM J Control Optim 45(2):634–667. https://doi.org/10.1137/040610209

    Article  MathSciNet  Google Scholar 

  • Rosa M, Cury JER, Baldissera FL (2020) Supervisory control in construction robotics: in the quest for scalability and permissiveness. In: International workshop on discrete event systems. Rio de Janeiro, Brazil

  • Rosa M, Cury JER, Baldissera FL (2022a) A formal modular synthesis approach for the coordination of multi-agent systems. In: International workshop on discrete event systems. Prague, Czech Republic

  • Rosa M, Cury JER, Baldissera FL (2022b) A modular synthesis approach for the coordination of 3-d multi-robot construction systems with multiple team. Tech. rep., Departamento de Engenharia de Automação e Sistemas, Universidade Federal de Santa Catarina. https://arquivos.ufsc.br/d/6cc16597514646669bb7/

  • Sartoretti G, Wu Y, Paivine W, Kumar TKS, Koenig S, Choset H (2019) Distributed reinforcement learning for multi-robot decentralized collective construction. Springer Proceedings in Advanced Robotics, vol 9. Springer International Publishing, Cham, pp 35–49

  • Seow KT, Pham MT, Ma C, Yokoo M (2009) Coordination planning: applying control synthesis methods for a class of distributed agents. IEEE Trans Control Syst Technol 17(2):405–415

    Article  Google Scholar 

  • Su R (2013) Discrete-event modeling of multi-agent systems with broadcasting-based parallel composition. Automatica 49(11):3502–3506. https://doi.org/10.1016/j.automatica.2013.08.007

    Article  MathSciNet  Google Scholar 

  • Su R, Lennartson B (2017) Control protocol synthesis for multi-agent systems with similar actions instantiated from agent and requirement templates. Automatica 79:244–255. https://doi.org/10.1016/j.automatica.2017.01.003

    Article  MathSciNet  Google Scholar 

  • Werfel J, Petersen K, Nagpal R (2014) Designing collective behavior in a termite-inspired robot construction team. Science 343(6172):754–758

    Article  CAS  PubMed  ADS  Google Scholar 

  • Wong KC, Wonham WM (1996) Hierarchical control of discrete-event systems. Discrete Event Dyn Syst 6(3):241–273

    Article  CAS  Google Scholar 

  • Zhang Z (2001) Smart tct, an efficient algorithm for supervisory control design. PhD thesis. https://tspace.library.utoronto.ca/handle/1807/15885

  • Zhang Z, Wonham WM (2002) Stct: an efficient algorithm for supervisory control design. In: Synthesis and control of discrete event systems. Springer, pp 77–100

Download references

Acknowledgements

This work has been partially supported by CAPES, The Brazilian Agency for Higher Education, under the project Print CAPES-UFSC “Automation 4.0”.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marcelo Rosa.

Ethics declarations

Conflicts of interest

The authors declare that they have no conflict of interest.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendices

Appendix A: Partially reciprocal synthesis algorithm

In this appendix, we introduce a procedure, shown in Algorithm 3, to compute the maximal partially reciprocal subautomaton of a given \(K_{i}\).

Algorithm 3
figure f

partially reciprocal property synthesis algorithm.

Algorithm 3 takes as input a subautomaton \(\mathcal {S}_{i}\) of \(K_{i}\) and it identifies, in line 1, all bad macrostates according to the reciprocity property in \(\mathcal {S}_{i}\), that is, macrostates from which \(\tau ^{k}_{i} \in \varGamma ({[q_{T}]})\) and \(\tau ^{k}_{\text {other}} \notin \varGamma ({[q_{T}]})\). Next, for every bad macrostate \([q_{T}] \in [Q_{\mathcal {S}_{i}}]\), in line 3, the events belonging to \(\varGamma ({[q_{T}]})\) that cause \([q_{T}]\) to be a bad macrostate are identified. Then, in line 4, all transitions starting from states in \([q_{T}]\) with any of these events are removed from \(\mathcal {S}_{i}\).

The correctness of the result of Algorithm 3 is easily confirmed by the fact that, at termination, for each macrostate from \(\mathcal {S}_{i}\) the condition stated in Definition 6 is satisfied.

Proposition 3

Let \(\mathcal {S}_{i} \sqsubseteq K_{i}\) be the output of Algorithm 3. For all \([q_{T}] \in [Q_{\mathcal {S}_{i}}]\) it is true that

$$\begin{aligned} \tau ^{k}_{i} \in \varGamma ({[q_{T}]}) \implies \tau ^{k}_{\text {other}} \in \varGamma ({[q_{T}]}) \end{aligned}$$
(1)

Moreover, from the fact that Algorithm 3 only eliminates transitions with task events \(\tau ^{k}_{i} \in \varSigma _{\mathcal {S}_{i}}\) that lead to \(\mathcal {S}_{i}\) not being partially reciprocal, at termination, \(\mathcal {S}_{i}\) is the maximal partially reciprocal subautomaton that can be computed from itself.

Proposition 4

Let \(\mathcal {S}_{i} \sqsubseteq K_{i}\) be the output of Algorithm 3 for \(K_{i}\) and \(\varLambda ({K_{i}}) = \{\mathcal {S}_{i}' \sqsubseteq K_{i} \mid \mathcal {S}_{i}' ~\text {is partially reciprocal}\}\) be the set of all partially reciprocal subautomata of \(K_{i}\). \(\mathcal {S}_{i} = \bigcup _{\mathcal {S}_{i}' \in \varLambda ({K_{i}})} \mathcal {S}_{i}'\).

Appendix B: \(SCo([q_{T}],{\varDelta })\) algorithm

In this appendix, we propose a procedure, shown in Algorithm 4, to compute \(SCo({[q_{T}]},{\varDelta })\), with \(\varDelta \subseteq \varGamma ({[q_{T}]})\).

Algorithm 4
figure g

\(SCo({[q_{T}]},{\varDelta })\) algorithm.

Algorithm 4 is based on Breadth-First Search (BFS) algorithm (Cormen et al. 2009). Its idea is to associate to each state \((q_{T}, q_{i}) \in [q_{T}]\) a set of task events \(\varOmega ((q_{T}, q_{i})) \subseteq \varDelta \), where an event \(\tau ^{k}_{x} \in \varDelta \) belongs to \(\varOmega ((q_{T}, q_{i}))\) if and only if it is enabled in \((q_{T}, q_{i})\) itself or in some accessible state from \((q_{T}, q_{i})\). Thus, when Algorithm 4 ends the states where \(\varOmega ((q_{T},q_{i})) = \varDelta \) corresponds to states that are strongly coreachable w.r.t. \(\varDelta \).

Appendix C: \(Co({[q_{T}]})\) algorithm

This appendix presents a procedure, detailed in Algorithm 5, for computing \(Co({[q_{T}]})\).

Algorithm 5
figure h

\(Co({[q_{T}]})\) algorithm.

Algorithm 5 is also based o BFS algorithm. For each marked state \((q_{T}, q_{i}) \in [q_{T}]\), Algorithm 5 executes BFS procedure of Algorithm 4, excluding line 22, and collects all states in \([q_{T}]\) that are colored with black. These black states correspond to the coreachable states in \([q_{T}]\) w.r.t. \((q_{T}, q_{i})\).

Appendix D: T-observer synthesis algorithm

In this appendix, we propose a procedure, shown in Algorithm 6, to compute a T-observer subautomaton of a given \(K_{i}\).

Algorithm 6
figure i

T-observer property synthesis algorithm.

In order to obtain a strongly coreachable component w.r.t. \(\varDelta \subseteq \varGamma ({[q_{T}]})\) and/or local coreachable component from a given \([q_{T}]\), we define the function \(\mathsf {CompSCo\_LCo}({[q_{T}], \varDelta , Q^{m}_{\mathcal {S}_{i}}})\), in lines 20-37, which iteratively eliminates states from \([q_{T}]\) that fail to be strongly coreachable w.r.t. \(\varDelta \) and/or local coreachable. It is worth noting that, for a non-empty macrostate \([q_{T}]\) and \(\varDelta = \emptyset \) the function \(\mathsf {CompSCo\_LCo}({[q_{T}], \varDelta , Q^{m}_{\mathcal {S}_{i}}})\) yields \([q_{T}]\) or \(Co([q_{T}])\) such that \(|Co([q_{T}])| \ge 1\). When \(\varDelta \) is non-empty and \([q_{T}]\) has no marked state the function \(\mathsf {CompSCo\_LCo}\) provides as output the strongly coreachable component w.r.t. \(\varDelta \) from \([q_{T}]\). On the other hand, when \(\varDelta \) is non-empty and \([q_{T}]\) has at least one marked state the function \(\mathsf {CompSCo\_LCo}\) provides as output the strongly coreachable w.r.t. \(\varDelta \) and local coreachable component from \([q_{T}]\).

Initially, Algorithm 6 prioritizes to prune states in \([q_{T}]\) in order to keep all task events in \(\varGamma ({[q_{T}]})\), that is, it computes \(\mathsf {CompSCo\_LCo}({[q_{T}], \varGamma ({[q_{T}]}), Q^{m}_{\mathcal {S}_{i}}})\) in line 4. However, when \(\mathsf {CompSCo\_LCo}({[q_{T}], \varGamma ({[q_{T}]}), Q^{m}_{\mathcal {S}_{i}}}) = \emptyset \), in line 7, Algorithm 6 call the function \(\textsf{Choose}([q_{T}], \varGamma ({[q_{T}]}),Q^{m}_{\mathcal {S}_{i}})\) which provides a proper subset \(\varDelta \subset \varGamma ({[q_{T}]})\) that preserves the partially reciprocal properties and \(\mathsf {CompSCo\_LCo}({[q_{T}], \varDelta , Q^{m}_{\mathcal {S}_{i}}}) \ne \emptyset \). Due to the fact that the set of all possible choices of \(\varDelta \) has \(2^{|\varGamma ({[q_{T}]})|} -1\) elements, in this paper we use a version of the function \(\textsf{Choose}\) in which it iteratively eliminates task events from \(\varGamma ({[q_{T}]})\), taking into account the partially reciprocal property, until \(\mathsf {CompSCo\_LCo}({[q_{T}], \varDelta , Q^{m}_{\mathcal {S}_{i}}}) \ne \emptyset \). Thus, in a worst-case our function \(\textsf{Choose}\) can iterate at most \({|\varGamma ({[q_{T}]})|} -1\) times until finding a proper \(\varDelta \). We highlight that other heuristics can be adopted to choose \(\varDelta \). Remark that Algorithm 6 prioritizes constraining the local behavior of the agent while keeping its capability of performing task events since it only removes task events in case it does not find a strongly coreachable component w.r.t. \(\varGamma ({[q_{T}]})\) and/or a local coreachable component for a given macrostate \([q_{T}]\).

The correctness of the result of Algorithm 6 is easily confirmed by the fact that, at termination, for each macrostate from \(\mathcal {S}_{i}\) the conditions stated in Theorem 2 are satisfied. Thus, \(\mathcal {S}_{i}\) is a T-observer subautomaton of \(K_{i}\).

Proposition 5

Let \(\mathcal {S}_{i} \sqsubseteq K_{i}\) be the output of Algorithm 6. For all \([q_{T}] \in [Q_{\mathcal {S}_{i}}]\) it is true that

$$\begin{aligned} \begin{aligned} \varGamma ({[q_{T}]}) \ne \emptyset&\implies [q_{T}] = SCo([q_{T}],{\varGamma ({[q_{T}]})}) \\ ~&and \\ [q_{T}] \cap Q^{m}_{\mathcal {S}_{i}} \ne \emptyset&\implies [q_{T}] = Co({[q_{T}]}). \end{aligned} \end{aligned}$$
(2)

Appendix E: Complexity analysis

In this appendix, we assess the effort required to synthesize supervisors through our approach. For this, we analyze the time complexity of each algorithm presented throughout this paper following the order of dependence between them.

1.1 Complexity of Algorithm 3

Algorithm 3 enforces the partially reciprocal property on \(\mathcal {S}_{i} \sqsubseteq K_{i}\) by visiting all transitions starting from the states in every \([q_{T}] \in [Q_{\mathcal {S}_{i}}]\), and deleting transitions in \([q_{T}]\) with \(\tau ^{k}_{i} \in \varGamma ({[q_{T}]})\) such that \(\tau ^{k}_{\text {other}} \not \in \varGamma ({[q_{T}]})\). Hence, its time complexity is given \(O(|Q_{T}||Q_{A_{i}\Vert C_{i}}||\varSigma _{i}|)\), where \(|Q_{A_{i}\Vert C_{i}}||\varSigma _i|\) corresponds to the maximal number of transition in \([q_{T}]\) and \(|Q_T|\) to the maximal number of macrostate in \([Q_{\mathcal {S}_{i}}]\).

1.2 Complexity of Algorithm 4

In order to compute \(SCo([q_{T}],{\varDelta })\) Algorithm 4 executes a breadth-first search for each state in \([q_{T}]\) where transitions with task events in \(\varDelta \) are defined. Thus, to define the time complexity of Algorithm 4 we have to determine how many times the breadth-first search is executed.

Since the worst case of Algorithm 4 is when in all states belonging to \([q_{T}]\) there is at least one transition with some task event \(\varDelta \), then the breadth-first search, in line 6, is executed \(|[q_{T}]|\) times and its time complexity is \(O(|[q_{T}]| + |[q_{T}]||\varSigma ^{\text {loc}}_{i}|)\) (Cormen et al. 2009). Furthermore, as \(|[q_{T}]| \le |Q_{A_{i} \Vert C_{i}}|\), then the time complexity of Algorithm 4 is \(O(|Q_{A_{i} \Vert C_{i}}|^2 + |Q_{A_{i} \Vert C_{i}}|^2 |\varSigma ^{\text {loc}}_{i}|) = O(|Q_{A_{i} \Vert C_{i}}|^2 (1 + |\varSigma ^{\text {loc}}_{i}|))\).

1.3 Complexity of Algorithm 5

Similar to Algorithm 4, to compute \(Co({[q_{T}]})\) Algorithm 5 executes a breadth-first search for each marked state in \([q_{T}]\). Consequently, determining the time complexity of Algorithm 5 requires that we assess the number of times the breadth-first search is executed.

Note that the worst case of Algorithm 5 is when in all states belonging to \([q_{T}]\) are marked, then the breadth-first search, in line 4, is executed \(|[q_{T}]|\) times and as aforementioned its time complexity is \(O(|[q_{T}]| + |[q_{T}]||\varSigma ^{\text {loc}}_{i}|)\). As \(|[q_{T}]| \le |Q_{A_{i} \Vert C_{i}}|\), then the time complexity of Algorithm 5 is \(O(|Q_{A_{i} \Vert C_{i}}|^2 + |Q_{A_{i} \Vert C_{i}}|^2 |\varSigma ^{\text {loc}}_{i}|) = O(|Q_{A_{i} \Vert C_{i}}|^2 (1 + |\varSigma ^{\text {loc}}_{i}|))\).

1.4 Complexity of Algorithm 6

After initialization, Algorithm 6 verifies whether \(\mathcal {S}_{i} \sqsubseteq K_{i}\) is T-observer or not. When the result of this test is negative, Algorithm 6 identifies all macrostate that lead \(\mathcal {S}_{i}\) to be not T-observer, and then for each one of them it computes a strongly coreachable component. So, to estimate the time complexity of Algorithm 6 we must determine how many times the functions \(\mathsf {CompSCo\_LCo}\) and \(\textsf{Choose}\) are executed, as well as their time complexity.

First, we will determine the time complexity of the function \(\mathsf {CompSCo\_LCo}\). Note that, the worst case of the function \(\mathsf {CompSCo\_LCo}\) is when \(\varDelta \ne \emptyset \) and \([q_{T}] \cap Q^{m}_{\mathcal {S}_{i}} \ne \emptyset \), since it must compute both \(SCo([q_{T}],{\varDelta })\) and \(Co({[q_{T}]})\). As while loop of lines 30-32 runs at most \(|[q_{T}]| \le |Q_{A_{i} \Vert C_{i}}|\) times and due to the fact that the time complexity to compute both \(SCo([q_{T}],{\varDelta })\) and \(Co({[q_{T}]})\) is \(O(|Q_{A_{i} \Vert C_{i}}|^2 (1 + |\varSigma ^{\text {loc}}_{i}|))\), the time complexity of the function \(\mathsf {CompSCo\_LCo}\) is \(O(|Q_{A_{i} \Vert C_{i}}|^3 (1 + |\varSigma ^{\text {loc}}_{i}|))\).

Now, we will analyze the function \(\textsf{Choose}\) defined in lines 39-47. Remark that, the function \(\textsf{Choose}([q_{T}], \varGamma ({[q_{T}]}), Q^{m}_{\mathcal {S}_{i}})\) can, in a worst case, run the function \(\mathsf {CompSCo\_LCo}\) in line 44 at most \(2|\varSigma _{T}| - 1\) times. Hence, the time complexity of the function \(\textsf{Choose}\) is \(O(|Q_{A_{i} \Vert C_{i}}|^3 |\varSigma _{T}| (1 + |\varSigma ^{\text {loc}}_{i}|))\).

As while loop of lines 1-18 runs \(|Q_{\mathcal {S}_{i}}| \le |Q_{T}||Q_{A_{i} \Vert C_{i}}|\) times and for loop of lines 3-17 runs \(|[Q_{\mathcal {S}_{i}}]| \le |Q_{T}|\) times, then the functions \(\mathsf {CompSCo\_LCo}\) and \(\textsf{Choose}\) can be executed at most \(|Q_{T}|^2|Q_{A_{i} \Vert C_{i}}|\) times. Thus, the time complexity of Algorithm 6 is \(O(|\varSigma _{T}||Q_{T}|^2|Q_{A_{i} \Vert C_{i}}|^4 (1 + |\varSigma ^{\text {loc}}_{i}|))\).

1.5 Complexity of Algorithm 2

As Algorithm 2 starts from \(\mathcal {S}_{i} = K_{i}\), for each \(i \in \{1, \ldots , m\}\), and iteratively deletes states and transitions that lead \(\mathcal {S}_{i}\) to violate controllability, nonblocking, partially reciprocal and T-observer properties, then to determine the time complexity of Algorithm 2 we must estimate the computational costs associated with the procedures that impose these properties on an automaton and also how many times they are called by Algorithm 2.

It is known from Zhang (2001) that the time complexity of computing a nonblocking automaton for the maximal controllable sublanguage of \(\mathcal {S}_{i}\ \text {w.r.t.}\ A_{i}\), that is, \(\text {sup}\mathcal {C}(\mathcal {S}_{i}, A_{i})\) is \(O(|Q_{\mathcal {S}_{i}}|^2)\). The maximal partially reciprocal subautomaton of \(\mathcal {S}_{i}\) can be computed by Algorithm 3 whose the time complexity is \(O(|Q_{T}||Q_{A_{i}\Vert C_{i}}||\varSigma _{i}|)\), whereas a T-observer subautomaton of \(\mathcal {S}_{i}\) that preserves partially reciprocal property can be synthesized by Algorithm 6 whose the time complexity is \(O(|\varSigma _{T}||Q_{T}|^2|Q_{A_{i} \Vert C_{i}}|^4 (1 + |\varSigma ^{\text {loc}}_{i}|))\). As while loop of the lines 19-30 can run \(|Q_{\mathcal {S}_{i}}| \le |Q_{T}||Q_{A_{i} \Vert C_{i}}|\), then time complexity to synthesize a \(\mathcal {S}_{i}\) containing the four properties is \(O(|\varSigma _{T}||Q_{T}|^3|Q_{A_{i} \Vert C_{i}}|^5 (1 + |\varSigma ^{\text {loc}}_{i}|))\). Hence, the time complexity of Algorithm 2 is \(O(|\varSigma _{T}||Q_{T}|^3|Q_{A_{i} \Vert C_{i}}|^5 (1 + |\varSigma ^{\text {loc}}_{i}|))\).

1.6 Complexity of Algorithm 1

As mentioned in Section 4 Algorithm 1 can be divided into three steps and, therefore, its complexity can be estimated in relation to these steps.

The complexity of step (1) is associated with the number of times that the function \(\textsf{SSA}\), described in Algorithm 2, is called by Algorithm 1, that is, how many times the lines 1 and 7 are executed. Note that, the body of the while loop (lines 4-10) is executed at most \(|Q_{[\mathcal {R}]}|\) times. Despite the fact that any \([\mathcal {R}_{i}]\) has at most \(|Q_{T}|\) states, it can be demonstrated that the product \([\mathcal {R}] = [\mathcal {R}_{1}] \Vert \ldots \Vert [\mathcal {R}_{m}]\) has \(|Q_{T}|\) reachable states in the worst case.

Proposition 6

For \([\mathcal {R}] = [\mathcal {R}_{1}] \Vert \ldots \Vert [\mathcal {R}_{m}]\) it is true that \(|Q_{[\mathcal {R}]}| \le |Q_{T}|\).

Besides, the line 1 is executed only once. Hence, Algorithm 1 calls \(\textsf{SSA}\) no more than \(|Q_{T}| + 1\) times and every call takes \(O(m|\varSigma _{T}||Q_{T}|^3|Q_{A_{i} \Vert C_{i}}|^5 (1 + |\varSigma ^{\text {loc}}_{i}|))\) time. Thus, the complexity of step (1) is \(O(m|\varSigma _{T}||Q_{T}|^4|Q_{A_{i} \Vert C_{i}}|^5 (1 + |\varSigma ^{\text {loc}}_{i}|))\).

In step (2), the construction of each \([\mathcal {R}_{i}]\), in the lines 2 and 8, requires \(O(|Q_{T}||Q_{A_{i} \Vert C_{i}}||\varSigma _{i}|)\), since \([Q_{\mathcal {S}_{i}}] \le |Q_{T}|\) and \(|[q_{T}]| \le |Q_{A_{i} \Vert C_{i}}|\). Furthermore, as \(\varSigma _{[\mathcal {R}_{i}]} = \varSigma ^{\text {task}}_{1} \cup \ldots \cup \varSigma ^{\text {task}}_{m}\), then we have \(|\delta _{[\mathcal {R}]}| \le m|\delta _{T}| \le m |Q_{T}||\varSigma _{T}|\). Thus, the time complexity of computing \(\textsf{trim}([\mathcal {R}])\), in line 5, is \(O(|Q_{T}| + m |Q_{T}||\varSigma _{T}|)\). Hence, the time complexity of step (2) is \(O(|Q_{T}|^2 + m |Q_{T}|^2|\varSigma _{T}|)\), since while loop of the lines 4-10 can iterate at most \(|Q_{T}|\) times.

Finally, the time complexity of step (3) is \(O(|Q_{T}|^2)\), since the update process of T, line 6, takes \(O(|Q_{T}|)\).

Therefore, the time complexity of Algorithm 1 is \(O(m|\varSigma _{T}||Q_{T}|^4|Q_{A_{i} \Vert C_{i}}|^5 (1 + |\varSigma ^{\text {loc}}_{i}|))\).

Appendix F: An automaton representation of the joint action of the supervisors

In this appendix, we introduce the refined version of \(\mathcal {S}_{ij}\), with \(i \in \textbf{M}\) and \(j \in \text {N}_{i} \), where each transition with \(\tau ^{k}_{\text {other}} \in \varSigma ^{\text {task}}_{\text {other}}\) is replaced by the transitions labeled with events \(\tau ^{k}_{i'j'}\) for all \((i',j') \in \textbf{I} = \{ (i',j') \mid i' \in \textbf{M} ~\text {and}~ j' \in \text {N}_{i'}\)}. Then, we show that the synchronous product of these refined versions is equivalent to the joint action of the supervisors \(\{\mathcal {S}_{ij} \mid (i,j) \in \textbf{I}\}\). This result will be used in the proof of Theorem 1.

Definition 9

Given an instance \(\mathcal {S}_{ij} = \left( Q_{\mathcal {S}_{i}} , \varSigma _{\mathcal {S}_{ij}} , \delta _{{\mathcal {S}_{ij}}} , q^{0}_{\mathcal {S}_{i}} , Q^{m}_{\mathcal {S}_{i}} \right) \) of \(\mathcal {S}_{i} \sqsubseteq K_{i}\) and \(\textbf{I}^{\prime } \subseteq \textbf{I}\) define \(\mathcal {H}_{ij}({\textbf{I}^{\prime }}) = \left( Q_{\mathcal {S}_{i}} , \varSigma _{\mathcal {H}_{ij}({\textbf{I}^{\prime }})} , \delta _{\mathcal {H}_{ij}({\textbf{I}^{\prime }})} , q^{0}_{\mathcal {S}_{i}} , Q^{m}_{\mathcal {S}_{i}} \right) \) as the refined version of \(\mathcal {S}_{ij}\) where

  1. i)

    \(\varSigma _{\mathcal {H}_{ij}({\textbf{I}^{\prime }})} = \varSigma _{ij} \cup \left( \bigcup _{(i',j') \in \textbf{I}^{\prime } \setminus \{(i,j)\} } \varSigma ^{\text {task}}_{i'j'} \right) \);

  2. ii)

    \(\delta _{\mathcal {H}_{ij}({\textbf{I}^{\prime }})}: Q_{\mathcal {S}_{i}} \times \varSigma _{\mathcal {H}_{ij}({\textbf{I}^{\prime }})} \rightarrow Q_{\mathcal {S}_{i}}\) is defined as

    • \(\delta _{\mathcal {H}_{ij}({\textbf{I}^{\prime }})}((q_{T}, q_{i}), \sigma _{ij}) = \delta _{\mathcal {S}_{ij}}((q_{T} , q_{i}) , \sigma _{ij})\);

    • \(\delta _{\mathcal {H}_{ij}({\textbf{I}^{\prime }})}((q_{T}, q_{i}), \tau ^{k}_{ij}) = \delta _{\mathcal {S}_{ij}}((q_{T},q_{i}) , \tau ^{k}_{ij})\); and

    • \(\delta _{\mathcal {H}_{ij}({\textbf{I}^{\prime }})}((q_{T}, q_{i}), \tau ^{k}_{i'j'}) = \delta _{\mathcal {S}_{ij}}((q_{T},q_{i}) , \tau ^{k}_{\text {other}})\), for all \((i',j') \in \textbf{I}^{\prime } \setminus \{(i,j)\}\) and \(\tau ^{k}_{i'j'} \in \varSigma ^{\text {task}}_{i'j'}\).

Note that, \(\mathcal {H}_{ij}({\textbf{I}^{\prime }})\) and \(\mathcal {S}_{ij}\) are essentially the same, except for an exchange of events \(\tau ^{k}_{\text {other}}\) by events in \(\{\tau ^{k}_{i'j'} \in \varSigma ^{\text {task}}_{i'j'} \mid (i',j') \in \textbf{I}^{\prime } ~\text {and}~ (i',j') \ne (i,j) \}\), and vice versa. The concept of quotient automaton can be naturally extended for \(\mathcal {H}_{ij}({\textbf{I}^{\prime }})\) so that \([\mathcal {H}_{ij}({\textbf{I}^{\prime }})]\) is the quotient automaton. Henceforth we will write \(\mathcal {H}_{ij}({\textbf{I}})\) as \(\mathcal {H}_{ij}\).

Proposition 7

\(\mathcal {H} = \big |\big |_{ij \in \textbf{I}} \mathcal {H}_{ij}\) is equivalent to the joint action of the supervisors \(\{\mathcal {S}_{ij} \mid ij \in \textbf{I}\}\) described in (B1) and (B2).

Appendix G: Proofs of theorems, lemmas and propositions

1.1 Proofs of Section 3.1

Proof (proof of Proposition 1)

[proof of Proposition 1]

First, we will show the fact that \(\mathcal {S}_{i}\) being T-observer implies items a) and b).

Let \([q_{T}] \in [Q_{\mathcal {S}_{i}}]\) and \(\tau \in \varGamma ({[q_{T}]})\). Note that, as \(\mathcal {S}_{i}\) is a trim automaton, we know that \([\mathcal {S}_{i}]\) is a trim automaton and for each state \((q_{T},q_{i}) \in [q_{T}]\) there exists \(s \in \varSigma _{\mathcal {S}_{i}}^*\) such that

$$\begin{aligned} \delta _{\mathcal {S}_{i}}((q_{T}^{0},q_{i}^{0}),s) = (q_{T},q_{i}). \end{aligned}$$
(3)
  1. 1)

    Consider \((q_{T},q_{i}) \in [q_{T}]\). From Definition 3 we can conclude that

    $$\begin{aligned} \delta _{[\mathcal {S}_{i}]}([q_{T}], \tau )! \iff \tau \in \varGamma ({[q_{T}]}) \end{aligned}$$
    (4)

    Thus, given that \([\mathcal {S}_{i}]\) is a trim automaton, we know that there exists \(t = \tau t'\), with \(t' \in \varSigma _{T_i}^*\) such that

    $$\begin{aligned} \delta _{[\mathcal {S}_{i}]}([q_{T}], t) \in Q^{m}_{[\mathcal {S}_{i}]} \end{aligned}$$
    (5)

    Since \(\mathcal {S}_{i}\) is T-observer, we have that there exists \(s' = u \tau v\), with \(u \in (\varSigma ^{\text {loc}}_{i})^*\), \(v \in \varSigma _{\mathcal {S}_{i}}^*\) and \(\mathcal {P}_{i}(v) = t'\), such that \(ss' \in L_m(\mathcal {S}_{i})\) and \(\mathcal {P}_{i}(s') = \tau t'\). Hence, \(ss' \in L_m(\mathcal {S}_{i})\) implies that

    $$\begin{aligned} \begin{array}{c} \delta _{\mathcal {S}_{i}}((q_{T}^{0},q_{i}^{0}),su\tau v) \in Q^{m}_{\mathcal {S}_{i}} \end{array} \end{aligned}$$
    (6)

    Therefore, from Eq. 6 we can conclude that

    $$\begin{aligned} \delta _{\mathcal {S}_{i}}((q_{T},q_{i}),u\tau )! \end{aligned}$$
    (7)
  2. 2)

    Now, consider \([q_{T}] \in Q^{m}_{[\mathcal {S}_{i}]}\) and \((q_{T}, q_{i}) \in [q_{T}]\). Note that \([q_{T}] \in Q^{m}_{[\mathcal {S}_{i}]}\) implies that \(\delta _{[\mathcal {S}_{i}]}([q_{T}],\varepsilon ) = [q_{T}]\). So, from T-observer property it follows that there exists \(s' \in \varSigma _{\mathcal {S}_{i}}^*\) such that \(\delta _{\mathcal {S}_{i}}((q_{T}^{0},q_{i}^{0}),ss') \in Q^{m}_{\mathcal {S}_{i}}\) and \(\mathcal {P}_{i}(s') = \varepsilon \). Note that \(\mathcal {P}_{i}(s') = \varepsilon \) implies that \(s' \in (\varSigma ^{\text {loc}}_{i})^*\), since \(\varSigma _{\mathcal {S}_{i}} = \varSigma ^{\text {loc}}_{i} \cup \varSigma _{T_{i}}\). Hence, there exists \(u' = s'\) such that \(\delta _{\mathcal {S}_{i}}((q_{T},q_{i}),u') \in Q^{m}_{\mathcal {S}_{i}}\).

Now, we will show that the items a) and b) imply that \(\mathcal {S}_{i}\) is T-observer. Let \(s \in L(\mathcal {S}_{i})\) and \(t \in \varSigma _{T_{i}}^*\), with \(\delta _{\mathcal {S}_{i}}((q_{T}^{0},q_{i}^{0}),s) \in [q_{T}]\) and \(\delta _{[\mathcal {S}_{i}]}([q_{T}],t) \in Q^{m}_{[\mathcal {S}_{i}]}\).

  1. 3)

    Consider \(t \ne \varepsilon \). Note that from Definition 3 we can conclude that

    $$\begin{aligned} \delta _{[\mathcal {S}_{i}]}([q_{T}^{\prime }], \tau )! \iff \tau \in \varGamma ({[q_{T}^{\prime }]}) \end{aligned}$$
    (8)

    for \([q_{T}^{\prime }] \in [Q_{\mathcal {S}_{i}}]\) and \(\tau \in \varSigma _{T_{i}}\). Besides, from item a) we know that for each \((q_{T}^{\prime },q_{i}^{'}) \in [q_{T}^{\prime }]\) and \(\tau \in \varGamma ({[q_{T}^{\prime }]})\) there exists \(u \in (\varSigma ^{\text {loc}}_{i})^*\) such that

    $$\begin{aligned} \delta _{\mathcal {S}_{i}}((q_{T}^{\prime },q_{i}^{'}), u \tau )! \end{aligned}$$
    (9)

    Thus, from Eqs. 8 and 9 it follows that \(\delta _{[\mathcal {S}_{i}]}([q_{T}],t) \in Q^{m}_{[\mathcal {S}_{i}]}\) implies that there is \(v \in \varSigma _{\mathcal {S}_{i}}^*\) such that

    $$\begin{aligned} \mathcal {P}_{i}(v) = t ~\text {and}~ \delta _{\mathcal {S}_{i}}((q_{T},q_{i}), v) \in Q^{m}_{[\mathcal {S}_{i}]} \end{aligned}$$
    (10)

    So, from Eq. 10 and item b) we know that there is \(u' \in (\varSigma ^{\text {loc}}_{i})^*\) such that

    $$\begin{aligned} \delta _{\mathcal {S}_{i}}((q_{T},q_{i}), vu') \in Q^{m}_{\mathcal {S}_{i}} \end{aligned}$$
    (11)

    Since \(\mathcal {P}_{i}(u') = \varepsilon \) and \(\mathcal {P}_{i}(v) = t\), then there is \(s' = vu'\) such that \(\mathcal {P}_{i}(s') = t\) and \(ss' \in L_m(\mathcal {S}_{i})\).

  2. 4)

    Now, consider \(t = \varepsilon \). Thus, \(\delta _{[\mathcal {S}_{i}]}([q_{T}], \varepsilon ) = [q_{T}]\) implies that \([q_{T}] \in Q^{m}_{[\mathcal {S}_{i}]}\). So, from item b) it follows that there exists \(u' \in (\varSigma ^{\text {loc}}_{i})^*\) such that

    $$\begin{aligned} \delta _{\mathcal {S}_{i}}((q_{T},q_{i}), u') \in Q^{m}_{\mathcal {S}_{i}}. \end{aligned}$$
    (12)

    Therefore, Eq. 12 means that there is \(s' = u'\) such that \(ss' \in L_m(\mathcal {S}_{i})\) and \(\mathcal {P}_{i}(s') = t\).

\(\square \)

Proof (proof of Proposition 2)

[proof of Proposition 2]

To prove that \(\mathcal {S}_{i}' \cup \mathcal {S}_{i}''\) is partially reciprocal, it is sufficient to show that for each macrostate \([q_{T}] \subseteq Q_{\mathcal {S}_{i}'} \cup Q_{\mathcal {S}_{i}''}\) and \(\tau ^{k}_{i}, \tau ^{k}_{\text {other}} \in \varSigma _{K_{i}}\) it holds that

$$\begin{aligned} \tau ^{k}_{i} \in \varGamma ({[q_{T}]}) \implies \tau ^{k}_{\text {other}} \in \varGamma ({[q_{T}]}) \end{aligned}$$
(13)

Let \([q_{T}] \subseteq Q_{\mathcal {S}_{i}'} \cup Q_{\mathcal {S}_{i}''}\) be a macrostate of \(\mathcal {S}_{i}' \cup \mathcal {S}_{i}''\) and \(\tau ^{k}_{i} \in \varSigma _{K_{i}}\). So, \([q_{T}] \subseteq Q_{\mathcal {S}_{i}'} \cup Q_{\mathcal {S}_{i}''}\) implies that \([q_{T}] \cap Q_{\mathcal {S}_{i}'} \ne \emptyset \) or \([q_{T}] \cap Q_{\mathcal {S}_{i}''} \ne \emptyset \). First, we will consider \([q_{T}]' = [q_{T}] \cap Q_{\mathcal {S}_{i}'}\), with \([q_{T}] \cap Q_{\mathcal {S}_{i}'} \ne \emptyset \). Thus, by assumption that \(\mathcal {S}_{i}'\) is partially reciprocal we know that for the macrostate \([q_{T}]'\) it holds that

$$\begin{aligned} \tau ^{k}_{i} \in \varGamma ({[q_{T}]'}) \implies \tau ^{k}_{\text {other}} \in \varGamma ({[q_{T}]'}) \end{aligned}$$
(14)

The Eq. 14 implies that there are \((q_{T},q_{i}^{b}),(q_{T},q_{i}^{c}) \in [q_{T}]'\) such that

$$\begin{aligned} \delta _{\mathcal {S}_{i}'}((q_{T},q_{i}^{b}),\tau ^{k}_{i}) ~\text {and}~ \delta _{\mathcal {S}_{i}'}((q_{T},q_{i}^{c}),\tau ^{k}_{\text {other}}) \end{aligned}$$
(15)

are defined. Since \([q_{T}]' \subseteq [q_{T}]\) and \(\delta _{\mathcal {S}_{i}'} \subseteq \delta _{\mathcal {S}_{i}'} \cup \delta _{\mathcal {S}_{i}''}\), then

$$\begin{aligned} \delta _{\mathcal {S}_{i}' \cup \mathcal {S}_{i}''}((q_{T},q_{i}^{b}),\tau ^{k}_{i}) ~\text {and}~ \delta _{\mathcal {S}_{i}' \cup \mathcal {S}_{i}''}((q_{T},q_{i}^{c}),\tau ^{k}_{\text {other}}) \end{aligned}$$
(16)

are defined and, therefore,

$$\begin{aligned} \tau ^{k}_{i} \in \varGamma ({[q_{T}]}) \implies \tau ^{k}_{\text {other}} \in \varGamma ({[q_{T}]}) \end{aligned}$$
(17)

The same steps can be followed for \([q_{T}]'' = [q_{T}] \cap Q_{\mathcal {S}_{i}''}\) with \([q_{T}] \cap Q_{\mathcal {S}_{i}''} \ne \emptyset \). \(\square \)

1.2 Proof of Section 3.3

To prove Theorem 1 we use the Lemmas 1 and 2; the Propositions 8 and 9; and the Theorem 3 introduced by Pena et al. (2009).

Lemma 1

\(\big |\big |_{i \in \textbf{M}} [\mathcal {R}_{i}]\) is nonblocking if and only if \(\big |\big |_{(i,j) \in \textbf{I}^{\prime }} [\mathcal {H}_{ij}({\textbf{I}^{\prime }})]\) is nonblocking, for \(\textbf{I}^{\prime } = \textbf{M} \times \{1\}\).

Proof (proof of Lemma 1)

[proof of Lemma 1] Let \([\mathcal {R}] = \big |\big |_{i \in \textbf{M}} [\mathcal {R}_{i}]\) and \([\mathcal {H}({{\textbf{I}'}})] = \big |\big |_{(i,j) \in \textbf{I}^{\prime }} [\mathcal {H}_{ij}({{\textbf{I}'}})]\). By definition of \(\Vert \) we have that for all \(([q_{T}^{a}]_{1}, \ldots , [q_{T}^{a}]_{m}), ([q_{T}^{b}]_{1}, \ldots , [q_{T}^{b}]_{m}) \in Q_{[\mathcal {R}]}\) and \(\tau ^{k}_{i} \in \varSigma _{[\mathcal {R}]}\) it always holds that

$$\begin{aligned} \begin{array}{c} \delta _{[\mathcal {R}]}(([q_{T}^{a}]_{1}, \ldots , [q_{T}^{a}]_{m}), \tau ^{k}_{i}) = ([q_{T}^{b}]_{1}, \ldots , [q_{T}^{b}]_{m}) \\ \iff \\ \delta _{[\mathcal {R}_{i'}]}([q_{T}^{a}]_{i'}, \tau ^{k}_{i}) = [q_{T}^{b}]_{i'}\ \text {for all}\ i' \in \textbf{M} \end{array} \end{aligned}$$
(18)

Note that, by the construction of \([\mathcal {R}_{i}]\) and \([\mathcal {H}_{ij}({\textbf{I}^{\prime }})]\), it holds that

  1. a)

    for \(i' = i\):

    $$\begin{aligned} \begin{aligned} \delta _{[\mathcal {S}_{i}]}([q_{T}^{a}]_{i},\tau ^{k}_{i}) = \delta _{[\mathcal {R}_{i}]}([q_{T}^{a}]_{i}, \tau ^{k}_{i}) = \delta _{[\mathcal {H}_{ij}({\textbf{I}^{\prime }})]}([q_{T}^{a}]_{i}, \tau ^{k}_{ij}) \end{aligned} \end{aligned}$$
    (19)
  2. b)

    for \(i' \ne i\):

    $$\begin{aligned} \begin{aligned} \delta _{[\mathcal {S}_{i'}]}([q_{T}^{a}]_{i'},\tau ^{k}_{\text {other}}) = \delta _{[\mathcal {R}_{i'}]}([q_{T}^{a}]_{i'}, \tau ^{k}_{i}) = \delta _{[\mathcal {H}_{i'j'}({\textbf{I}^{\prime }})]}([q_{T}^{a}]_{i'}, \tau ^{k}_{ij}) \end{aligned} \end{aligned}$$
    (20)

Therefore, from Eqs. 18, 19 and 20 it follows that

$$\begin{aligned} \delta _{[\mathcal {H}({\textbf{I}^{\prime }})]}(([q_{T}^{a}]_{1}, \ldots , [q_{T}^{a}]_{m}), \tau ^{k}_{ij}) =([q_{T}^{b}]_{1}, \ldots , [q_{T}^{b}]_{m}) \end{aligned}$$

Analogously, the same idea can be applied for the transitions from \([\mathcal {H}({\textbf{I}^{\prime }})]\). In addition, by construction we know that \(Q_{[\mathcal {S}_{i}]} = Q_{[\mathcal {R}_{i}]} = Q_{[\mathcal {H}_{ij}({\textbf{I}^{\prime }})]}\) and \(Q^{m}_{[\mathcal {S}_{i}]} = Q^{m}_{[\mathcal {R}_{i}]} = Q^{m}_{[\mathcal {H}_{ij}({\textbf{I}^{\prime }})]}\), for all \(i \in \textbf{M}\) and \((i,j) \in \textbf{I}^{\prime }\). Hence, \(Q_{[\mathcal {R}]} = Q_{[\mathcal {H}({\textbf{I}^{\prime }})]}\) and \(Q^{m}_{[\mathcal {R}]} = Q^{m}_{[\mathcal {H}({\textbf{I}^{\prime }})]}\). Therefore, \([\mathcal {R}]\) is nonblocking if and only if \([\mathcal {H}({{\textbf{I}'}})]\) is nonblocking. \(\square \)

Lemma 2

For a set of nonblocking, partially reciprocal and T-observer template supervisors \(\{\mathcal {S}_{1}, \ldots , \mathcal {S}_{m}\}\), \(\textbf{I}^{\prime } = \textbf{M} \times \{ 1\}\) and \({\textbf{I}} \subseteq \textbf{M} \times \mathbb {Z}^+\) let

  1. i)

    \(\{\mathcal {S}_{ij} \mid (i,j) \in {\textbf{I}}\}\) be a set of supervisors, where \(\mathcal {S}_{ij}\) is an instance of \(\mathcal {S}_{i}\);

  2. ii)

    \(\{\mathcal {H}_{ij}({\textbf{I}^{\prime }}) \mid (i,j) \in \textbf{I}^{\prime }\}\) and \(\{\mathcal {H}_{ij}({{\textbf{I}}}) \mid (i,j) \in {\textbf{I}}\}\), where \(\mathcal {H}_{ij}({\textbf{I}^{\prime }})\) and \(\mathcal {H}_{ij}({{\textbf{I}}})\) are as in Definition 9.

If \(\big |\big |_{(i,j) \in \textbf{I}^{\prime }} ([\mathcal {H}_{ij}({{\textbf{I}'}})])\) is nonblocking and \(\textbf{I}^{\prime } \subseteq {\textbf{I}}\), then \(\big |\big |_{(i,j) \in {\textbf{I}}} ([\mathcal {H}_{ij}({\textbf{I}})])\) is nonblocking.

Proof (proof of Lemma 2)

[proof of Lemma 2] The proof of this lemma is an induction on the number of elements in \(\textbf{I}\), starting with m.

Basis: If \(|{\textbf{I}}| = m\), then \({\textbf{I}} = \textbf{I}^{\prime }\) since \(|\textbf{I}^{\prime }| = m\) and \(\textbf{I}^{\prime } \subseteq \textbf{I}\). Thus, by assumption \(\big |\big |_{(i,j) \in \textbf{I}^{\prime }} [\mathcal {H}_{ij}({\textbf{I}^{\prime }})] \) is nonblocking.

Induction: Let \({\textbf{I}''} \subseteq \textbf{M} \times \mathbb {Z}^+\), such that \(|{\textbf{I}''}| \ge m\) and \(\textbf{I}^{\prime } \subseteq {\textbf{I}''}\). For the inductive hypothesis we assume that \(\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]\) is nonblocking. So, we have to show that \(\big |\big |_{(i,j) \in {\textbf{I}}} [\mathcal {H}_{ij}({{\textbf{I}}})]\) is nonblocking for \({\textbf{I}} = \textbf{I}^{\prime \prime } \cup \{ (x,y) \}\), where \((x,y) \in \textbf{M} \times \mathbb {Z}^+\) and \((x,y) \notin \textbf{I}^{\prime \prime }\).

For this, first we will demonstrate that a) if \(\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]\) is nonblocking, then \(\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({\textbf{I}})]\) is nonblocking. Next, we will show that b) the nonblocking of \(\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}\) \(({{\textbf{I}}})]\) implies the nonblocking of \((\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]) ~\Vert ~ [\mathcal {H}_{xy}({{\textbf{I}}})]\), which is equivalent to \(\big |\big |_{(i,j) \in {\textbf{I}}} [\mathcal {H}_{ij}({{\textbf{I}}})]\).

proof of a): to demonstrate a), we show that \(\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]\) and \(\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]\) are essentially the same, except for a transition with \(\tau ^{k}_{xy}\) where a transition with some event \(\tau ^{k}_{ij}\) is possible, for \(i = x\).

Let \((i,j) \in \textbf{I}^{\prime \prime }\). Since \([\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]\) and \([\mathcal {H}_{ij}({{\textbf{I}}})]\) are built from \(\mathcal {S}_{ij}\) and, consequently, from \(\mathcal {S}_{i}\), we know that

$$\begin{aligned} Q_{[\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]} = Q_{[\mathcal {H}_{ij}({{\textbf{I}}})]} = Q_{[\mathcal {S}_{i}]}\ \text {and}\ Q^{m}_{[\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]} = Q^{m}_{[\mathcal {H}_{ij}({\textbf{I}})]} = Q^{m}_{[\mathcal {S}_{i}]} \end{aligned}$$

In addition, we know that for all \([q_{T}^{a}]_{i} \in Q_{[\mathcal {S}_{i}]}\) it holds that

$$\begin{aligned} \begin{array}{c} \delta _{[\mathcal {S}_{i}]}([q_{T}^{a}]_{i}, \tau ^{k}_{i}) \!=\! [q_{T}^{b}]_{i} \iff \delta _{[\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]}([q_{T}^{a}]_{i}, \tau ^{k}_{ij}) \!=\! [q_{T}^{b}]_{i} ~\text {and}~ \delta _{[\mathcal {H}_{ij}({{\textbf{I}}})]}([q_{T}^{a}]_{i}, \tau ^{k}_{ij}) \!=\! [q_{T}^{b}]_{i} \end{array} \end{aligned}$$
(21)

and

$$\begin{aligned} \begin{array}{c} \delta _{[\mathcal {S}_{i}]}([q_{T}^{a}]_{i}, \tau ^{k}_{\text {other}}) = [q_{T}^{b}]_{i}\\ \iff \\ \delta _{[\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]}([q_{T}^{a}]_{i}], \tau ^{k}_{i''j''}) = [q_{T}^{a}]_{i}\\ ~\text {and}~ \\ \delta _{[\mathcal {H}_{ij}({{\textbf{I}}})]}([q_{T}^{a}]_{i}, \tau ^{k}_{i'j'}) = [q_{T}^{b}]_{i} \end{array} \end{aligned}$$
(22)

for all \((i'',j'') \in \textbf{I}^{\prime \prime }\), \((i',j') \in {\textbf{I}}\), with \((i'',j'') \ne (i,j)\) and \((i',j') \ne (i,j)\), \(\tau ^{k}_{i''} \in \varSigma ^{\text {task}}_{i''}\) and \(\tau ^{k}_{i'} \in \varSigma ^{\text {task}}_{i'}\).

Therefore, from definition of synchronous product \(\Vert \), Eqs. 21 and 22 we can conclude that

$$\begin{aligned} \begin{array}{c} Q_{\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]} = Q_{\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]} \\ ~\text {and}~\\ Q^{m}_{ \big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]} = Q^{m}_{\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]} \end{array} \end{aligned}$$
(23)

and

$$\begin{aligned} \begin{array}{c} \delta _{\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]}(([q_{T}^{a}]_{1}, \ldots , [q_{T}^{a}]_{m}), \tau ^{k}_{ij}) = ([q_{T}^{b}]_{1}, \ldots , [q_{T}^{b}]_{m}) \\ \iff \\ \delta _{\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]}(([q_{T}^{a}]_{1}, \ldots , [q_{T}^{a}]_{m}), \tau ^{k}_{ij}) = ([q_{T}^{b}]_{1}, \ldots , [q_{T}^{b}]_{m}), \end{array} \end{aligned}$$
(24)

and

$$\begin{aligned} \begin{array}{c} \delta _{\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]}(([q_{T}^{a}]_{1}, \ldots , [q_{T}^{a}]_{m}), \tau ^{k}_{i''j''}) = ([q_{T}^{b}]_{1}, \ldots , [q_{T}^{b}]_{m}) \\ \iff \\ \delta _{{\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]}}(([q_{T}^{a}]_{1}, \ldots , [q_{T}^{a}]_{m}), \tau ^{k}_{i''j''}) = ([q_{T}^{b}]_{1}, \ldots , [q_{T}^{b}]_{m}), \end{array} \end{aligned}$$
(25)

for all \((i'',j'') \in \textbf{I}^{\prime \prime }\), with \((i'',j'') \ne (i,j)\) and \(\tau ^{k}_{i''} \in \varSigma ^{\text {task}}_{i''}\), and

$$\begin{aligned} \begin{array}{c} \delta _{\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]}(([q_{T}^{a}]_{1}, \ldots , [q_{T}^{a}]_{m}), \tau ^{k}_{i'j'}) = ([q_{T}^{b}]_{1}, \ldots , [q_{T}^{b}]_{m})\\ \iff \\ \delta _{{\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]}}(([q_{T}^{a}]_{1}, \ldots , [q_{T}^{a}]_{m}), \tau ^{k}_{xy}) = ([q_{T}^{b}]_{1}, \ldots , [q_{T}^{b}]_{m}), \end{array} \end{aligned}$$
(26)

for all \((i',j') \in \textbf{I}^{\prime \prime }\), with \(i'=x\) and \(\tau ^{k}_{i'} \in \varSigma ^{\text {task}}_{i'}\).

Thus, from Eqs. 23, 24, 25, and 26 we can conclude that the nonblocking of \(\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({\textbf{I}^{\prime \prime }})]\) results in nonblocking of \(\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]\).

proof of b): we demonstrate b) in two parts. First, we shown that b1) all transitions enabled in \(\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]\) are still enabled in \((\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]) \Vert [\mathcal {H}_{xy}({{\textbf{I}}})]\) and b2) whenever a transition with \(\tau ^{k}_{ij}\), with \(i = x\) is possible, then a transition with \(\tau ^{k}_{xy}\) is also possible in \((\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]) \Vert [\mathcal {H}_{xy}({{\textbf{I}}})]\).

proof of part b1): Assuming that \(\delta _{\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]}(([q_{T}^{a}] , \ldots , [q_{T}^{a}]), \tau ^{k}_{i''j''})!\) for some \((i'',j'') \in \textbf{I}^{\prime \prime }\), then we have that

$$\begin{aligned} \delta _{[\mathcal {H}_{ij}({{\textbf{I}}})]}([q_{T}^{a}]_{i}, \tau ^{k}_{i''j''})!, ~\text {for all}~ (i,j) \in \textbf{I}^{\prime \prime } \end{aligned}$$
(27)

So, from partially reciprocal property and Eq. 27 it follows that

$$\begin{aligned} \delta _{[\mathcal {H}_{ij}({{\textbf{I}}})]}([q_{T}^{a}]_{i}, \tau ^{k}_{i'j'})!, ~\text {for all}~ (i',j') \in \textbf{I}^{\prime \prime }, \text {such that}~ (i',j') \ne (i,j) ~\text {and}~ \tau ^{k}_{i'} \in \varSigma ^{\text {task}}_{i'} \end{aligned}$$
(28)

Thus, due to fact that \([\mathcal {H}_{xy}({{\textbf{I}}})]\) is isomorphic to all \([\mathcal {H}_{ij}({{\textbf{I}}})]\) with \(i = x\) and Eq. 28, we know that

$$\begin{aligned} \delta _{[\mathcal {H}_{xy}({{\textbf{I}}})]}([q_{T}^{a}]_{i}, \tau ^{k}_{i'j'})!, ~\text {for all}~ (i',j') \in \textbf{I}^{\prime \prime }, \text {such that}~ (i',j') \ne (x,y) ~\text {and}~ \tau ^{k}_{i'} \in \varSigma ^{\text {task}}_{i'} \end{aligned}$$
(29)

As \((i'', j'') \ne (x,y)\), then from \(\delta _{\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]}(([q_{T}^{a}] , \ldots , [q_{T}^{a}]), \tau ^{k}_{i''j''})!\) and Eq. 29 it follows that

$$\delta _{(\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]) ~\Vert ~ [\mathcal {H}_{xy}({{\textbf{I}}})]}(([q_{T}^{a}], \ldots , [q_{T}^{a}]), \tau ^{k}_{i''j''})!$$

for \((i'',j'') \in \textbf{I}^{\prime \prime }\).

proof of b2): Assuming that \(\delta _{\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]}(([q_{T}^{a}] , \ldots , [q_{T}^{a}]) , \tau ^{k}_{i''j''})\)! for some \(i'' = x\), we know that

$$\begin{aligned} \delta _{[\mathcal {H}_{ij}({{\textbf{I}}})]}([q_{T}^{a}]_{i}, \tau ^{k}_{i''j''})!, ~\text {for all}~ (i,j) \in \textbf{I}^{\prime \prime } \end{aligned}$$
(30)

and from partially reciprocal property and Eq. 30 it follows that

$$\begin{aligned} \delta _{[\mathcal {H}_{ij}({{\textbf{I}}})]}([q_{T}^{a}]_{i}, \tau ^{k}_{i'j'})!, ~\text {for all}~ (i',j') \in {\textbf{I}}, \text {such that}~ (i',j') \ne (i,j) ~\text {and}~ \tau ^{k}_{i'} \in \varSigma ^{\text {task}}_{i'} \end{aligned}$$
(31)

Furthermore, for \(i = i'' = x\) and \(j = j''\) we have by isomorphism between \([\mathcal {H}_{i''j''}({{\textbf{I}}})]\) and \([\mathcal {H}_{xy}({{\textbf{I}}})]\) that

$$\delta _{[\mathcal {H}_{i''j''}({{\textbf{I}}})] }([q_{T}^{a}]_{i}, \tau ^{k}_{i''j''})!$$

implies that

$$\begin{aligned} \delta _{[\mathcal {H}_{xy}({{\textbf{I}}})]}([q_{T}^{a}]_{i}, \tau ^{k}_{xy})! \end{aligned}$$
(32)

Therefore, from Eqs. 31 and 32 we can conclude that if \(\delta _{\big |\big |_{(i,j) \in \textbf{I}^{\prime \prime }} [\mathcal {H}_{ij}({{\textbf{I}}})]}(([q_{T}^{a}]_{1}, \ldots , [q_{T}^{a}]_{m}),\) \(\tau ^{k}_{i''j''})!\) for some \((i'', j'') \in \textbf{I}^{\prime \prime }\) such that \(i'' = x\), then \(\delta _{\big |\big |_{(i,j) \in {\textbf{I}}} [\mathcal {H}_{ij}({{\textbf{I}}})]}(([q_{T}^{a}]_{1}, \ldots , [q_{T}^{a}]_{m}), \tau ^{k}_{xy})!\).

\(\square \)

Proposition 8

Let \(\mathcal {S}_{i} \sqsubseteq K_{i}\) be a nonblocking automaton and \(\mathcal {P}_{i}: \varSigma _{\mathcal {S}_{i}}^* \rightarrow \varSigma _{T_{i}}^*\) the natural projection of strings in \(\varSigma _{\mathcal {S}_{i}}^*\) to strings in \(\varSigma _{T_{i}}^*\). If \(\mathcal {S}_{i}\) is T-observer, then \(\mathcal {P}_{i}(L_m(\mathcal {S}_{i}))\) has the observer property.

Proof (proof of Proposition 8)

[proof of Proposition 8] Let \(s \in \overline{L_m(\mathcal {S}_{i})}\) and \(t \in \varSigma _{T_{i}}^*\), such that \(\mathcal {P}_{i}(s)t \in \mathcal {P}_{i}(L_m(\mathcal {S}_{i}))\). As \(\mathcal {S}_{i}\) is nonblocking, then \(L(\mathcal {S}_{i}) = \overline{L_m(\mathcal {S}_{i})}\) and, therefore, \(s \in L(\mathcal {S}_{i})\). Thus, \(s \in L(\mathcal {S}_{i})\) implies that for some \([q_{T}] \in [Q_{\mathcal {S}_{i}}]\)

$$\begin{aligned} \delta _{\mathcal {S}_{i}}((q_{T}^{0}, q_{i}^{0}),s) \in [q_{T}] \end{aligned}$$
(33)

Note that from Definition 3 it holds that \(\mathcal {P}_{i}(L(\mathcal {S}_{i})) \subseteq L([\mathcal {S}_{i}])\) and \(\mathcal {P}_{i}(L_m(\mathcal {S}_{i})) \subseteq L_m([\mathcal {S}_{i}])\), where \([\mathcal {S}_{i}]\) is the quotient automaton of \(\mathcal {S}_{i}\). Hence, \(\mathcal {P}_{i}(s)t \in \mathcal {P}_{i}(L_m(\mathcal {S}_{i}))\) implies that \(\mathcal {P}_{i}(s)t \in L_m([\mathcal {S}_{i}])\). So, from Eq. 33 and \(\mathcal {P}_{i}(s)t \in L_m([\mathcal {S}_{i}])\) we can conclude that

$$\begin{aligned} \begin{array}{c} \delta _{[\mathcal {S}_{i}]}([q_{T}^{0}], \mathcal {P}_{i}(s)) = [q_{T}] \\ \text {and} \\ \delta _{[\mathcal {S}_{i}]}([q_{T}], t) \in Q^{m}_{[\mathcal {S}_{i}]} \end{array} \end{aligned}$$
(34)

So, from the fact that \(\mathcal {S}_{i}\) is T-observer and \(\delta _{[\mathcal {S}_{i}]}([q_{T}], t) \in Q^{m}_{[\mathcal {S}_{i}]}\) it follows that there is \(s' \in \varSigma _{\mathcal {S}_{i}}^*\) such that \(ss' \in L_m(\mathcal {S}_{i})\) and \(\mathcal {P}_{i}(s') = t\). Hence, \(\mathcal {P}_{i}(L_m(\mathcal {S}_{i}))\) has the observer property. \(\square \)

Proposition 9

Let \(\mathcal {S}_{i} \sqsubseteq K_{i}\) be a nonblocking automaton, \([\mathcal {S}_{i}]\) as in Definition 3 and \(\mathcal {P}_{i}: \varSigma _{\mathcal {S}_{i}}^* \rightarrow \varSigma _{T_{i}}^*\) the natural projection of strings in \(\varSigma _{\mathcal {S}_{i}}^*\) to strings in \(\varSigma _{T_{i}}^*\). If \(\mathcal {S}_{i}\) is T-observer, then \(\mathcal {P}_{i}(L(\mathcal {S}_{i})) = L([\mathcal {S}_{i}])\) and \(\mathcal {P}_{i}(L_m(\mathcal {S}_{i})) = L_m([\mathcal {S}_{i}])\).

Proof (proof of Proposition 9)

[proof of Proposition 9]

It follows from Definition 3 that \(\mathcal {P}_{i}(L(\mathcal {S}_{i})) \subseteq L([\mathcal {S}_{i}])\) and \(\mathcal {P}_{i}(L_m(\mathcal {S}_{i})) \subseteq L_m([\mathcal {S}_{i}])\). So, it remains to show that \(\mathcal {P}_{i}(L(\mathcal {S}_{i})) \supseteq L([\mathcal {S}_{i}])\) and \(\mathcal {P}_{i}(L_m(\mathcal {S}_{i})) \supseteq L_m([\mathcal {S}_{i}])\).

First, we will show that \(\mathcal {P}_{i}(L(\mathcal {S}_{i})) \supseteq L([\mathcal {S}_{i}])\). The proof is by induction. Let \(t \in L([\mathcal {S}_{i}])\).

Basis: Let \(t = \varepsilon \). Then, \(\delta _{[\mathcal {S}_{i}]}([q_{T}^{0}], \varepsilon ) = [q_{T}^{0}]\). By the fact that \(\mathcal {S}_{i}\) is a trim automaton, we have that for each state \((q_{T}^{0},q_{i}) \in [q_{T}^{0}]\) there is a string \(u \in (\varSigma ^{\text {loc}}_{i})^*\) such that \(\delta _{\mathcal {S}_{i}}((q_{T}^{0},q_{i}^{0}),u) = (q_{T}^{0},q_{i})\). As \(\mathcal {P}_{i}(u) = \varepsilon \) and \(u \in L(\mathcal {S}_{i})\), then \(\varepsilon \in \mathcal {P}_{i}(L(\mathcal {S}_{i}))\).

Induction: Assume that \(t \tau \in L([\mathcal {S}_{i}])\) and there is a string \(s \in L(\mathcal {S}_{i})\) such that \(\mathcal {P}_{i}(s) = t\).

We need to show that there exists \(s' \in \varSigma _{\mathcal {S}_{i}}^*\) such that \(\mathcal {P}_{i}(s') = \tau \) and \(ss' \in L(\mathcal {S}_{i})\).

Note that by assumption we have that \(\delta _{[\mathcal {S}_{i}]}([q_{T}^{0}],t) = [q_{T}]\) and \(\delta _{\mathcal {S}_{i}}((q_{T}^{0},q_{i}^{0}),s) \in [q_{T}]\) for some \([q_{T}] \in [Q_{\mathcal {S}_{i}}]\). The fact that \(\mathcal {S}_{i}\) is trim and T-observer, when combined with Proposition 1, imply that for each \(\tau \in \varGamma ({[q_{T}]})\) and \((q_{T},q_{i}) \in [q_{T}]\) there is a string \(u \in (\varSigma ^{\text {loc}}_{i})^*\) such that \(\delta _{\mathcal {S}_{i}}((q_{T},q_{i}), u\tau )!\). Therefore, there exists \(s' = u\tau \) such that \(\mathcal {P}_{i}(s') = \tau \) and \(ss' \in L(\mathcal {S}_{i})\).

Now, we will show that \(\mathcal {P}_{i}(L_m(\mathcal {S}_{i})) \supseteq L_m([\mathcal {S}_{i}])\).

Let \(t \in L_m([\mathcal {S}_{i}])\), so \(\delta _{[\mathcal {S}_{i}]}([q_{T}^{0}], t) \in Q^{m}_{[\mathcal {S}_{i}]}\). As \(\mathcal {S}_{i}\) is trim, we know that for each state \((q_{T}^{0},q_{i}) \in [q_{T}^{0}]\) there is a string \(s \in L(\mathcal {S}_{i})\) such that \(s \in (\varSigma ^{\text {loc}}_{i})^*\) and \(\delta _{\mathcal {S}_{i}}((q_{T}^{0},q_{i}^{0}), s) \in (q_{T}^{0},q_{i})\). Note that, \(s \in (\varSigma ^{\text {loc}}_{i})^*\) implies that \(\mathcal {P}_{i}(s) = \varepsilon \). So, from the fact that \(\mathcal {S}_{i}\) is T-observer we know that there is \(s' \in \varSigma _{\mathcal {S}_{i}}^*\) such that \(ss' \in L_m(\mathcal {S}_{i})\) and \(\mathcal {P}_{i}(s') = t\). Since \(\mathcal {P}_{i}(s) = \varepsilon \) and \(ss' \in L_m(\mathcal {S}_{i})\), then we have that \(\mathcal {P}_{i}(ss') = t\) and \(t \in \mathcal {P}_{i}(L_m(\mathcal {S}_{i}))\). \(\square \)

When \(\mathcal {S}_{i}\) is nonblocking and T-observer we can say that \([\mathcal {S}_{i}]\) is an “OP-abstraction" (Pena et al. 2009).

Theorem 3

[Pena et al. (2009)] Let \(\{\mathcal {S}_{ij} \mid (i,j) \in \textbf{I}\}\) be set of nonblocking supervisors and \(\{\mathcal {H}_{ij}({{\textbf{I}}}) \mid (i,j) \in \textbf{I}\}\), where \(\textbf{I} \subseteq \textbf{M} \times \mathbb {Z}^+\) and \(\mathcal {H}_{ij}({{\textbf{I}}})\) is as in Definition 9. If \([\mathcal {H}_{ij}({\textbf{I}})]\), \((i,j) \in \textbf{I}\), are OP-abstractions then \(\big |\big |_{(i,j) \in \textbf{I}} [\mathcal {H}_{ij}({\textbf{I}})]\) is nonblocking if and only if \(\big |\big |_{(i,j) \in \textbf{I}} \mathcal {H}_{ij}({\textbf{I}})\) is nonblocking.

Proof (Proof of Theorem 1)

[Proof of Theorem 1] Let \(\mathcal {H}_{ij}({\textbf{I}^{\prime }})\) and \(\mathcal {H}_{ij}({{\textbf{I}}})\) as in Definition 9, where \(\textbf{I}^{\prime } \subseteq {\textbf{I}} \subseteq \textbf{M} \times \mathbb {Z}^+\) such that \(\textbf{I}^{\prime } = \textbf{M} \times \{1\}\). By assumption that \([\mathcal {R}_{1}] \Vert \ldots \Vert [\mathcal {R}_{m}]\) is nonblocking in conjunction with Lemma 1, we have that \(\big |\big |_{(i,j) \in \textbf{I}^{\prime }} [\mathcal {H}_{ij}({\textbf{I}^{\prime }})]\) is nonblocking. Then, it follows that \(\big |\big |_{(i,j) \in {\textbf{I}} } [\mathcal {H}_{ij}({{\textbf{I}}})]\) is nonblocking by item a) and Lemma 2. Furthermore, as all \(\mathcal {S}_{i}\) are T-observer then all \([\mathcal {S}_{i}]\) are OP-abstractions by Proposition 8 and, consequently, all \([\mathcal {H}_{ij}({{\textbf{I}}})]\) are also OP-abstractions. So, because \(\big |\big |_{(i,j) \in {\textbf{I}} } [\mathcal {H}_{ij}({{\textbf{I}}})]\) is nonblocking it follows that \(\big |\big |_{(i,j) \in \textbf{I}} \mathcal {H}_{ij}({\textbf{I}})\) is nonblocking, by Theorem 3. Therefore, the fact of \(\big |\big |_{(i,j) \in \textbf{I}} \mathcal {H}_{ij}({\textbf{I}})\) is nonblocking implies that \(\{\mathcal {S}_{ij} \mid (i,j) \in \textbf{I}\}\) is a solution to Problem 1 by Proposition 7. \(\square \)

1.3 Proof of Section 4

Proof (proof of Theorem 2)

[proof of Theorem 2]

  • (IF): By the assumption that \(\mathcal {S}_{i}\) is T-observer and trim we know from Proposition 1 that for each \([q_{T}]\), \((q_{T},q_{i}) \in [q_{T}]\) and \(\tau \in \varGamma ({[q_{T}]})\) there is a string \(u' \in \varSigma _{\mathcal {S}_{i}}^{*}\) such that \(\delta _{\mathcal {S}_{i}}((q_{T},q_{i}), u')!\) and \(\mathcal {P}_{i}(u') = \tau \). Therefore, from Definition 8 it follows that \([q_{T}] = SCo([q_{T}],{\varGamma ({[q_{T}]})})\). Furthermore, if \([q_{T}] \cap Q^{m}_{\mathcal {S}_{i}} \ne \emptyset \), then from Proposition 1 it follows that for each \((q_{T},q_{i}) \in [q_{T}]\) there is a string \(u' \in \varSigma _{\mathcal {S}_{i}}^*\) such that \(\delta _{\mathcal {S}_{i}}((q_{T},q_{i}), u') \in Q^{m}_{\mathcal {S}_{i}} \) and \(\mathcal {P}_{i}(u') = \varepsilon \). Hence, \(Co([q_{T}]) = [q_{T}]\).

  • (ONLY IF): By the assumption that for all \([q_{T}] \in [Q_{\mathcal {S}_{i}}]\) whose \(\varGamma ({[q_{T}]}) \ne \emptyset \) implies \([q_{T}] = SCo([q_{T}],{\varGamma ({[q_{T}]})})\), we have that

    1. 1)

      for each \((q_{T},q_{i}) \in [q_{T}]\) and \(\tau \in \varGamma ({[q_{T}]})\) there is a string \(u \in (\varSigma ^{\text {loc}}_{i})^*\) such that \(\delta _{\mathcal {S}_{i}}((q_{T},q_{i}), u \tau )!\).

    Now, if \([q_{T}] \cap Q^{m}_{\mathcal {S}_{i}} \ne \emptyset \) is true and \([q_{T}] = Co([q_{T}])\), then we know that

    1. 2)

      for each \((q_{T},q_{i}) \in [q_{T}]\) there exists \(u' \in (\varSigma ^{\text {loc}}_{i})^*\) such that \(\delta _{\mathcal {S}_{i}}((q_{T},q_{i}), u') \in Q^{m}_{\mathcal {S}_{i}}\).

    Therefore, from 1), 2) and Proposition 1 we can conclude that \(\mathcal {S}_{i}\) is T-observer.

\(\square \)

1.4 Proof of Appendix A

Proof (proof of Proposition 3)

[proof of Proposition 3] This proposition is demonstrated by contradiction, that is, we suppose that there is a macrostate \([q_{T}] \in [Q_{\mathcal {S}_{i}}]\) from which Eq. 1 is false and we must arrive at a contradiction.

Let \([q_{T}] \in [Q_{\mathcal {S}_{i}}]\) such that \(\tau ^{k}_{i} \in \varGamma ({[q_{T}]})\) and \(\tau ^{k}_{\text {other}} \notin \varGamma ({[q_{T}]})\). Note that, by the termination of Algorithm 3 and its lines 1, 3 and 4 it follows that \(\tau ^{k}_{i} \notin \varGamma ({[q_{T}]})\), which contradicts our hypothesis that \(\tau ^{k}_{i} \in \varGamma ({[q_{T}]})\). Therefore, \(\tau ^{k}_{i} \notin \varGamma ({[q_{T}]})\) and Eq. 1 is true. \(\square \)

Proof (proof of Proposition 4)

[proof of Proposition 4] Let \(\S = \bigcup _{\mathcal {S}_{i}' \in \varLambda ({K_{i}})} \mathcal {S}_{i}'\).

\((\sqsubseteq )\):

Given that \(\mathcal {S}_{i}\) a partially reciprocal subautomaton of \(K_{i}\), then \(\mathcal {S}_{i} \in \varLambda ({K_{i}})\). Hence, \(\mathcal {S}_{i} \sqsubseteq \S \).

\((\sqsupseteq )\):

First we will show that \(Q_{\S } \subseteq Q_{\mathcal {S}_{i}}\), \(Q^{m}_{\S } \subseteq Q^{m}_{\mathcal {S}_{i}}\) and \(\varSigma _{\S } = \varSigma _{\mathcal {S}_{i}}\), then we show that \(\delta _{\S } \subseteq \delta _{\mathcal {S}_{i}}\). Given that § is a subautomaton of \(K_{i}\), we know that \(Q_{\S } \subseteq Q_{K_{i}}\), \(Q^{m}_{\S } \subseteq Q^{m}_{K_{i}}\) and \(\varSigma _{\S } = \varSigma _{K_{i}}\). As in line 4 of Algorithm 3 only transitions with \(\tau ^{k}_{i} \in \varSigma ^{\text {task}}_{i}\) are removed from \(K_{i}\), we have that \(Q_{\mathcal {S}_{i}} = Q_{K_{i}}\), \(Q^{m}_{\mathcal {S}_{i}} = Q^{m}_{K_{i}}\) and \(\varSigma _{\mathcal {S}_{i}} = \varSigma _{K_{i}}\). Hence, \(Q_{\S } \subseteq Q_{\mathcal {S}_{i}}\), \(Q^{m}_{\S } \subseteq Q^{m}_{\mathcal {S}_{i}}\) and \(\varSigma _{\S } = \varSigma _{\mathcal {S}_{i}}\). Now we suppose a transition \(\delta _{\S }((q_{T}, q_{i}), \sigma ) = (q_{T}^{\prime }, q_{i}^{\prime })\) in §and show that there is \(\delta _{\mathcal {S}_{i}}((q_{T}, q_{i}), \sigma ) = (q_{T}^{\prime }, q_{i}^{'})\) in \(\mathcal {S}_{i}\).

a):

Let assume that \(\sigma \in \varSigma ^{\text {loc}}_{i}\) or \(\sigma \in \varSigma ^{\text {task}}_{\text {other}}\). As \(\delta _{\S }((q_{T}, q_{i}), \sigma ) = (q_{T}^{\prime }, q_{i}^{\prime })\) if and only if \(\delta _{K_{i}}((q_{T}, q_{i}), \sigma ) = (q_{T}^{\prime }, q_{i}^{\prime })\), and in line 4 of Algorithm 3 only transitions with events \(\tau ^{k}_{i} \in \varSigma ^{\text {task}}_{i}\) are removed from \(K_{i}\), then \(\delta _{\mathcal {S}_{i}}((q_{T}, q_{i}), \sigma ) = (q_{T}^{\prime }, q_{i}^{\prime })\) is defined in \(\mathcal {S}_{i}\).

b):

Now, let us assume that \(\sigma \in \varSigma ^{\text {task}}_{i}\) and \(\sigma = \tau ^{k}_{i}\). Given that § is partially reciprocal and \((q_{T}, q_{i}) \in [q_{T}]\), we know that there exists \((q_{T}, q_{i}^{\prime \prime }) \in [q_{T}]\) such that \(\delta _{\S }((q_{T}, q_{i}^{\prime \prime }), \tau ^{k}_{\text {other}})!\). As \(\delta _{\S }((q_{T}, q_{i}), \tau ^{k}_{i}) = (q_{T}^{\prime }, q_{i}^{\prime })\) and \(\delta _{\S }((q_{T}, q_{i}^{\prime \prime }), \tau ^{k}_{\text {other}})!\) implies that \(\delta _{K_{i}}((q_{T}, q_{i}), \tau ^{k}_{i}) = (q_{T}^{\prime }, q_{i}^{\prime })\) and \(\delta _{K_{i}}((q_{T}, q_{i}^{\prime \prime }), \tau ^{k}_{\text {other}})!\). Thus, by line 3 the events \(\tau ^{k}_{i}\) is not added to \(\varDelta \) and, therefore, \(\delta _{\mathcal {S}_{i}}((q_{T}, q_{i}), \tau ^{k}_{i}) = (q_{T}^{\prime }, q_{i}^{\prime })\) is defined in \(\mathcal {S}_{i}\).

Thus, by items a) and b) above \(\delta _{\S } \subseteq \delta _{\mathcal {S}_{i}}\). So, from \(Q_{\S } \subseteq Q_{\mathcal {S}_{i}}\), \(Q^{m}_{\S } \subseteq Q^{m}_{\mathcal {S}_{i}}\), \(\varSigma _{\S } = \varSigma _{\mathcal {S}_{i}}\), and \(\delta _{\S } \subseteq \delta _{\mathcal {S}_{i}}\), we can conclude that \(\mathcal {S}_{i} \sqsupseteq \S \).

Consequently, \(\mathcal {S}_{i} = \S \). \(\square \)

1.5 Proof of Appendix D

Proof (proof of Proposition 5)

[proof of Proposition 5] This proposition is demonstrated by contradiction, that is, we start from \([q_{T}] \in [Q_{\mathcal {S}_{i}}]\) where Eq. 2 is false and we must arrive at a contradiction.

  1. case 1

    : First, let \([q_{T}]\) such that \(\varGamma ({[q_{T}]}) = \emptyset \), \([q_{T}] \cap Q^{m}_{\mathcal {S}_{i}} \ne \emptyset \) and \([q_{T}] \ne Co([q_{T}])\). Note that, by the termination of Algorithm 6 and its lines 21 and 22 it follows that \([q_{T}] = Co([q_{T}])\), which contradicts the hypothesis that \([q_{T}] \ne Co([q_{T}])\). Hence, \([q_{T}] = Co([q_{T}])\) and Eq. 2 is true.

  2. case 2

    : Now, let \([q_{T}]\) such that \(\varGamma ({[q_{T}]}) \ne \emptyset \), \([q_{T}] \ne SCo([q_{T}],{\varGamma ({[q_{T}]})})\) and \([q_{T}] \cap Q^{m}_{\mathcal {S}_{i}} = \emptyset \). Remark that, by the termination of Algorithm 6 and its lines 24-27 we have that \([q_{T}] = SCo([q_{T}],{\varGamma ({[q_{T}]})})\), which contradicts the hypothesis that \([q_{T}] \ne SCo([q_{T}],{\varGamma ({[q_{T}]})})\). Therefore, \([q_{T}] = SCo([q_{T}],{\varGamma ({[q_{T}]})})\) and Eq. 2 is true.

  3. case 3

    : Finally, let \([q_{T}]\) such that \(\varGamma ({[q_{T}]}) \ne \emptyset \), \([q_{T}] \ne SCo([q_{T}],{\varGamma ({[q_{T}]})})\), \([q_{T}] \cap Q^{m}_{\mathcal {S}_{i}} \ne \emptyset \) and \([q_{T}] \ne Co([q_{T}])\). Note that, by lines 29-34 from Algorithm 6 it follows that \([q_{T}] = SCo([q_{T}],{\varGamma ({[q_{T}]})}) \cap Co([q_{T}])\). Thus, at the termination of Algorithm 6 it is true that all states in \([q_{T}]\) are both strongly coreachable w.r.t. \(\varGamma ({[q_{T}]})\) and local coreachable. Hence, \([q_{T}] = SCo([q_{T}],{\varGamma ({[q_{T}]})})\) and \([q_{T}] = Co([q_{T}])\) and Eq. 2 is true.

Therefore, by cases 1, 2, and 3 it follows that Eq. 2 is true for all \([q_{T}] \in [Q_{\mathcal {S}_{i}}]\). \(\square \)

1.6 Proof of Appendix E

To prove Proposition 6 we use Proposition 10.

Proposition 10

Let \([\mathcal {R}_{i}]\) and T the global task. If \(\delta _{[\mathcal {R}_{i}]}([q_{T}],\tau ^{k}_{x})!\), then \(\delta _{T}(q_{T},\tau ^{k})!\) and \(\delta _{[\mathcal {R}_{i}]}([q_{T}],\tau ^{k}_{x}) = [\delta _{T}(q_{T},\tau ^{k})]\).

Proof (proof of Proposition 10)

[proof of Proposition 10] Let \([q_{T}] \in Q_{[\mathcal {R}_{i}]}\) and \(\tau ^{k}_{x} \in \varSigma _{[\mathcal {R}_{i}]}\) such that \(\delta _{[\mathcal {R}_{i}]}([q_{T}],\tau ^{k}_{x})!\). Since \(\mathcal {R}_{i}\) is built from \(\mathcal {S}_{i}\), we have that

$$\begin{aligned} \begin{array}{ccc} \delta _{[\mathcal {R}_{i}]}([q_{T}],\tau ^{k}_{i})! &{} \iff &{} \delta _{[\mathcal {S}_{i}]}([q_{T}],\tau ^{k}_{i})! \\ &{} \text {and} &{} \\ \delta _{[\mathcal {R}_{i}]}([q_{T}],\tau ^{k}_{i'})! &{} \iff &{}\delta _{[\mathcal {S}_{i}]}([q_{T}],\tau ^{k}_{\text {other}})! \end{array} \end{aligned}$$
(35)

and

$$\begin{aligned} \begin{array}{c} \delta _{[\mathcal {R}_{i}]}([q_{T}],\tau ^{k}_{i}) = \delta _{[\mathcal {S}_{i}]}([q_{T}],\tau ^{k}_{i}) \\ \text {and} \\ \delta _{[\mathcal {R}_{i}]}([q_{T}],\tau ^{k}_{i'}) = \delta _{[\mathcal {S}_{i}]}([q_{T}],\tau ^{k}_{\text {other}}) \end{array} \end{aligned}$$
(36)

Besides, as mentioned in Section 3 it holds that

$$\begin{aligned} \begin{array}{c} \delta _{[\mathcal {S}_{i}]}([q_{T}],\tau ^{k}_{i}) = [\delta _{T_{i}}(q_{T},\tau ^{k}_{i})] \\ \text {and} \\ \delta _{[\mathcal {S}_{i}]}([q_{T}],\tau ^{k}_{\text {other}}) = [\delta _{T_{i}}(q_{T},\tau ^{k}_{\text {other}})] \end{array} \end{aligned}$$
(37)

So, from Definition 1 it follows that

$$\begin{aligned} \begin{array}{ccc} \delta _{T_{i}}(q_{T},\tau ^{k}_{i})! &{} \implies &{} \delta _{T}(q_{T},\tau ^{k})! \\ &{} \text {and} &{} \\ \delta _{T_{i}}(q_{T},\tau ^{k}_{\text {other}})! &{} \implies &{}\delta _{T}(q_{T},\tau ^{k})! \end{array} \end{aligned}$$
(38)

and

$$\begin{aligned} \delta _{T_{i}}(q_{T},\tau ^{k}_{i}) = \delta _{T_{i}}(q_{T},\tau ^{k}_{\text {other}}) = \delta _{T}(q_{T},\tau ^{k}) \end{aligned}$$
(39)

Therefore, from Eqs. 35 and 38 we can conclude that

$$\begin{aligned} \delta _{[\mathcal {R}_{i}]}([q_{T}],\tau ^{k}_{x})! \implies \delta _{T}(q_{T},\tau ^{k})! \end{aligned}$$
(40)

and from Eqs. 36, 37 and 39 it follows that

$$\begin{aligned} \delta _{[\mathcal {R}_{i}]}([q_{T}],\tau ^{k}_{x}) = [\delta _{T}(q_{T},\tau ^{k})] \end{aligned}$$
(41)

\(\square \)

Proof (proof of Proposition 6)

[proof of Proposition 6] Note that, to demonstrate that \(|Q_{[\mathcal {R}]}| \le |Q_{T}|\) it is sufficient to show that for all \(t \in L([\mathcal {R}])\) and for any \(i \in \textbf{M}\) it holds that \(\delta _{[\mathcal {R}_{i}]}([q_{T}^{0}],t) = [q_{T}]_{i}\). We use induction proof for this. Let \(t \in L([\mathcal {R}])\).

Basis: Consider that \(t = \varepsilon \). Note that, by construction, we have that \([q_{T}^{0}]\) is the initial state of all \([\mathcal {R}_{i}]\), with \(i \in \textbf{M}\). Thus, it holds that \(\delta _{[\mathcal {R}_{i}]}([q_{T}^{0}], \varepsilon ) = [q_{T}^{0}]\) for all \([\mathcal {R}_{i}]\).

Induction: Assume that \(t\tau ^{k}_{i'} \in L([\mathcal {R}])\) and for any \(i \in \textbf{M}\) it holds that \(\delta _{[\mathcal {R}_{i}]}([q_{T}^{0}],t) = [q_{T}]_{i}\). Note that, by assumption we know that \(\delta _{[\mathcal {R}]}(([q_{T}^{0}], \ldots , [q_{T}^{0}]), t) = ([q_{T}]_{1}, \ldots , [q_{T}]_{m})\) and \(\delta _{[\mathcal {R}]}(([q_{T}]_{1}, \ldots , [q_{T}]_{m}), \tau ^{k}_{i'})!\).

So, from the fact that \(\varSigma _{[\mathcal {R}]} = \varSigma _{[\mathcal {R}_{1}]} = \ldots = \varSigma _{[\mathcal {R}_{m}]}\) and \(\delta _{[\mathcal {R}]}(([q_{T}]_{1}, \ldots , [q_{T}]_{m}), \tau ^{k}_{i'})!\) we have that

$$\begin{aligned} \delta _{[\mathcal {R}_{i}]}([q_{T}]_{i}, \tau ^{k}_{i'})!, ~\text {for all}~ i \in \textbf{M} \end{aligned}$$
(42)

So, from Proposition 10 and Eq. 42 it follows that

$$\begin{aligned} \begin{array}{l} \delta _{[\mathcal {R}_{i}]}([q_{T}]_{i}, \tau ^{k}_{i'}) = [\delta _{T}(q_{T}, \tau ^{k})]_i, ~\text {for all}~ i \in \textbf{M} \end{array} \end{aligned}$$

\(\square \)

1.7 Proof of Appendix F

Proof (proof of Proposition 7)

[proof of Proposition 7] As the refined supervisors \(\mathcal {H}_{ij}\) only share task events, that is, \(\bigcap _{ij \in \textbf{I}} \varSigma _{\mathcal {H}_{ij}} = \varSigma ^{\text {task}}\), then by the definition of \(\Vert \) it follows that:

  1. (i)

    A task event \(\tau ^{k}_{ij} \in \varSigma ^{\text {task}}\) is enabled in \(\mathcal {H}\) iff all \(\mathcal {H}_{i'j'}\) enable \(\tau ^{k}_{i'j'}\), for \(i'j' \in \textbf{I}\). This means that, \(\mathcal {S}_{ij}\) and \(A_{ij}\) enable \(\tau ^{k}_{ij}\) and all \(\mathcal {S}_{i'j'}\), with \(i'j' \ne ij\), enable \(\tau ^{k}_{\text {other}}\), as \(\tau ^{k}_{\text {other}} \in \varSigma _{\mathcal {S}_{i'j'}}\);

  2. (ii)

    A local event \(\sigma _{ij}\) is enabled in \(\mathcal {H}\) whenever \(\mathcal {H}_{ij}\) enables it, consequently, \(\mathcal {S}_{ij}\) and \(A_{ij}\) also enabled it, since \(\sigma _{ij} \not \in \varSigma _{\mathcal {H}_{i'j'}}\) and \(\sigma _{ij} \not \in \varSigma _{\mathcal {S}_{i'j'}}\), for \(i'j' \ne ij\).

Therefore, we can say that \(\mathcal {H}\) is equivalent to the joint action of of the supervisors \(\{\mathcal {S}_{ij} \mid (i,j) \in {\textbf{I}}\}\). When \(\mathcal {H}\) is nonblocking, that is, \(L(\mathcal {H}) = \overline{L_m(\mathcal {H})}\), we know that all \(\mathcal {H}_{ij}\) can always reach a marked state and, consequently, \(\mathcal {S}_{ij}\) and \(A_{ij}\) also reach it. As a result, in this case, the global task T can be completed by the set of agents \(\mathcal {A}\) under control of the supervisors \(\{\mathcal {S}_{ij} \mid (i,j) \in {\textbf{I}}\}\) and, therefore, these supervisors are a solution to Problem 1. \(\square \)

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Rosa, M., Cury, J. & Baldissera, F. A modular synthesis approach for the coordination of multi-agent systems: the multiple team case. Discrete Event Dyn Syst 34, 163–198 (2024). https://doi.org/10.1007/s10626-024-00393-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10626-024-00393-3

Keywords

Navigation