Abstract 1 Introduction 2 Model and Verification Problems 3 Solving Synchro for Wait-Only Protocols 4 Synchro is ExpSpace-complete when the Target State is an Action State 5 Solving the Repeated Coverability problem for Wait-Only Protocols References

Wait-Only Broadcast Protocols Are Easier to Verify

Lucie Guillou ORCID IRIF, CNRS, Université Paris Cité, France Arnaud Sangnier ORCID DIBRIS, Università di Genova, Italy Nathalie Sznajder ORCID LIP6, CNRS, Sorbonne Université, Paris, France
Abstract

We study networks of processes that all execute the same finite-state protocol and communicate via broadcasts. We are interested in two problems with a parameterized number of processes: the synchronization problem which asks whether there is an execution which puts all processes on a given state; and the repeated coverability problem which asks if there is an infinite execution where a given transition is taken infinitely often. Since both problems are undecidable in the general case, we investigate those problems when the protocol is Wait-Only, i.e., it has no state from which a process can both broadcast and receive messages. We establish that the synchronization problem becomes Ackermann-complete, and the repeated coverability problem is in ExpSpace  and PSpace-hard.

Keywords and phrases:
Parameterised verification, Reachability, Broadcast
Copyright and License:
[Uncaptioned image] © Lucie Guillou, Arnaud Sangnier, and Nathalie Sznajder; licensed under Creative Commons License CC-BY 4.0
2012 ACM Subject Classification:
Theory of computation Formal languages and automata theory
Related Version:
Long Version: https://arxiv.org/abs/2505.01269 [12]
Funding:
ANR project PaVeDyS (ANR-23-CE48-0005).
Editors:
Paweł Gawrychowski, Filip Mazowiecki, and Michał Skrzypczak

1 Introduction

Distributed systems are at the core of modern computing, and are widely used in critical applications such as sensor networks, or distributed databases. These systems rely on protocols to enable communication, maintain coherence and coordination between the different processes. Because of their distributed nature, such protocols have proved to be error-prone. As a result, the formal verification of distributed systems has become an essential area of research. Formal verification of distributed systems presents unique challenges compared to fthe one of centralized systems. One of the most significant issue is the state explosion problem: the behavior of multiple processes that execute concurrently and exchange information often lead to state spaces that grow exponentially with the number of processes, making the analysis highly challenging. When the systems are parameterized, meaning designed to operate for an arbitrary number of processes, which is often the case in distributed protocols, classical techniques are not useful anymore. The difficulty shifts from state explosion to dealing with an infinite number of system configurations, which leads to undecidability in the general case [1]. Despite these challenges, verification becomes more tractable in certain restricted settings. For instance, in parameterized systems, the behavior of individual processes needs not always to be explicitly represented, which can mitigate state explosion. This has motivated researchers to focus on specific subclasses of systems or communication models where decidability can be achieved without sacrificing too much expressiveness. One such restriction involves protocols where processes are anonymous (i.e., without identities), and communicate via simple synchronous mechanisms, such as rendezvous [9], where two processes exchange a message synchronously. Several variants of this model have been studied, such as communication via a shared register containing some value from a finite set [7], or non-blocking rendezvous [10, 4], where a sender is not prevented from sending a message when no process is ready to receive it. In all these cases, the processes execute the same protocol, which is described by a finite automaton.

A more expressive model is broadcast protocols, introduced by Emerson and Namjoshi [6]. In these protocols, a process can send a broadcast message that is received simultaneously by all other processes (or by all neighboring processes in a network). Several key verification problems arise in this context, including the coverability problem, which asks whether a process can eventually reach a specific (bad) state starting from an initial configuration. Another important property is synchronization, which asks whether all processes can simultaneously reach a given state. Liveness properties, like determining whether infinite executions exist, ensure that certain behaviors occur indefinitely. While broadcast protocols allow more powerful communication than rendezvous protocols, this added expressiveness comes at the cost of increased verification complexity. Indeed, rendezvous communication can be simulated using broadcasts [8]. However, verification becomes significantly harder: while coverability and synchronization can be solved in polynomial time for rendezvous protocols [9], they become respectively Ackermann-complete [8, 20] and undecidable (we show it in this paper) for broadcast protocols. Liveness properties are also undecidable for broadcast protocols [8]. The challenge in verifying broadcast protocols can be understood through their relationship with Vector Addition Systems with States (VASS). Rendezvous-based protocols can be encoded in a VASS, where counters track the number of processes in each state. A rendezvous is simulated by decreasing the counters corresponding to the sender and receiver states and increasing the counters for their post-communication states. While using a VASS for protocols using rendezvous is certainly not the way to go due to the complexity gap between problems on VASS and the existing known polynomial time algorithms to solve verification problems, it is interesting to note that this encoding fails for broadcast protocols because a broadcast message must be received by all processes in a given state, requiring a bulk transfer of a counter value – something not expressible in classical VASS without adding powerful operations such as transfer arcs, which leads to an undecidable reachability problem [21]. However, in some cases, verification of broadcast protocols can become easier, complexity-wise. One example is the setting of Reconfigurable Broadcast Networks, in which communication between processes can be lossy [5]. Liveness properties become decidable in that case [5] and even polynomial time [2].

Another such case is given by a syntactic restriction known as Wait-Only protocols, introduced in [10] in the context of non-blocking rendezvous communication. In Wait-Only protocols, a process cannot both send and receive a message from the same state. From a practical perspective, Wait-Only protocols were proposed to model the non-blocking rendezvous semantics used in Java’s wait/notify/notifyAll synchronization mechanism and C’s wait/signal/broadcast operations with conditional variables, commonly found in multi-threaded programs. In both languages, threads can be awakened by the reception of a message. This naturally leads to distinguishing between action and waiting states: a sleeping thread cannot act on its own and can only be awakened by a signal. This restriction simplifies the possible behaviours of the system, potentially reducing the complexity of the verification. Actually, the coverability problem for Wait-Only broadcast protocols becomes PSpace-complete [11]. Indeed, when processes are in a state where they can receive broadcasts, they cannot send messages, meaning they will move together to the next state, reducing the need for precise counting. Moreover, when a process is in a broadcasting state, it remains there until it decides to send a message, simplifying execution reconstruction and enabling better verification algorithms. By leveraging these properties, we design algorithms for the synchronization problem and liveness properties, obtaining new decidability results for these challenging problems. Proofs omitted due to space contraints can be found in [12].

2 Model and Verification Problems

In this section, we provide the description of a model for networks with broadcast communication together with some associated verification problems we are interested in. First we introduce some useful mathematical notations. We use to represent the set of natural numbers, >0 to represent {0}, and for n,m with nm, we denote by [n,m] the set {n,n+1,,m}. For a finite set E and a natural n>0, the set En represents the n-dimensional vectors with values in E and for vEn and 1in, we use v(i) to represent the i-th value of v. Furthermore, for such a vector v, we denote by v its dimension n.

Networks of Processes using Broadcast Communication.

In the networks we consider, all the processes execute the same protocol, given by a finite state machine. The actions of this machine can either broadcast a message a to the other processes (denoted by !!a) or receive a message a (denoted by ?a). For a finite alphabet of messages Σ, we use the following notations: !!Σ=def{!!aaΣ}, ?Σ=def{?aaΣ} and 𝖮𝗉Σ=def!!Σ?Σ.

Definition 2.1.

A protocol P is a tuple (Q,Σ,qin,T) where Q is a finite set of states, Σ is a finite set of messages, qinQ is an initial state, and TQ×𝖮𝗉Σ×Q is a set of transitions.

For all qQ, we define R(q) as the set of messages that can be received from state q, given by {aΣqQ,(q,?a,q)T}. A protocol P=(Q,Σ,qin,T) is Wait-Only whenever for all qQ, either {qQ(q,α,q)T with α?Σ}=, or {qQ(q,α,q)T with α!!Σ}=. In a Wait-Only protocol, a state qQ such that {qQ(q,α,q)T with α?Σ} is called a waiting state. A state that is not a waiting state is an action state. We denote by QW the set of waiting states and by QA the set of action states (hence QA=QQW). Observe that if qinQW, then no process is ever able to broadcast messages, for this reason we will always assume that qinQA.

For n>0, an n-process configuration of a protocol P=(Q,Σ,qin,T) is a vector CQn where C(e) represents the state of the e-th process in C for 1en. The configuration is said to be initial whenever C(e)=qin for all 1en. The dimension C hence characterizes the number of processes in C. For a state qQ, we use C1(q) to represent the set of processes in state q, formally C1(q)={1eCC(e)=q}. For a subset A[1,C] of processes, we use C(A) to identify the set of states of processes in A, formally C(A)={C(e)eA}. We let 𝒞 [resp. ] be the set of all configurations [resp. initial configurations] of P.

We now define the broadcast network semantics associated to a protocol P=(Q,Σ,qin,T). For configurations C,C𝒞, transition t=(q,!!a,q)T and e[1,C], we write Ce,tC whenever C=C, C(e)=q, C(e)=q and, for all e[1,C]{e}, either a reception occurs, i.e., (C(e),?a,C(e))T, or the process cannot receive a, in which case (aR(C(e)) and C(e)=C(e)). Intuitively, the e-th process of C broadcasts a message a, which is received by all processes able to receive it, while the other processes remain in their current state. We note CC if there exists e[1,C] and tT such that Ce,tC and use [resp. +] for the reflexive and transitive [resp. transitive] closure of . A finite [resp. infinite] execution is a finite [resp. infinite] sequence of configurations ρ=C0C [resp. ρ=C0] such that C0 and Ci1Ci for all 0<i [resp. for all i>0]. Its length |ρ| is equal to +1 [resp. ω]. We write Λ [resp. Λω] for the set of finite [resp. infinite] executions. For an execution ρ=C0C1ΛΛω and 0i<|ρ|, we use ρi to denote Ci, the i-th configuration. We use #proc(ρ) to represent C0, the number of processes in the execution. For 0i<j<|ρ|, we define ρi,j=defρiρj. We also let ρi=defρiρi+1 and ρi=defρ0ρi. For e[1,#proc(ρ)], we denote by ρ(e) the sequence of states ρ0(e)ρ1(e).

Figure 1: Example of a Wait-Only protocol P.
Example 2.2.

Figure 1 illustrates an example of a Wait-Only protocol. The waiting states are q1,q2,q5,q6, and q7, with R(q5)={b,c}. Here is one of its execution with 3 processes:

(qin,qin,qin)1,(qin,!!d,q1)(q1,qin,qin)2,(qin,!!d,q1)(q1,q1,qin)3,(qin,!!a,qin)(q5,q2,qin)3,(qin,!!c,qin)(q3,q2,qin)3,(qin,!!b,q7)(q3,q3,q7).

Verification Problems.

We investigate two verification problems over broadcast networks: the synchronization problem (Synchro) and the repeated coverability problem (RepCover). Synchro asks, given a protocol P=(Q,Σ,qin,T) and a state qfQ, whether there exist C and C𝒞 such that CC, and C(e)=qf for all e[1,C]. RepCover asks, given a protocol P=(Q,Σ,qin,T) and a transition t=(q,!!a,q)T, whether there exist ρΛω and e[1,#proc(ρ)], such that for all i, there exists j>i verifying ρje,tρj+1.

Theorem 2.3.

Synchro and RepCover are undecidable.

We give the proof of the undecidability of Synchro in [12], while the undecidability of RepCover was established in [8, Theorem 5.1]. In the remainder of the paper, we show that by restricting to Wait-Only protocols, one can regain decidability.

 Remark 2.4.

Throughout the remainder of this paper, we will consider protocols without self-loop broadcast transitions of the form (q,!!a,q). Such transitions can be transformed into two transitions (q,!!a,pq), (pq,!!$,q) where pq is a new state added to the set of states and $ is a new message added to the alphabet. This transformation of the protocol is equivalent to the original one with respect to Synchro and RepCover.

Vector Addition System with States.

In the following, we will extensively rely on the model of Vector Addition Systems with States (VASS) which we introduce below. A VASS is a tuple 𝒱=(Loc,0,𝖷,Δ) where Loc is a finite set of locations, 0Loc is the initial location, 𝖷 is a finite set of natural variables, called counters, and ΔLoc×𝖷×Loc is a finite set of transitions. A configuration of 𝒱 is a pair (,v) in Loc×𝖷 where v provides a value for each counter. The initial configuration is (0,𝟎) where 𝟎(𝗑)=0 for all 𝗑𝖷. Given two configurations (,v), (,v) and a transition (,δ,)Δ, we write (,v) δ(,v) whenever v(𝗑)=v(𝗑)+δ(𝗑) for all counters 𝗑𝖷. We simply use (,v) (,v) when there exists (,δ,)Δ such that (,v) δ(,v). We denote   for the transitive and reflexive closure of  . An (infinite) execution (or run) of the VASS is a (infinite) sequence of configurations (0,v0),(1,v1),,(n,vn), starting with the initial configuration and such that (i,vi) (i+1,vi+1) for all 0i<n.

Reach, the well-known reachability problem for VASS, is defined as follows: given a VASS 𝒱=(Loc,0,𝖷,Δ) and a location fLoc, is there an execution from (0,𝟎) to (f,𝟎)?

Theorem 2.5 (Membership [18], Hardness [3, 17]).

Reach  is Ackermann-complete.

3 Solving Synchro for Wait-Only Protocols

To solve Synchro we show in this section that we can build a VASS that simulates the behavior of a broadcast network running a Wait-Only protocol. An intuitive way to proceed, inspired by the counting abstraction proposed for protocols communicating by pairwise rendez-vous communication [9], consists in having one counter per state of the protocol, that stores the number of processes that populate that state. Initially, the counter associated with the initial state can be incremented as much as one wants: this will determine the number of processes of the execution simulated in the VASS. Then, the simulation of broadcast messages (q,!!a,q) amounts to decrementing the counter associated to q and increment the counter associated to q. However, simulating receptions of the message (e.g. a transition (p,?a,p)), requires to empty the counter associated to p and transfer its value to the counter associated to q. This transfer operation is not something that can be done in VASS unless the model is extended with special transfer transitions, leading to an undecidable reachability problem [21]. To circumvent this problem, we rely on two properties of Wait-Only protocols: (1) processes that occur to be in the same waiting state follow the same path of reception in the protocol, and end in the same action state (we show how to take care of potential non-determinism in the next section) and (2) processes in an action state cannot be influenced by the behaviour of other processes as they cannot receive any message. Thanks to property (1), instead of precisely tracking the number of processes in each waiting state, we only count the processes in a “waiting region” – a connected component of waiting states populated by processes that will all reach the same action state simultaneously. The waiting region allows us also to monitor when the processes go out from a waiting region to an action state. We will explain later how we use property (2) to handle the transfer of values of counters within the VASS semantics, and thus simulating processes leaving a waiting region.

For the rest of this section, we fix P=(Q,Σ,qin,T) a Wait-Only protocol (with QW [resp. QA] the set of waiting states [resp. action states]) for which we assume w.l.o.g. the existence of an uncoverable state quQ verifying qqu and qqu for all (q,α,q)T and quqin. Furthermore, we consider a final waiting state qfQW. To ease the reading, we assume in this section that the final state qf is a waiting state, but our construction could be adapted to the case where qf is an action state. Moreover, we show in the next section that Synchro in this latter case is easier to solve.

3.1 Preliminary properties

We present here properties satisfied by Wait-Only protocols, which we will rely on for our construction. We first show with Lemma 3.1 that if, during an execution, two processes fulfill two conditions: (i) they are on the same waiting state qw, and (ii) the next action state they reach (not necessarily at the same time) is the same (namely qa), then one can build an execution where they both follow the same path between qw and qa. This is trivial for deterministic protocols (where for all qQ and α𝖮𝗉Σ, there is at most one transition of the form (q,α,q)T) and is also true for non-deterministic protocols.

For an execution ρΛΛω of P, an index 0j<|ρ|, a waiting state qQW and a process number e[1,#proc(ρ)] such that ρj(e)=q, we define na-index(ρ,j,e)=min{kjk|ρ| and ρk(e)QA}, i.e. the first moment after ρj where the process e reaches an action state (if such moment does not exist, it is set to |ρ|). We note na-state(ρ,j,e)=defρna-index(ρ,j,e)(e) the next action state for process e from ρj if na-index(ρ,j,e)|ρ| and otherwise we take the convention that na-state(ρ,j,e) is equal to qu, the uncoverable state of the protocol P. Finally, we let na(ρ,j,e)=(na-state(ρ,j,e),na-index(ρ,j,e)).

Lemma 3.1.

Let ρΛΛω be an execution of P. If there exist e1,e2[1,#proc(ρ)] and 0j<|ρ| such that (i) ρj(e1)=ρj(e2)QW, (ii) na(ρ,j,e1)=(q,j1), and (iii) na(ρ,j,e2)=(q,j2) with j1j2<|ρ|, then there exists an execution ρ of the form ρjρj+1ρj2ρj2+1 such that ρk(e1)=ρk(e2)=ρk(e1) for all j+1kj1, and ρk(e1)=ρk(e1) and ρk(e2)=q for all j1<kj2. In particular na(ρ,j,e1)=na(ρ,j,e2)=(q,j1).

Example 3.2.

Consider the protocol P in Figure 1 and the execution ρ of Example 2.2. We have ρ2(1)=ρ2(2)=q1 and na(ρ,2,1)=(q3,4) and na(ρ,2,2)=(q3,5). Applying Lemma 3.1, we build: ρ=(qin,qin,qin)(q1,qin,qin)(q1,q1,qin)(q5,q5,qin)(q3,q3,qin)(q3,q3,q7) where process 1 and process 2 follow the same path between q1 and q3. However, consider the following events from (q1,q1,qin): (q1,q1,qin)(q2,q5,qin)(q3,q6,q7)(q4,q4,q4), here we cannot apply the lemma as from q1, processes 1 and 2 reach two different next action states (q3 and q4).

The above lemma enables us to focus on a specific subset of executions for Synchro, which we refer to as well-formed. In these executions, at any moment, two processes in the same waiting state and with the same next action state, follow the same path of receptions. Formally, an execution ρ of a protocol P is well-formed iff for all 0i<|ρ|, for all e1,e2[1,#proc(ρ)] such that ρi(e1)=ρi(e2)QW and na-state(ρ,i,e1)=na-state(ρ,i,e2)=q, it holds that ρk(e1)=ρk(e2) for all ikna-index(ρ,i,e1). From Lemma 3.1, we immediately get:

Corollary 3.3.

There exists an execution ρ=C0Cn such that Cn(e)=qf for all e[1,#proc(ρ)] iff there exists a well-formed execution from C0 to Cn.

We finally provide a result which will allow us to bound the size of the VASS that we will build from the given Wait-Only protocol. Given an execution ρΛΛω of P, an index 0j<|ρ| and an action state qaQA, we define na-index-set(ρ,j,qa) as the set of indices where processes in a waiting state at ρj will reach qa, if it is their next action state: na-index-set(ρ,j,qa)=def{i there exists e[1,#proc(ρ)] s.t. ρj(e)QW and na(ρ,j,e)=(qa,i)}.

Lemma 3.4.

For all well-formed executions ρ, for all 0j<|ρ|, and for all qaQA, we have |na-index-set(ρ,j,qa)||QW|.

Proof.

If we have |na-index-set(ρ,j,qa)|>|QW|, by pigeon hole principle there exist e1,e2[1,#proc(ρ)] such that ρj(e1)=ρj(e2)QW and such that na(ρ,j,e1)=(qa,i1) and na(ρ,j,e2)=(qa,i2) with i1<i2. Consequently ρi1(e1)=qaQA and ρi1(e2)QW hence ρi1(e1)ρi1(e2), which contradicts the definition of well-formedness.

3.2 Building the VASS that Simulates a Broadcast Network

Summaries.

We present here the formal tool we use to represent processes in waiting states. We begin by introducing some notations. A print pr is a set of waiting states. Given a non empty subset of states A={q1,,qn}Q, we define a configuration AQn such that A(e)=qe for all e[1,n]. When A={q}, we write qQ1 instead of {q}. Conversely, given a configuration C, we define set(C)={qQC1(q)}. For two configurations CQn and CQm, we let CC be the configuration C′′Qn+m defined by: C′′(e)=C(e) if 1en and C′′(e)=C(en) if n+1em+n. A summary S is a tuple (pr,qa,k) such that prQW is a print, qaQA is an exit state, and k[1,|QW|+1] is an identifier. The label of S is lab(S)=(qa,k) and we denote its print by 𝐩𝐫𝐢𝐧𝐭(S). Finally, we define a special summary Done.

In our construction, each process in a waiting state is associated with a summary while processes in action states are handled by the counters of the VASS. Intuitively, a summary (pr,qa,k) represents a set of processes lying in the set prQW that will reach the same next action state qa simultaneously (this restriction is justified by Lemma 3.1). Since the set of waiting states pr evolve during the simulation, each summary must be uniquely identified. To achieve this, we use an integer k[1,|QW|+1]. Hence each summary is identified with the pair (qa,k). We do not need more than |QW|+1 different identifiers, because when a process enters a new summary (i.e it arrives in a waiting state qw from an action state), aiming for next action state qa, it either joins an existing summary with exit state qa, or create a new one. In the latter case, well-formed executions ensure that no existing summary S=(pr,qa,k) with exit state qa is such that qwpr. Otherwise two processes would be in the same state qw, aiming for the same action state, but at different moments, contradicting Lemma 3.1. Note that we need |QW|+1 different identifers, and not |QW| for technical reasons. Finally, the special summary Done is used to indicate when the processes described by a summary reach the exit action state.

We now describe how summaries evolve with the sequence of transitions. Let S=(pr,qa,k) and S=(pr,qa,k) be two summaries (with the same exit state and identifier) and t=(q,!!b,q)T such that there exists a configuration C verifying qpr1,tqC. We then write S𝑡S whenever set(C)=prQW. This represents the evolution of a summary upon reception of message b, when the processes all stay in waiting states, and no new process joins the “waiting region” of the given summary. We write St,+qS whenever qQW and set(C){q}=prQW. In that latter case, the process responsible for the transition t joins the “waiting region” represented by S. This typically occurs when the process’s next action state is qa, and it reaches qa simultaneously with the processes described by S. Finally, we use S𝑡Done whenever set(C)={qa}. This represents the evolution (and disappearance) of S when all the processes reach qa (they all reach it simultaneously).

Example 3.5.

Returning to the protocol P of Figure 1, consider the summary S0=({q1},q3,1). Observe that S0(qin,!!a,qin)({q2},q3,1) and S0(qin,!!a,qin)({q5},q3,1). However, by definition, we do not have S0(qin,!!a,qin)({q5,q2},q3,1). Indeed, processes summarized in S0 are forced to all go either on q2 or on q5 upon receiving a: thanks to Corollary 3.3, we consider only well-formed executions, where all processes summarized in S0 choose the same next state. Additionnaly, we have ({q2},q3,1)(qin,!!b,q7)Done and ({q1},q4,1)(qin,!!a,qin)({q5},q4,1)(qin,!!b,q7),+q7({q6,q7},q4,1)(qin,!!d,q1)Done. However, note that we do not have ({q2},q4,1)(qin,!!b,q7)Done, since the action state q3 reached from q2 upon receiving b is not the exit state q4.

Definition of the VASS.

We now explain how we use the summaries in the VASS simulating the executions in the network. First we say that a set SS of summaries is coherent if for all distinct pairs (pr1,q1,k1),(pr2,q5,k2)SS such that q1=q5, we have k1k2 and pr1pr2=. We denote by CoSets the set of coherent sets of summaries. For a set of summaries SS we let lab(SS)={lab(S)SSS}. Observe that, when SS is coherent, for a label (q,k)lab(SS), there is a unique SSS such that lab(S)=(q,k).

We define the VASS 𝒱P simulating the protocol P as follows: 𝒱P=(Loc,s0,𝖷,Δ), where Loc=CoSets{s0}{sf}, the set of counters is 𝖷={𝗑qqQA}{𝗑(q,k)qQA,k[1,|QW|+1]}, and the set of transitions Δ=Δ0(tTΔt)Δe, is defined as follows:

  • Δ0 contains exactly the following transitions:

    • (s0,δ0,s0) where δ0(𝗑qin)=1 and δ0(𝗑)=0 for all other counters;

    • (s0,0,) where 0 is the null vector (note that the empty set is coherent);

    • ({Sf},0,sf)Δ where Sf=({qf},qu,1);

    • (sf,δf,sf)Δ where δf(𝗑(qu,1))=1 and δf(𝗑)=0 for all other counters.

  • For t=(q,!!a,q)T, we have (SS,δ,SS)Δt iff one of the following conditions holds:

    1. a.

      qQA and SS={S1,,Sk}. Then, for all 1ik, there exists Si such that Si𝑡Si and SS={Si1ik}{Done}. Moreover, δ(𝗑q)=1, δ(𝗑q)=1 and δ(𝗑)=0 for all 𝗑𝖷{𝗑q,𝗑q}. Here we simply update the sets of states populated by processes in waiting states after the transition t. Some summaries may have disappeared from SS if the processes represented by this summary have reached their exit action state when receiving a. For now, we only modify the counters associated to the states q and q. Note that this is well-defined, since we assume in Remark 2.4 that there is no self-loop of the form (q,!!a,q).

    2. b.

      qQW, SS={S1,,Sk}, and there exists 1ik and Si such that Sit,+qSi. For all ji, there exists Sj such that Sj𝑡Sj. Then SS={Sj1jk}{Done}. Moreover, δ(𝗑q)=1, δ(𝗑lab(Si))=1 and δ(𝗑)=0 for all 𝗑𝖷{𝗑q,𝗑lab(Si)}. In that case, the process having performed the transition joins an existing summary Si. We have then modified accordingly the counters associated to q and to the appropriate summary.

    3. c.

      qQW and SS={S1,,Sk}. For all 1jk, there exists Sj such that Sj𝑡Sj. Then SS=({S1,,Sk}{Done}){({q},qa,k)} for some qaQA and k[1,|QW|+1] such that (qa,k)lab(SS). Moreover, δ(𝗑q)=1, δ(𝗑(qa,k))=1, and δ(𝗑)=0 for all 𝗑𝖷{𝗑q,𝗑(qa,k)}. This case happens when the process having sent the message a reaches a waiting state, and its expected next action pair (index and state) does not correspond to any existing summary. In that case, it joins a new summary, the counter associated to the state q is decremented and the counter of this new summary is incremented.

  • Finally, Δe allows to empty the counters associated to summaries that have disappeared from the set of locations. It is defined as the set of transitions (SS,δ,SS) such that: SS=SS and there exists (q,k)lab(SS) with δ(𝗑q)=+1 and δ(𝗑(q,k))=1 and for all other counters, δ(𝗑)=0.

Transitions from Δe allow the transfer of counter values from summaries that have disappeared to the counter of their exit action state. This transfer is not immediate, as it is done through iterative decrements and increments of counters. In particular, it is possible for the execution of the VASS to continue without the counter of a disappeared summary being fully transfered. The processes represented by the counter of a disappeared summary behave in the same way as processes in the exit action state that do not take any action. These counters can be emptied later, but always from a location from where no summary with the same label exists. This ensures that there is no ambiguity between processes in a waiting region and those on an action state that have not yet been transferred to the appropriate counter.

Figure 2: The structure of the VASS 𝒱.
Figure 3: One successor of location {({q2},q3,1),({q1},q3,2),({q1,q5},q4,1)} (left location) after the broadcast transition (qin,!!b,q7).
Figure 4: Three successors of location {({q2},q3,1)} (top left location) after the broadcast transition (qin,!!d,q1).
Example 3.6.

Figures 4, 4, and 4 illustrate the VASS 𝒱P built for the protocol P from Figure 1. Figure 4 shows its overall structure: any run reaching (sf,𝟎) starts by incrementing the counter of the initial state and ends by decrementing the counter of the summary (qf,qu,1). Here, qu is an artificial, unreachable state used to ensure that the counted processes must end in qf (since they cannot be in qu). Figure 4 illustrates how message receptions and summary creations are handled. The top-left location contains a single summary ({q2},q3,1), representing configurations where all processes on QW are in q2, all progressing to q3. After the broadcast (qin,!!d,q1), three behaviors may follow. In the first case (right), the sender creates a new summary ({q1},q4,1) (pink). In the second (diagonal), it creates another new summary ({q1},q3,2) (orange), indicating a different arrival time at q3. In the third (below), it joins an existing summary, and q1 is added to the print. Well-formed executions restrict the number of summaries with the same exit state, as there are at most |QW| distinct moments where processes can reach a given action state (Lemma 3.4). Figure 4 illustrates summary deletion. The transition (qin,!!b,q7) causes the sender to join the pink summary (bottom one), incrementing its counter. Processes in the green summary ({q2},q3,1) receive the message via (q2,?b,q3), reaching their exit state q3. This summary is deleted in the next location. From there, value of 𝗑(q3,1) is transferred to the counter 𝗑q3 with the loop transition. If it is not taken enough times, 𝗑(q3,1) may remain non-zero. This does not affect correctness: 𝗑(q3,1) will be decremented eventually from a state in which there is no summary labeled with (q3,1). Not decrementing soon enough only delay the moment the corresponding processes will move from the action state q3.

 Remark 3.7.

In the sequel of this paper, the size of 𝒱P will be of interest to us. Hence, observe that |Loc|=|CoSets|+32|QA|×(|QW|+1)×2|QW|+3 (as one summary is composed of a state in QA, one label in [1,|QW|+1] and one set of waiting states), and |𝖷|=|QA|+|QA|×(|QW|+1).

Soundness of the construction.

We show now that if there exists a run in the VASS 𝒱P from (s0,𝟎) to (sf,𝟎), then in the network built from P, there exist C and C𝒞 such that CC and C(e)=qf for all e[1,C].

We say that a configuration (,v) of 𝒱P is an S-configuration if =SS for some SSCoSets. The implementation of an S-configuration λ=(SS,v) is the set of network configurations λ𝒞 defined as follows: Cλ if and only if there exists a function f:[1,C]𝖷 such that |f1(𝗑)|=v(𝗑) for all 𝗑𝖷, and

  1. CondImpl1

    for all 𝗑q𝖷 with qQA, we have C(e)=q for all ef1(𝗑q),;

  2. CondImpl2

    for all 𝗑(q,k)𝖷, if there exists (pr,q,k)SS for some prQW, then C(e)pr{q} for all ef1(𝗑q,k);

  3. CondImpl3

    for all 𝗑(q,k)𝖷, if (q,k)lab(SS), then C(e)=q for all ef1(𝗑q,k).

In an implementation of λ, the processes populate states according to the values of the counters. All processes associated with a counter 𝗑q of an action state will populate this exact state (CondImpl1). However, processes associated with a counter 𝗑(q,k) of a summary do not necessarily populate waiting states. This occurs when the label (q,k) does not appear in SS while the associated counter remains strictly positive. Such a situation arises when a summary has been previously deleted, but its counter has not been emptied. Since all associated processes have already reached the exit action state, the processes associated to the corresponding counter have to populate this active state (CondImpl3). If the summary with label (q,k) is active (i.e. its label appears in SS), the processes associated with 𝗑(q,k) will be in the corresponding waiting region, or in the exit action state (CondImpl2). This may seem contradictory, as all processes are supposed to reach their exit state simultaneously. However, the processes already on the exit action state are “old” processes, that remained after a previous deletion of this summary (cf. CondImpl3). These processes will be allowed to send messages only when they are identified with the counter of the active state, meaning when the corresponding transition in Δe will be taken. The next lemma allows to build an execution of the protocol P from an execution of the VASS 𝒱P.

Lemma 3.8.

Let λ,λ be two S-configurations of 𝒱P and Cλ. If λ δλ in 𝒱P then there exists Cλ such that CC for P.

Sketch of Proof..

Assume λ=(SS,v) and λ=(SS,v). Then either (SS,δ,SS)Δe or (SS,δ,SS)Δt for some tT. In the first case, we show that if Cλ, then Cλ. Otherwise, let t=(q,!!a,q), there is a process e such that C(e)=q. The transition δ in the VASS makes all the summaries and counters evolve according to the reception of the message a. According to the different cases a, b or c, one can build a configuration Cλ such that CC.

Lemma 3.9.

If (s0,𝟎) (sf,𝟎) in 𝒱P, then there exist C and C𝒞 such that CC and C(e)=qf for all e[1,C].

Proof.

From the definition of 𝒱P, any run from (s0,𝟎) to (sf,𝟎) is of the form (s0,𝟎) (,vinit) ({Sf},vf) (sf,𝟎) where vinit(𝗑qin)=n for some n and vinit(𝗑)=0 for all 𝗑𝖷{𝗑qin}, whereas vf(𝗑(qu,1))=vinit(𝗑qin)=n and vf(𝗑)=0 for all 𝗑𝖷{𝗑(qu,1)}. Define C as the initial configuration in with n processes (i.e. C=n). Trivially, C(,vinit) and with Lemma 3.8 and a simple induction, we get that there exists C({Sf},vf) such that CC. Observe that by definition of vf, and since C({Sf},vf), there exists f:[1,n]𝖷 such that f1(𝗑(qu,1))=[1,n]. Using CondImpl2, we have C(e){qf,qu} for all e[1,n] with n=C. Since qu is unreachable by construction, we deduce that C(e)=qf for all e[1,C].

Completeness of the construction.

Let us first introduce some new definitions. Given a well-formed execution ρΛΛω, two indices 0i<j<|ρ| and an action state qaQA, we define Eqa,jρ,i, the set of processes in waiting states in ρi, and whose next action state is qa, reached at ρj. Formally, Eqa,jρ,i={e[1,#proc(ρ)]ρi(e)QW and na(ρ,i,e)=(qa,j)}. Furthermore, an S-configuration λ=(SS,v) is a representative of the configuration ρi in ρ iff the following conditions are respected:

  1. CondRepr1

    for all qQA, v(𝗑q)=|ρi1(q)|, and

for all qaQA, there is an injective function rqa:na-index-set(ρ,i,qa)[1,|QW|+1] s.t.:

  1. CondRepr2

    SS={(ρi(Eqa,jρ,i),qa,rqa(j))qaQA,jna-index-set(ρ,i,qa)}

  2. CondRepr3

    for all qaQA, we have v(𝗑(qa,rqa(j)))=|Eqa,jρ,i| for all
    jna-index-set(ρ,i,qa) and v(𝗑(qa,k))=0 for all krqa(na-index-set(ρ,i,qa)).

In a representative of the configuration ρi, the counters faithfully count the number of processes on active states (CondRepr1), and on waiting regions. The set Eqa,jρ,i gathers exactly the set of processes that populate a same waiting region in a representative of ρi in ρ: they all reach the same next action state qa at the same instant j. The set na-index-set(ρ,i,qa) being bounded by |QW| (cf. Lemma 3.4), we can associate with each of these indices a unique identifier, given by the injective function rqa. We use a spare identifier for technical reasons, to handle more easily situations when |QW| summaries exist in the location of the VASS, and a new summary is created while one of the previous summaries is deleted at the next step. Then, CondRepr2 and CondRepr3 require that the counters corresponding to the summaries and the summaries themselves reflect faithfully the situation in the configuration ρi with respect to ρ. Observe that such a representative is tightly linked to the simulated execution, since we need to know the future behavior of the different processes to determine the different summaries. Finally, if we let 𝐫𝐞𝐩𝐫(ρ,i) be the set of all S-configurations that are representatives of ρi in ρ, we establish the following result before proving the main lemma of this subsection (Lemma 3.11).

Lemma 3.10.

Let ρ be a well-formed execution, and 0i<|ρ|. For all λi𝐫𝐞𝐩𝐫(ρ,i), there exists λi+1𝐫𝐞𝐩𝐫(ρ,i+1) such that λi λi+1 in 𝒱P.

Sketch of Proof..

From an S-configuration λi=(SSi,vi) in 𝐫𝐞𝐩𝐫(ρ,i), we can compute the effect on SSi of the transition t=(q,!!a,q) taken in ρ to go from ρi to ρi+1, and find a matching transition (SSi,δ,SSi+1)Δt (according to whether q is a waiting state or not, and in the latter case, whether it joins an existing summary or a new one, depending of the execution ρ). We then obtain a new configuration λ=(SSi+1,v) such that λi δλ. Note that λ is not necessarily in 𝐫𝐞𝐩𝐫(ρ,i+1): if some summaries have been deleted between λi and λ, the transition (SSi,δ,SSi+1) in 𝒱P has not updated the corresponding counters. Hence we need to apply transitions from Δe to empty counters corresponding to deleted summaries and accordingly increase corresponding counters on matching action states to obtain λi+1=(SSi+1,vi+1) in 𝐫𝐞𝐩𝐫(ρ,i+1) .

Lemma 3.11.

If there exist C, and C𝒞 such that CC in P and C(e)=qf for all e[1,C], then (s0,𝟎) (sf,𝟎) in 𝒱P.

Proof.

Thanks to Corollary 3.3, we know there exists a well-formed execution ρ from C to C. Let K=C and n=|ρ|1. First, consider the sequence (s0,𝟎) (s0,v0) (,v0) where v0(𝗑qin)=K and for all other counters 𝗑, v0(𝗑)=0. Observe that, since qinQA, (,v0)𝐫𝐞𝐩𝐫(ρ,0). By applying inductively Lemma 3.10, we get that (,v0) (SS1,v1)  (SSn,vn) with (SSn,vn)𝐫𝐞𝐩𝐫(ρ,n). By definition, every time that na-state(ρ,i,e)=qu for some process e, then na-index(ρ,i,e)=n+1, hence there will always be at most one summary with exit state qu. So in the execution we build, every time that some summary (pr,qu,k)SSi, we chose k=1. We then have vn(𝗑qu,1)=K and vn(𝗑)=0 for all other 𝗑𝖷{𝗑qu,1}. Hence, by construction of 𝒱P, we have (SSn,vn) (sf,vn) (sf,𝟎).

Using Lemma 3.10 and Lemma 3.11 and the fact that the reachability problem for VASS is decidable (see Theorem 2.5) we get the main theorem of this section.

Theorem 3.12.

Synchro restricted to Wait-Only protocols is decidable.

3.3 Lower Bound for Synchro in Wait-Only Protocols

Figure 5: Protocol P associated to a VASS 𝒱. The dashed edge (f,?start,err) will only be considered in Section 4.2.

In this subsection we reduce the reachability problem for VASS to Synchro. We fix a VASS 𝒱=(Loc,0,𝖷,Δ) and a final location fLoc. W.l.o.g., we suppose that any transition in Δ either increments or decrements of 1 exactly one counter. Hence, for a transition (,δ,)Loc, we might describe δ by giving only δ(𝗑) for the only 𝗑𝖷 such that δ(𝗑)0.

We explain how to build a protocol P𝒱 that simulates 𝒱: it is depicted in Figure 5 in which we don’t consider the dashed edge. The states zero and {unit𝗑𝗑𝖷} represent the evolution of the different counters of the VASS while the blue box P𝒱 describes the evolution of 𝒱 with respect to its locations. Formally, P𝒱 consists of a set of states Q𝒱=Loc{} and a set of transitions T𝒱={(,?inc𝗑,)(,δ,)Δ and δ(𝗑)=1}{(,?dec𝗑,)(,δ,)Δ and δ(𝗑)=1}{(,?m,)m{inc𝗑,dec𝗑𝗑𝖷}}. Some transitions of T𝒱 are depicted in Figure 6.

Figure 6: Part of P𝒱 that simulates respectively the transition (,δ,)Δ with δ(𝗑)=1 at the left, and (′′,δ,′′′)Δ with δ(𝗑)=1 at the right.

We then obtain the following theorem.

Theorem 3.13.

Synchro with Wait-Only protocols is Ackermann-complete.

Sketch of Proof..

The upper bound follows from Theorem 3.12 and Theorem 2.5. For the lower bound, we give the ideas that prove that the reduction described above is correct. In particular, there exist C0 and Cf𝒞 such that C0Cf in P𝒱 and Cf(e)=qf for all e[1,Cf] if and only if (0,𝟎) (f,𝟎) in 𝒱.

Assume that (0,𝟎) (f,𝟎) in 𝒱, and let K be the maximum value of 𝗑𝖷v(𝗑) reached during the run. We choose C0 such that C0=K+1. The execution proceeds as follows: all processes except one (the leader) broadcast a dummy message $. The leader then broadcasts start and reaches 0, while the others move to zero. These simulate the counter values, and the leader simulates the VASS by moving through the states of P𝒱. The value of counter 𝗑 is represented by the number of processes in unit𝗑. To simulate an increment of 𝗑 from (i,vi) to (i+1,vi+1), a process in zero sends inc𝗑, which the leader receives to transition to i+1. If the current configuration correctly represents (i,vi), the new one faithfully represents (i+1,vi+1). At the end of the simulation, the leader reaches f, and the other processes remain in zero. They then broadcast end, and the leader (now in f) broadcasts verif, gathering all processes in qf.

To prove the other direction, we must show that the processes cannot cheat in simulating the VASS. First, note that reaching qf requires exactly one broadcast of verif, a second would send the original sender to err. This ensures that only one process (the leader) simulates the VASS by moving through P𝒱. Second, counter updates must follow the VASS transitions: any unauthorized update would cause the leader to receive an unexpected message and transition to the losing state . Finally, when the leader reaches f, all other processes must be in zero. If not, problems occur during the final steps: one process (the helper) broadcasts end, which sends the leader to f. Then, all remaining processes must reach z-end before the unique verif broadcast. If a process in unit𝗑 moves to z-end, it must broadcast dec𝗑, which is received by other processes in z-end, sending them, including the helper, to err. As a result, the helper misses verif and cannot reach qf, preventing a successful execution. Thus, the simulation must end with the leader in f and all others in zero.

4 Synchro is ExpSpace-complete when the Target State is an Action State

Upper bound.

We show that Synchro when qfQA can be reduced to the mutual reachability problem on VASS, defined as follows: given a VASS 𝒱=(Loc,0,𝖷,Δ) and a location f, do there exist a run from (0,𝟎) to (f,𝟎) and one from (f,𝟎) to (0,𝟎). This problem is shown to be in ExpSpace [16]. More precisely, Leroux establishes the ExpSpace-membership and provides a bound on the lengths of the runs, for the mutual reachability problem in VAS (Vector Addition Systems). However, by applying the VASS-to-VAS transformation presented in [14], we get the following result.

Theorem 4.1 ([16] Corollary 10.6, Transformation of [14]).

Given a VASS 𝒱=(Loc,0,𝖷,Δ), if there are two runs (0,𝟎) (f,𝟎) and (f,𝟎) (0,𝟎), then there are two runs (0,𝟎) (f,𝟎) and (f,𝟎) (0,𝟎) whose lengths are bounded by 17(|𝖷|+3)2x15(|𝖷|+3)|𝖷|+5 where x=(1+2(|Loc|+1)2)2.

Given a Wait-Only protocol P=(Q,Σ,qin,T) and a target state qfQA, we explain how to transform it into a VASS where mutual reachability is equivalent to Synchro. We build the VASS 𝒱P=(Loc,𝖷,s0,Δ) as described in Section 3.2, with some modifications. The first two modifications simply encode the fact that the target state is not a waiting sate anymore, while the third one ensures the mutual reachability.

  • We add a state sf and the transition ({Sf},𝟎,sf) is replaced by two transitions: (,δ,sf) and (sf,δ,sf). Here, δ(𝗑qf)=1, δ(𝗑qf)=1, and for all other counters 𝗑, δ(𝗑)=δ(𝗑)=0. It prevents the reachability of (sf,𝟎) to be trivial with the run (s0,𝟎) (,𝟎) (sf,𝟎).

  • The transition (sf,δf,sf) is replaced by (sf,δf,sf), where δf(𝗑qf)=1 and δf(𝗑)=0 for all other counters 𝗑.

  • We add a transition (sf,𝟎,s0) to allow the resetting of 𝒱P to s0 after reaching sf.

Lemma 4.2.

There exists C and C𝒞 such that CC and, for all e[1,C], C(e)=qf if and only if there are two runs (s0,𝟎) (sf,𝟎) and (sf,𝟎) (s0,𝟎) in 𝒱P.

Sketch of Proof..

Assume that there exist C and C𝒞 such that CC and, for all e[1,C], C(e)=qf. Since the main body of 𝒱P is the same as in Section 3.2 we can, like in Lemma 3.11, build a run of 𝒱P from (s0,𝟎) to (sf,𝟎). By construction of 𝒱P, (sf,𝟎) (s0,𝟎).Assume now that (s0,𝟎) (sf,𝟎) (and (sf,𝟎) (s0,𝟎)). Observe that it might be the case that the run looks like (s0,𝟎) (sf,v1) (s0,v1) (sf,v2)(s0,vk) (sf,𝟎). By construction of the VASS, we know that there is an execution (s0,𝟎) (,v0) (,v0′′) (sf,v0′′′) (sf,v0′′) (sf,v1). Here v0 is the valuation obtained after having increased the counter 𝗑qin, v0′′ is the valuation obtained just before going to sf, and v1 is obtained after having decremented counter 𝗑qf. Adapting the proof of Lemma 3.9 to this case, we deduce the existence of an execution of the protocol from an initial configuration C0 to a configuration C0 such that |C01(q)|=0 for all qQW, and |C01(q)|=v0′′(𝗑q)+i=1,,|QW|+1v0′′(𝗑(q,i)) for all qQA. From the portion of run of the VASS (s0,v1) (,v1) (,v1′′) (sf,v1′′′) (sf,v1′′) (sf,v2), we similarly get another sequence of configurations of the protocol from a configuration C1 (not necessarily initial because v1 might not be equal to 0 for some counters other than 𝗑qin) to a configuration C1 such that C1C1 and |C11(q)|=0 for all qQW. Observe however that these two sequences can be merged into a single one, of size v0(𝗑qin)+(v1(𝗑qin)v1(𝗑qin)) (the second part corresponds to processes added in qin with transition (s0,δin,s0), and δin(𝗑qin)=1). The execution then first behaves like the execution from C0 to C0, potentially leaving some processes in the initial state (in particular processes from v1(𝗑qin)v1(𝗑qin)). Once this first part is over, all the processes are either in the initial state, or in an action state (because C01(q)=0 for all qQW). Then, one can simulate the second sequence, (processes already in qf from the first execution won’t be affected because they are in an action state, so they won’t receive any message. This would not be true if qfQW). Since the execution of 𝒱P eventually reaches (sf,𝟎), it means that it reaches (sf,vk+1) where vk+1(𝗑)=0 for all 𝗑𝗑qf. Then, by iterating the construction described above, one obtains an execution of P from an initial configuration to a configuration Cf such that Cf(e)=qf for all e[1,Cf].

As runs of doubly exponential length can be guessed in exponential space in the size of the VASS and ExpSpace=NExpspace, we get the following theorem using Remarks 3.7 and 4.1. Observe that even if the number of locations is doubly exponential in the size of the protocol, the bound of Theorem 4.1 is polynomial in |Loc| and doubly exponential in |𝖷|, hence lengths of the runs to guess remain doubly exponential in the size of the protocol.

Theorem 4.3.

Synchro for Wait-Only protocols is in ExpSpace when qfQA.

Lower bound.

ExpSpace-hardness follows from a reduction of the coverability problem in VASS, which is ExpSpace-hard [19], and stated as follows: given a VASS 𝒱=(Loc,0,𝖷,Δ) of dimension d, and a location fLoc, decide whether there is an execution from (0,𝟎) to (f,v) for some vd.

The reduction uses the protocol depicted in Figure 5, this time including the dashed edge but excluding the thick edges: qf is now an action state. Then f is coverable iff there exists an execution C0Cf in which all processes reach qf. The execution of the VASS can be simulated in the protocol like in Section 3.3. The processes that may still remain in the states unit𝗑 can reach z-end even when f is populated (recall that all the thick edges have been removed). Once this is done, all processes can gather in qf. Conversely, if there exists an execution in which all processes reach qf, it means that f is coverable. Let e0 be the first process to broadcast start, then an execution of the VASS covering f can be built based on the sequence of states visited by e0 between 0 and f. This relies on three keys observations: (1) The process e0 must visit f, otherwise it cannot reach qf. (2) When e0 is between 0 and f, e0 is the only process in this region. If another process attempts to join by broadcasting start, e0 will receive the message and go to err, preventing it from reaching qf. (3) When e0 reaches 0 for the first time, no other process is in the states {unit𝗑𝗑𝖷}, since start is sent for the first time at this point. Hence, with Theorem 4.3, it establishes the following result.

Theorem 4.4.

Synchro for Wait-Only protocols is ExpSpace-complete when qfQA.

5 Solving the Repeated Coverability problem for Wait-Only Protocols

Upper Bound.

We show that RepCover on Wait-Only protocols is in ExpSpace, via the repeated coverability problem in VASS: given a VASS 𝒱=(Loc,init,𝖷,Δ) and a location fLoc, is there an infinite execution (init,𝟎) (1,v1)  such that, for all i, there exists j>i such that j=f? We rely on the following theorem.

Theorem 5.1 (Theorem 3.1 of [13]).

For a VASS 𝒱=(Loc,init,𝖷,Δ), the repeated coverability problem is solvable in O(log(l)+log(|Loc|))2c|𝖷|log(|𝖷|) nondeterministic space for some constant c independent of 𝒱, and where the absolute values of components of vectors in Δ are smaller than l.

Let P=(Q,Σ,qin,T) be a Wait-Only protocol and tf=(q,!!a,q) the transition that has to occur infinitely often. We build a VASS 𝒱P based on the construction presented in Section 3.2. This time, we add a new set of states CoSets={(SS,)SSCoSets}. and the set of transitions {(SS,δ,(SS,))(SS,δ,SS)Δtf}{(SS,),𝟎,SS)SSCoSets}. Hence, when a process takes the transition tf, it is highlighted in 𝒱P by going in a location tagged with , before continuing the execution. Taking the protocol of Figure 1, with tf=(qin,!!d,q1), the previous transition from the location of the VASS {({q3},q4,1)} to the location {({q3},q4,1),({q1},q6,1)} (see Figure 4) is now transformed into two transitions in the VASS we build here: one from ({({q3},q4,1)}) to the location ({({q3},q4,1),({q1},q6,1)},) and one from ({({q3},q4,1),({q1},q6,1)},) to {({q3},q4,1),({q1},q6,1)}. There is an execution of P with a process that takes tf infinitely often iff there is an execution of 𝒱P where one state in CoSets is visited infinitely often. The procedure to decide RepCover is then: guess a location f in CoSets and solve the repeated coverability problem for 𝒱P and f. From Remarks 3.7 and 5.1, this can be done in O(log(2)+(|Q|+1)2×2|Q|+2)2c(|Q|+1)3log((|Q|+1)3) nondeterministic space. The overall procedure is then in NExpSpace=ExpSpace. Hence, the following theorem.

Theorem 5.2.

RepCover is in ExpSpace.

 Remark 5.3.

One could define RepCover with a reception transition that has to occur infinitely often. The VASS we described hereabove can be adapted by enlarging each location with the current state of the witness process. This can also be done in ExpSpace.

Lower bound.

Figure 7: The part of P with transition tf=(qn+2,!!,q1). We write ?Σ for ?m,mΣ.
Figure 8: The part of P simulating automaton i.

We reduce the intersection non-emptiness problem for deterministic finite automata, which is known to be PSpace-complete [15], to RepCover. Let 𝒜1,,𝒜n be deterministic, complete finite automata, with 𝒜i=(A,Qi,qi0,qif,Δi) for 1in. The reduction assumes a single accepting state per automaton, which does not affect complexity. We denote by A the set of words over the alphabet A, and extend each transition function Δi to A by defining: Δi(q,ε)=q, and Δi(q,wa)=Δi(Δi(q,w),a) for all wA and aA.

We define a protocol P=(Q,Σ,qin,T) composed of several components. For each automaton 𝒜i, P includes a component Pi=(Qi,Ti) (see Figure 8), where Qi=Qi and Ti={(q1i,?a,q2i)(q1i,a,q2i)Δi}. The main control component (see Figure 8) includes the transition tf=(qn+2,!!,q1), which must occur infinitely often. A process taking tf infinitely often also receives infinitely many sequences of messages $end1end2endn, where each endi is broadcast by the component simulating 𝒜i. In addition to transitions in Figures 8 and 8, T also includes: {(qin,!!a,qin)aA}{(qin,!!$,qin)}. One can show that there exists a word w=a1an in the intersection of the n automata iff there is an execution in which tf is taken infinitely often.

Theorem 5.4.

RepCover is PSpace-hard.

References

  • [1] K. R. Apt and D. C. Kozen. Limits for automatic verification of finite-state concurrent systems. Inf. Process. Lett., 22(6):307–309, 1986. doi:10.1016/0020-0190(86)90071-2.
  • [2] Peter Chini, Roland Meyer, and Prakash Saivasan. Liveness in broadcast networks. Computing, 104(10):2203–2223, 2022. doi:10.1007/S00607-021-00986-Y.
  • [3] Wojciech Czerwinski and Lukasz Orlikowski. Reachability in vector addition systems is ackermann-complete. In 62nd IEEE Annual Symposium on Foundations of Computer Science, FOCS 2021, Denver, CO, USA, February 7-10, 2022, pages 1229–1240. IEEE, 2021. doi:10.1109/FOCS52979.2021.00120.
  • [4] Giorgio Delzanno, Jean-François Raskin, and Laurent Van Begin. Towards the automated verification of multithreaded java programs. In TACAS 2002, volume 2280 of LNCS, pages 173–187. Springer, 2002. doi:10.1007/3-540-46002-0_13.
  • [5] Giorgio Delzanno, Arnaud Sangnier, and Gianluigi Zavattaro. Parameterized verification of ad hoc networks. In Paul Gastin and François Laroussinie, editors, CONCUR 2010 - Concurrency Theory, pages 313–327, Berlin, Heidelberg, 2010. Springer Berlin Heidelberg. doi:10.1007/978-3-642-15375-4_22.
  • [6] E.A. Emerson and K.S. Namjoshi. On model checking for non-deterministic infinite-state systems. In Proceedings. Thirteenth Annual IEEE Symposium on Logic in Computer Science (LICS), pages 70–80, 1998. doi:10.1109/LICS.1998.705644.
  • [7] J. Esparza, P. Ganty, and R. Majumdar. Parameterized verification of asynchronous shared-memory systems. In CAV’13, volume 8044 of LNCS, pages 124–140. Springer-Verlag, 2013. doi:10.1007/978-3-642-39799-8_8.
  • [8] Javier Esparza, Alain Finkel, and Richard Mayr. On the verification of broadcast protocols. In 14th Annual IEEE Symposium on Logic in Computer Science, Trento, Italy, July 2-5, 1999, pages 352–359. IEEE Computer Society, 1999. doi:10.1109/LICS.1999.782630.
  • [9] S. M. German and A. P. Sistla. Reasoning about systems with many processes. Journal of the ACM, 39(3):675–735, 1992. doi:10.1145/146637.146681.
  • [10] Lucie Guillou, Arnaud Sangnier, and Nathalie Sznajder. Safety analysis of parameterised networks with non-blocking rendez-vous. In CONCUR’23, volume 279 of LIPIcs, pages 7:1–7:17. loss Dagstuhl - Leibniz-Zentrum für Informatik, 2023. doi:10.4230/LIPICS.CONCUR.2023.7.
  • [11] Lucie Guillou, Arnaud Sangnier, and Nathalie Sznajder. Safety verification of wait-only non-blocking broadcast protocols. In Application and Theory of Petri Nets and Concurrency - 45th International Conference, PETRI NETS 2024, volume 14628 of Lecture Notes in Computer Science, pages 291–311. Springer, 2024. doi:10.1007/978-3-031-61433-0_14.
  • [12] Lucie Guillou, Arnaud Sangnier, and Nathalie Sznajder. Wait-only broadcast protocols are easier to verify, 2025. arXiv:2506.22144.
  • [13] Peter Habermehl. On the complexity of the linear-time mu -calculus for petri-nets. In Pierre Azéma and Gianfranco Balbo, editors, Application and Theory of Petri Nets 1997, 18th International Conference, ICATPN ’97, Toulouse, France, June 23-27, 1997, Proceedings, volume 1248 of Lecture Notes in Computer Science, pages 102–116. Springer, 1997. doi:10.1007/3-540-63139-9_32.
  • [14] John E. Hopcroft and Jean-Jacques Pansiot. On the reachability problem for 5-dimensional vector addition systems. Theor. Comput. Sci., 8:135–159, 1979. doi:10.1016/0304-3975(79)90041-0.
  • [15] Dexter Kozen. Lower bounds for natural proof systems. In 18th Annual Symposium on Foundations of Computer Science, Providence, Rhode Island, USA, 31 October - 1 November 1977, pages 254–266. IEEE Computer Society, 1977. doi:10.1109/SFCS.1977.16.
  • [16] Jérôme Leroux. Vector addition system reversible reachability problem. In Joost-Pieter Katoen and Barbara König, editors, CONCUR 2011 - Concurrency Theory - 22nd International Conference, CONCUR 2011, Aachen, Germany, September 6-9, 2011. Proceedings, volume 6901 of Lecture Notes in Computer Science, pages 327–341. Springer, 2011. doi:10.1007/978-3-642-23217-6_22.
  • [17] Jérôme Leroux. The reachability problem for petri nets is not primitive recursive. In 62nd IEEE Annual Symposium on Foundations of Computer Science, FOCS 2021, Denver, CO, USA, February 7-10, 2022, pages 1241–1252. IEEE, 2021. doi:10.1109/FOCS52979.2021.00121.
  • [18] Jérôme Leroux and Sylvain Schmitz. Reachability in vector addition systems is primitive-recursive in fixed dimension. In 34th Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2019, Vancouver, BC, Canada, June 24-27, 2019, pages 1–13. IEEE, 2019. doi:10.1109/LICS.2019.8785796.
  • [19] R.J. Lipton. The reachability problem requires exponential space. Research report (Yale University. Department of Computer Science). Department of Computer Science, Yale University, 1976. URL: https://books.google.fr/books?id=7iSbGwAACAAJ.
  • [20] S. Schmitz and P. Schnoebelen. The power of well-structured systems. In CONCUR’13, volume 8052 of Lecture Notes in Computer Science, pages 5–24. Springer, 2013. doi:10.1007/978-3-642-40184-8_2.
  • [21] Rüdiger Valk. Self-modifying nets, a natural extension of petri nets. In ICALP’78, volume 62 of LNCS, pages 464–476. Springer, 1978. doi:10.1007/3-540-08860-1_35.