<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Solving a Safety Game on the Unfolding of Safe Petri Nets</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Federica Adobbati</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Luca Bernardinello</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lucia Pomello</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di informatica, sistemistica e comunicazione Università degli Studi di Milano- Bicocca viale Sarca 336 U14</institution>
          ,
          <addr-line>Milano</addr-line>
          ,
          <country country="IT">Italia</country>
        </aff>
      </contrib-group>
      <fpage>53</fpage>
      <lpage>69</lpage>
      <abstract>
        <p>We consider a two-player game on 1-safe Petri nets, in which each player controls a subset of transitions. The players are called 'user' and 'environment'; we assume that the user must guarantee progress on its transitions, and has a safety goal on the system. A play of this game is a run in the unfolding of the net; this is a partial order structure describing all the possible executions of the net. In general, we define a strategy for the user as a map from equivalence classes of markings to subsets of transitions owned by the user. We propose an algorithm to check whether the user has a winning strategy on a finite prefix of the unfolding.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Petri nets</kwd>
        <kwd>Asynchronous games</kwd>
        <kwd>safety goal</kwd>
        <kwd>prefix of the unfolding</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Several real world situations can be abstractly described as follows: an agent, which we will call
user, interacts with an environment trying to achieve a goal. The goal can consist, for example,
in reaching a given state, or avoiding a set of states, even if the environment is hostile, or non
cooperating. This abstract model can then be seen as a game, and one can investigate whether
the user has a winning strategy assuring him to reach the goal for any possible behaviour of
the environment.</p>
      <p>In this paper, we use 1-safe Petri nets as a formal model, on which one can define such a game.
A Petri net represents a system in which global states are explicitly distributed in sets of “local
states” (places), and the occurrence (or firing ) of a transition can change a subset of local states.
This allows for a clear representation of concurrency and conflicts between events. Global
states are usually called markings. In 1-safe nets, a marking is a set of places, and transitions
are characterized by their pre- and post-conditions. Places belonging to a marking are said to
be marked in that marking.</p>
      <p>Diferent semantics can be defined for Petri nets. An interleaving semantics associates, to a
given Petri net, a labelled transition system, in which states correspond to reachable markings
of the net, and arcs are labelled by transitions. A ‘true concurrency’ semantics can be defined,
based on the idea of “unfolding” a net, by recording occurrences of local states and of transitions;
in this way, the set of all possible behaviours of the net is described by another net, possibly
infinite. The unfolding of a finite 1-safe net, although infinite, is built on a finite set of repeated
substructures, made of a transition and its pre- and post-conditions. This allows for constructing
a finite prefix of the whole unfolding, containing enough information to reconstruct, by glueing
pieces, the full unfolding; such a prefix is said to be complete.</p>
      <p>The basic definitions on Petri nets and unfoldings are recalled in Sect. 2.</p>
      <p>Using 1-safe Petri nets, we study a game in which the user aims at avoiding markings in which
any place in a given subset  is marked. We assume that the transitions of the net are partitioned
into controllable transitions (under the control of the user) and uncontrollable transitions. We
further assume that the user has a “progress” obligation: if a controllable transition is enabled,
then it must eventually happen, or be disabled.</p>
      <p>A play in the game is an execution of the net, in which user and environment can move
concurrently. Formally, a play is a run in the unfolding of the net, namely the recording of
occurrences of places and transitions, where all conflicts have been solved.</p>
      <p>We will assume that the user knows the structure of the system, and has full knowledge
of the current marking, but cannot prevent any uncontrollable transition. A strategy for the
user is then defined as a map from markings to controllable transitions, and guides the user in
choosing which controllable transitions to fire. The game is formally defined in Sect. 3.</p>
      <p>A strategy is winning if any play in which the user complies with it satisfies the user’s aim:
in all reached markings in the play, no place in  is marked.</p>
      <p>The main problem we address is to decide whether the user has a winning strategy. To that
aim, we work on a complete prefix of the unfolding of the net, and give an algorithm which
solves the problem by discovering bad choices that would lead the user to lose a play. Strictly
speaking, the algorithm solves the decision problem; however, by inspecting the set of bad
choices found, one can construct a strategy.</p>
      <p>The algorithm is defined and discussed in Sect. 4. Sec. 5 concludes the paper discussing some
related and future works.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Petri nets</title>
      <p>
        In this section we recall basic definitions concerning Petri nets, net unfoldings and their prefixes,
that will be useful in the rest of the paper, see also [
        <xref ref-type="bibr" rid="ref1 ref2 ref3">1, 2, 3</xref>
        ]. Among the several classes of nets
defined and studied in the literature, in this paper we use the class of 1-safe Petri nets.
      </p>
      <p>A net is a triple  = (, ,  ), where  and  are disjoint sets, the elements of  are
called places and are represented by circles, the elements of  are called transitions and are
represented by squares,  ⊆ ( ×  ) ∪ ( ×  ) is the flow relation , represented by directed
arcs. The pre-set of an element  ∈  ∪  is the set ∙  = { ∈  ∪  : (, ) ∈  }; the
post-set of  is the set ∙ = { ∈  ∪  : (, ) ∈  }. Let  ⊆  ∪  be a subset of
elements, its pre-set is defined as ∙  = { ∈  ∪  : ∃ ∈  : (, ) ∈  }, and its post-set
as ∙ = { ∈  ∪  : ∃ ∈  : (, ) ∈  }. We assume that each transition has non-empty
pre-set and post-set.</p>
      <p>Two transitions, 1 and 2, are independent if (∙ 1 ∪ ∙1) and (∙ 2 ∪ ∙2) are disjoint. They are
structurally in conflict if ∙ 1 ∩ ∙ 2 ̸= ∅.</p>
      <p>A net is finite if  ∪  is finite, and infinite otherwise.</p>
      <p>A net (, ,  ) is a subnet of another net ( ′,  ′,  ′) if  ⊆  ′,  ⊆  ′ and  is the
restriction of  ′ to ( ×  ) ∪ ( ×  ).</p>
      <p>A net (, ,  ) is the subnet of ( ′,  ′,  ′) generated by T if  = ∙  ∪  ∙ ,  ⊆  ′ and 
is the restriction of  ′ to ( ×  ) ∪ ( ×  ).</p>
      <p>A net system is a quadruple Σ = ( , ,  ; ) consisting of a finite net  = (, ,  ) and
an initial marking  :  → N, representing the initial state of the system. A marking is a
map  :  → N.</p>
      <p>A transition  is enabled at a marking , denoted [⟩, if, for each  ∈ ∙ , () &gt; 0. A
transition , enabled at , can occur (or fire ) producing a new marking ′ (denoted [⟩′),
where
A marking ′ is reachable from another marking , if there is a sequence of transitions
12 . . .  such that [1⟩1[2⟩ . . . − 1[⟩′, this is also denoted with [12 . . . ⟩′;
[⟩ denotes the set of markings reachable from . A marking  is reachable if it is reachable
from the initial marking , i.e.: if  ∈ [⟩; [⟩ will be also denoted  in the next
sections.</p>
      <p>A net system is 1-safe if () ≤ 1, for each place  and for each reachable marking .
Markings in 1-safe net systems can, and will, be considered as subsets of places.</p>
      <p>In a net system, two transitions, 1 and 2, are concurrent at a marking  if they are
independent and both enabled at . They are in conflict at a marking  if they are both enabled at ,
however they are not concurrently enabled at : the occurrence of one of them disables the
other one, this is possible if they are structurally in conflict, i.e.: they share at least a pre-place.</p>
      <p>An example of a 1-safe net system is given on Fig. 1. Transitions structurally in conflict are
for example  and , as well as  and ℎ, or  and  ;  and  are also in conflict at the initial
marking {1}. Transitions  and  are independent, however they are never both enabled at a
reachable marking, hence they are never concurrent;  and  are independent and both enabled
at the reachable marking {3, 4}, they are concurrent at {3, 4}. We now introduce two technical
relations that will be useful to define the partial order semantics of net systems. The ≺ relation
on the elements of a net  is the transitive closure of  and ⪯ is the reflexive closure of ≺ . Let
,  ∈  ∪  ; then # if there exist 1, 2 ∈  : 1 ̸= 2, 1 ⪯ , 2 ⪯  and there exists
 ∈ ∙ 1 ∩ ∙ 2.</p>
      <p>The non sequential behaviour of net systems can be recorded by occurrence nets, which
are used to represent by a single object the set of potential histories of a net system. A net
 = (, ,  ), possibly infinite, is an occurrence net if the following restrictions hold:
1. ∀ ∈  ∪  : ¬( ≺ )
2. ∀ ∈  ∪  : ¬(#)
3. ∀ ∈  : { ∈  ∪  |  ⪯ } is finite
4. ∀ ∈  : |∙ | ≤ 1
In an occurrence net, the elements of  are called conditions and the elements of  are called
events; the transitive and reflexive closure of  , ⪯ , forms a partial order. The set of minimal
elements of an occurrence net  with respect to ⪯ will be denoted by min( ). Since we only
consider nets in which every transition has nonempty pre-set and post-set, the elements of
min( ) are conditions.</p>
      <p>An occurrence net represents the alternative histories of a system; therefore its underlying
graph is acyclic (cond. 1), and paths branching from a condition, corresponding to a choice
between alternative behaviours, never converge (cond. 2).</p>
      <p>An example of occurrence net is given on Fig. 2. It represents possible histories of the net
system given on Fig. 1, where the correspondence with the elements of the system is given by
the labels, and min( ) = {11}.</p>
      <p>Given an occurrence net  = (, ,  ), we define an event  ∈  as terminal if there is no
event ′ ∈  such that  ≺ ′.</p>
      <p>On the elements of an occurrence net the relation of concurrency, co, is defined as follows:
let ,  ∈  ∪  ; then  co  if ¬( ≺ ) and ¬( ≺ ) and ¬(#).</p>
      <p>A B-cut of  is a maximal set of pairwise concurrent elements of , and can be intuitively
seen as a potential global state through which a process can go in a history of the system.</p>
      <p>In Fig. 2 for example: 21#31, 21#1, ℎ2#1, 41 co 51, {41, 51} is a B-cut, 1 co 51.</p>
      <p>By analogy with net systems, we will sometimes say that an event  of an occurrence net is
enabled at a B-cut  , denoted  [⟩, if ∙  ⊆  ; for example {41, 51}[1⟩.</p>
      <p>A configuration of an occurrence net  = (, ,  ) is a set of events  ⊆  which is
causally closed (for every  ∈ , ′ ⪯  ⇒ ′ ∈ ) and free of conflicts ( ∀1, 2 ∈ ,
¬(1#2)).  is maximal if it is maximal with respect to set inclusion. Note that  can be an
infinite set. Intuitively, a configuration is a set of events ‘firable’ from min( ), the natural
initial marking of  , i.e.: there is a firing sequence from min( ) in which each event of the
configuration occurs exactly once.</p>
      <p>The local configuration [] of an event  of an occurrence net is the set of events ′ such that
′ ≤ . Local configurations are finite; they will play an important role in the following sections.</p>
      <p>In Fig. 2: {1, 1, 1, 3} is a configuration which is not a local one; whereas [1] = {1, 1, 1, 1}
and [2] = {1, 1, 1, 3, 2} are examples of local configurations, the last one is also a maximal
configuration.</p>
      <p>Finite configurations and B-cuts are tightly related: if  ⊆  is a finite configuration of an
occurrence net  , then cut() = (min( ) ∪ ∙ ) ∖ ∙  is a B-cut. Intuitively, cut() represents
the ‘marking’ of  reachable from min( ) after the firing of the events in . In the following
sections, given a local configuration [] and its cut,  = ([]), ∘  will denote the cut obtained
from  by ‘backward firing’ the event , i.e.: ∘  = ( ∖ ∙ ) ∪ ∙ ; intuitively, ∘  represents the
‘marking’ of  reachable from min( ) after the firing of the events from which the event 
causally depends.</p>
      <p>In the example: cut({1, 1, 1, 3}) = {52, 73}; cut([2]) = {112}; ∘ 2 = {52, 73}; [1] =
{1, 1, 1}, cut([1]) = {52, 43} and ∘ 1 = {31, 43}.</p>
      <p>A branching process of a 1-safe net system Σ = ( , ,  ; ) is an occurrence net  =
(, ,  ), together with a labelling function  :  ∪  →  ∪  , such that
•  () ⊆  and  () ⊆  ( preserves the nature of nodes)
• for all  ∈ , the restriction of  to ∙  is a bijection between ∙  and ∙  (); the same holds
for ∙ and  ()∙ ( preserves the environments of transitions)
• the restriction of  to min( ) is a bijection between min( ) and  (the process starts
at )
• for all 1, 2 ∈ , if ∙ 1 = ∙ 2 and  (1) =  (2), then 1 = 2 ( does not duplicate the
transitions of Σ )
The labelled occurrence net on Fig. 2 is a branching process of the system given on Fig. 1.
The labels of the elements specify the correspondence with the elements of the system they
represent.</p>
      <p>
        Given a branching process (,  ) of Σ and a B-cut  of  , then the set  ( ) = { () |  ∈  }
is a reachable marking of Σ ([
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]), and we refer to it as the marking corresponding to  . For
example, the B-cut {52, 73} corresponds to the reachable marking {5, 7}.
      </p>
      <p>Let (1,  1) and (2,  2) be two branching processes of Σ , where  = (, , ),  = 1, 2.
We say that (1,  1) is a prefix of (2,  2) if 1 is a subnet of 2, and  2|1∪1 =  1. For
any net system Σ , there exists a unique, up to isomorphism, maximal branching process of Σ .
We will call it the unfolding of Σ , and denote it by Unf(Σ) .</p>
      <p>A run of Σ describes a particular history of Σ , in which conflicts have been solved, it is a
branching process (,  ) such that there is no pair of elements ,  in  such that #. Any
run of Σ is a prefix of the unfolding Unf(Σ) ; we also say that it is a run on Unf(Σ) . A run in
Fig. 2 is for example the labelled subnet whose elements are: {11, 101, 31, 43, 52} as conditions
and {1, 1, 1} as events.</p>
      <p>
        The following is an important property of the unfolding [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], which will be used in the next
sections. Let Σ = ( , ,  ; ), and  be a finite configuration of Unf(Σ) = ( ,  ). Let
⇑  = ( ,  ′), where  is the unique (up to isomorphism) subnet of  whose set of nodes
is { |  ∈/ ( ∪ ∙ ) ∧ ∀ ∈  : ¬(#)} and  ′ is the restriction of  to the nodes of  .
Then ⇑  is the unfolding of the net system (, ,  ;  (cut())), up to isomorphism. From
this property it follows that if 1 and 2 are finite configurations leading to the same marking,
i.e.:  (cut(1)) =  (cut(2)) = , then ⇑ 1 and ⇑ 2 are isomorphic to the unfolding of
(, ,  ; ), and they are isomorphic to each other. For example the finite configurations [1]
and [1] lead to the same marking {4, 6} =  (cut([1])) =  (cut([1])) and ⇑ [1] and ⇑ [1]
are isomorphic to the unfolding of the system Σ ′ with the same net of Σ and initial marking
{4, 6}.
      </p>
      <p>
        The unfolding of a system is usually infinite. In [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] an algorithm is proposed which constructs
a finite complete prefix , a final initial part of the unfolding containing as much information as
the unfolding itself, in the sense that the unfolding can be constructed from its complete prefix.
This notion of prefix was then further studied and generalized in the literature and used for
studying various system properties, see for example [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ].
      </p>
      <p>A branching process (,  ) of a net system Σ is complete if for every reachable marking 
there exists a configuration  in  such that:  (cut()) =  (i.e.:  is represented in (,  )),
and for every transition  enabled at  ([⟩) there exists a configuration  ∪ {} such that
 ∈/  and  () = .</p>
      <p>The unfolding of a net system is always complete. Since a 1-safe net system has only a finite
number of reachable markings, its unfolding contains at least one complete finite prefix.</p>
      <p>
        In this paper we will use finite complete prefixes of the unfoldings of 1-safe net systems to
study if the user has a strategy to avoid occurrences of a set of places. In particular, the complete
prefixes we will use are obtained by adding to the one produced by the algorithm in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] a finite
set of events in order to guarantee a certain property as explained in section 4.1.
      </p>
      <p>
        The branching process given in Fig. 2 is a finite complete prefix of the unfolding. This
branching process is an extension of the one which is obtained by the algorithm presented in
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], to which events 2 and 2, have been added, see also section 4.1 in the following.
      </p>
      <p>The full unfolding of this net system is finite; by adding transitions that reproduce the initial
marking, one easily obtains a net system with an infinite unfolding. The following discussions
(see Ex. 1 and 4), and the working of the algorithm in Sect. 4 would essentially apply to this
cyclic case, but we chose to keep the nets as simple as possible.</p>
    </sec>
    <sec id="sec-3">
      <title>3. The Game</title>
      <p>In this section we formally define a two-player game on a 1-safe Petri net. Consider a 1-safe
net system Σ = ( , ,  ; ), where  is partitioned into two disjoint subsets,  and .
We will say that transitions in  belong to the user, while transitions in  belong to the
environment. A transition is controllable if it belongs to , uncontrollable otherwise. Events in
the unfolding Unf(Σ) are partitioned into controllable events, , and uncontrollable events,
, according to their labels.</p>
      <p>We assume that Σ satisfies the following constraints:
1. the subnet generated by  is extended free-choice; by this we mean that, for each pair of
transitions, 1 and 2, in , if ∙ 1 ∩ ∙ 2 ̸= ∅, then ∙ 1 = ∙ 2; controllable transitions can
be in conflict with uncontrollable ones without any extended free-choice constraint;
2. the user behaves sequentially; by this we mean that if 1 and 2 are in , then, for each
reachable marking , if [1⟩ and [2⟩, then ∙ 1 ∩ ∙ 2 ̸= ∅, so that the two transitions
are in conflict at .</p>
      <p>In this paper, we consider a game in which the user has the goal to avoid a given subset  of
places; we assume that the user cannot keep any of its transitions indefinitely enabled, whereas
the environment can decide whether to fire or not transitions, when they are enabled; however,
the progress assumption for the user does not guarantee that the solution of conflicts between
a controllable transition and an uncontrollable one is in favour of the user.</p>
      <p>A play in this game is then a (possibly infinite) run  = ( ,  ,  ,   ) in the unfolding of
Σ , maximal with respect to controllable events. The play is won by the user if, for all  ∈  , 
is not an occurrence of any place in : ∀ ∈  :   () ̸∈ .</p>
      <p>In pursuing its goal, the user can apply a strategy, based on the current state of the net. A
strategy is a map  : [⟩ → 2 , such that
1. for each  ∈ [⟩ and for each  ∈  (),  is enabled at ;
2. for each  ∈ [⟩ and  reachable following  , if [⟩ for some  ∈ , then  () ̸= ∅.
Since the environment can move concurrently with the user, a strategy is well defined if, and
only if, for each pair of markings 1, 2 ∈ [⟩ such that 1 and 2 enable the same set of
controllable transitions, and such that there is a sequence of uncontrollable transitions leading
from 1 to 2,  (1) ⊆  (2) holds. This is due to the fact that the user in 1 cannot be
sure that while firing its transition, the system will not move to the marking 2; therefore, any
choice made in 1 needs to be acceptable also in 2. We do not require that  (2) =  (1),
because in 2 the system may have evolved so that some uncontrollable alternatives are not
possible anymore, therefore a higher number of transitions may be safe for the user to fire.</p>
      <p>Let  be a controllable event of a play  = ( ,  ,  ,   ), and  be a strategy. Then 
is justified by  if there is a cut  in  , containing ∙  and following (or coinciding with) ∘ ,
such that  chooses the transition corresponding to  in the marking corresponding to  :
 () ∈  (  ( )).</p>
      <p>We say that a play  = ( ,  ,  ,   ) is consistent with a strategy  if every controllable
event in the play is justified by  .</p>
      <p>A strategy  is winning for the user if there is at least one play consistent with  , and the
user wins any play consistent with  .</p>
      <p>Example 1. In the net system in Fig. 1 assume that the user controls transitions , ,  and ℎ,
and wants to avoid to reach place 13. A winning strategy is the function  : [{1}⟩ → 2{,,,ℎ}
defined as follows:  ({1}) = {},  ({4, 5}) = {ℎ},  ({6, 4}) = {}, and  () = ∅ for all the
other  ∈ [{1}⟩.</p>
      <p>By following this strategy, the user satisfies the progress constraint and never reaches place 13.</p>
      <p>On the prefix (,  ) in Fig. 2, the run whose events are {1, 1, 2} is consistent with the
strategy, since the controllable event 1 follows the cut {11}, and  (1) =  ∈  ( ({11})), and
the controllable event 2 follows the cut {61, 42}, and  is chosen in the marking {4, 6}.</p>
      <p>Note that the user cannot win by choosing transition , since in the marking {3, 4} it must
satisfy the progress constraint: the user must select between  and ℎ before knowing about the
environment decision between  and  , and this may always lead to reach place 13.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Algorithm</title>
      <p>
        The first part of this section recalls some notions used in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] to construct a finite complete
prefix, and proposes an extension of it. Then, in Sec. 4.2 we present our main contribution: an
algorithm that checks on the extension of the complete prefix whether the user has a winning
strategy.
      </p>
      <sec id="sec-4-1">
        <title>4.1. Construction of an extended complete prefix</title>
        <p>
          The structure that we will use to determine the existence of a winning strategy is an extension
of the complete prefix produced by the algorithm in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Other works discuss algorithms to
ifnd finite prefixes of the unfolding ([
          <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
          ]); the construction of the prefix proposed in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] is
characterized by the definition of an order relation between configurations, and by the definition
of cut-of event.
        </p>
        <p>
          The order relation, denoted ≺ F, is based on three elements: (1) the cardinality of
configurations; (2) an arbitrarily defined total order ≪ on the elements of  , the set of transitions of
the system net; (3) the Foata normal form of a configuration (see [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]). Here we aim to give an
intuitive idea of how to compare two configurations according to ≺ F, refer to [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] for details.
        </p>
        <p>Given two configurations 1 and 2, if |1| &lt; |2|, then 1 ≺ F 2. If |1| = |2|, then we
can order the elements of 1 and 2 according to ≪ forming two sequences  (1) and  (2);
if  (1) ≪  (2) in the lexicographic order, then 1 ≺ F 2. Otherwise, if |1| = |2| and
 (1) =  (2), we compare the Foata normal form of 1 and 2 according to the order ≪ .</p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] the authors prove that ≺ F is total for 1-safe nets.
        </p>
        <p>For each event  of a prefix (,  ) of Unf(Σ) , in the following we denote cut() = cut([])
and mark() =  (cut([])).</p>
        <p>Definition 1. Let (,  ) be a prefix of Unf(Σ) , and  an event. The event  is cut-of if there is
another event ′ ∈ (,  ) such that the following conditions hold.</p>
        <p>• mark() = mark(′);
• [′] ≺ F[].</p>
        <p>
          The prefix in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] is constructed starting from the initial cut, adding the enabled events to the
prefix; when a cut-of event is reached, no event can be added in its future. The construction
stops when there is no event that can be added to the prefix without being in the future of a
cut-of. Since ≺ F is total in 1-safe nets, the number of non cut-of events never exceeds the
number of reachable markings [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ].
        </p>
        <p>
          Example 2. Consider the net system Σ in Fig. 1 and (,  ) in Fig. 2. The net (,  ) is an
extension of the complete prefix of Σ as defined in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. The cut-of events are 1, 1, and 1. The
event 1 is cut-of because of 1, since mark[1] = mark[1] = {9}, and [1] ≺ F[1]. The event
1 is cut-of because of 1, and 1 because of 1. The events 2 and 2 are not part of the prefix
constructed as in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] because they follow a cut-of event.
        </p>
        <p>
          As will be shown in Ex. 4, in general, a complete prefix as in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] is not suficient for us to
check the existence of a winning strategy. For this reason, we extend it to a prefix ( ′,  ′) such
that the following conditions (called extention conditions) hold.
        </p>
        <p>1. Each terminal event  in the prefix ( ′,  ′) satisfies one of the following:
a) There is an event ′ in the prefix such that  and ′ satisfy the conditions in Def. 1.
b) There is no event ′ in the unfolding such that  ≺ ′, i.e.:  is terminal in the
unfolding.
2. For each  ∈ Unf(Σ) , if for each  ∈ ∙ , there exists  ∈ ( ′,  ′) such that  ∈ ∙ and 
not terminal in ( ′,  ′), then  ∈ ( ′,  ′).</p>
        <p>Intuitively, all the terminal events in ( ′,  ′) are either terminal also in Unf(Σ) , or cut-of as in
Def. 1 (condition 1). Moreover, any event of Unf(Σ) immediately following only non-terminal
events in the prefix ( ′,  ′), must also belong to ( ′,  ′) (condition 2). Since in 1-safe systems
the number of markings and the number of transitions are finite, we cannot continue adding
infinitely often events always producing markings that have not been visited before, hence a
ifnite prefix satisfying the above conditions exists.</p>
        <p>Example 3. The events 3 and ℎ3 do not satisfy the conditions above, since they are neither
cutof events as in Def. 1, nor terminal on the unfolding. For this reason, we extended the prefix by
adding 2 and 2. In the prefix in Fig. 2 all the events satisfy the extension conditions.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Algorithm for the winning strategy</title>
        <p>Let Σ = ( , , , 0) be a 1-safe net system, and cp(Σ) = ( , , ,  ) an extended complete
prefix of Unf(Σ) , constructed as described in Sec. 4.1. We present an algorithm that checks
whether the user has a winning strategy to avoid all the occurrences of bad places. Its pseudocode
is in Algorithm 1. Here we provide an intuitive explanation of how it works. For technical
reasons, we slightly modify the net system Σ in input for the algorithm by adding a unique place
initially marked and a controllable transition  with this place as precondition, and the initial
marking of Σ as postconditions. Due to the progress constraint for the user, this event must fire
in the initial marking, and after it, the modified net behaves as Σ , therefore the existence of a
strategy is not afected. The algorithm starts from each occurrence of bad places in the prefix,
and looks for the last controllable event preceding it. If this event is the only occurrence of  in
the prefix, then the user cannot prevent the system to reach a bad place, since the environment
alone can reach it. Otherwise, this event is unique, since there is no marking enabling two
concurrent controllable transitions, and the user must prevent its occurrence. Let  ∈  be
such event; it can be avoided either by choosing another controllable event enabled in ∘ , or
by preventing the system to arrive in ∘ . This is how the algorithm proceeds: first, it marks
the event  as bad choice (through the set bad_events), then it checks whether ∘  enables a
potentially good alternative. If not, the user cannot prevent the occurrence of a bad place when
the system reaches ∘ , due to the progress constraint, therefore the user must prevent the
system to reach that cut. Once again, this is checked by looking whether it is possible to change
the last controllable choice preceding ∘ .</p>
        <p>In a second round the algorithm checks whether there is any terminal event after which the
user cannot prevent the occurrence of a bad place in the unfolding. This is done by comparing
the marking of the local configuration of each terminal event with the set of bad_markings.</p>
        <p>If the algorithm always finds an alternative to avoid all the occurrences of bad places, then it
returns true, and the user has a winning strategy; otherwise it returns false.
Example 4. Consider the net system in Fig. 1 and the prefix of its unfolding in Fig. 2. This prefix
is extended complete. Assume that the goal of the user is to avoid place 13.</p>
        <p>On the prefix there is only one occurrence of 13, namely (131). The last controllable event
preceding 131 is 1; in ∘ 1 = {41, 51}, the event ℎ1 is enabled, and can be an alternative to
1, therefore the algorithm can stop the exploration of the past of 131. The event 1 is inserted
in bad_events, all the cuts associated to local configurations following 1 are put into bad_cuts,
namely {51, 71}, {111}, {92}, {131}, and all the associated markings are put into bad_markings.
Then, the algorithm starts to analyze the terminal event 1. Since cut(1) is associated to a bad
marking, the algorithm looks for the last controllable event, namely ℎ2. Since in {42, 61} the
event 2 is enabled and it is not marked as bad, the algorithm stops the exploration of the past
of {91}. Then, the events 2 and 2 are analysed. Since both {112} and {122} are associated to
bad markings, in {31, 43} both 3 and ℎ3 are put into bad_events. Since there is no alternative to
them, the algorithm must check if the cut {31, 43} can be avoided, through a previous controllable
choice. In this case, in the initial marking the user can avoid to fire 1, and select its alternative
1, therefore the user has a winning strategy, that is returned by the algorithm (also described in
Ex. 1).</p>
        <p>Note that if  had been uncontrollable, we would not have had an alternative to avoid {31, 43},
therefore the user would not have had a winning strategy.</p>
        <p>
          The algorithm would not return the right answer when we look for it in the smaller prefix
defined in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]: this prefix does not include the events 2 and 2, so the terminal events are 1, 1,
3, and ℎ3. cut(1) = {52, 43} and cut(1) = {62, 43} are not associated to bad_markings,
and this is correct since from these cuts the user is always able to avoid place 13; however, also
cut(3) = {31, 73} and cut(ℎ3) = {31, 83} are not associated to bad_markings, although the
user cannot be sure to win by reaching them. This is due to the fact that 3 and ℎ3 are not cut-of
events as defined in Def. 1, and they are terminal in the prefix only because each event following
them also follows 1 or 1, which are cut-of. This is the reason why we needed to extend the prefix
by imposing a stronger condition on terminal events: by running the algorithm on the smaller
prefix the strategy would allow to fire  in the initial marking and 3 and ℎ3 in {31, 43}, possibly
leading the user to lose.
        </p>
        <p>In what follows we will prove that Algorithm 1 returns true if the user has a strategy to avoid
all the occurrences of bad places in , false otherwise.</p>
        <p>Let  be the set of all the events in the prefix,  the set of the controllable ones, and 
the set of events in bad_events after the end of the execution of Algorithm 1. We denote with
 =  ∖  the set of controllable events not classified as bad_events.</p>
        <p>Lemma 1. At the end of Algorithm 1, from all the cuts in bad_cuts the user cannot prevent the
occurrence of a bad place.</p>
        <p>Proof. The first set of calls to find_alternative (line 6) analyse the past of the occurrences of bad
places in the prefix. We show inductively that in each call, from all the cuts in bad_cuts the user
cannot avoid to reach an occurrence of a bad place. In the first call of find_alternative, in the first
execution of the while cycle, the set bad_cuts includes only cuts from which an occurrence of a
bad place can be reached through uncontrollable events, of which the user cannot prevent the
occurrence. The set bad_events includes the last controllable event 1. By construction, if 1 is
10:
15:
20:
5:
10:
15:
20:
Algorithm 1 Algorithm to find the existence of a winning strategy
function exStrategy(Σ , cp(Σ) , ) ◁ cp(Σ) is a complete prefix of Σ ,  is the set of bad
places</p>
        <p>◁ Looks for a controllable conflict in the past of  
in bad_events, cut(1) is in bad_cuts. We assume that after  iterations the property still holds.
By hypothesis, at the  + 1-th iteration, the property holds in cut() = (  ∖ ∙ ) ∪ ∙ assigned
during the -th iteration. Since the iteration did not stop after  steps, all the controllable events
enabled in   have been analysed and put in bad_events.</p>
        <p>Since the user’s subnet is free-choice, for each controllable  in conflict with ,   =
∘  = ∘ . From   , arriving in cut() or in cut() for some event  in conflict with  is
unavoidable for the user due to the progress constraints, and both cut() and all the cut()
have been included in bad_cuts in the previous steps. From all the cuts included in bad_cuts at
the ( + 1)-th iteration, we can reach   by firing only uncontrollable event. Therefore the
user cannot prevent the system to arrive in   , and from it the bad occurrence is reachable by
inductive hypothesis.</p>
        <p>The second set of calls (line 15) is used to analyse the terminal events in the prefix. From the
previous point, we know that when these calls start, for all the cuts in bad_cuts the property
holds. Let  be a terminal event whose local configuration is associated to a bad marking .
Since  is in bad_markings, there must be a cut  ′ ∈ bad_cuts such that  ( ′) = . In the
unfolding, the subnet starting from  ′ and the one starting from  are isomorphic, therefore
the user cannot prevent the system to reach an occurrence of a bad place from  . To prove the
thesis, we can repeat the above reasoning about the iterations inside find_alternative.</p>
        <p>A consequence of Lemma 1 is that after firing an event in bad_events, the user cannot prevent
the system to arrive in an occurrence of a bad place, since if  ∈ bad_events, then cut() ∈
bad_cuts.</p>
        <p>Lemma 2. At the end of Algorithm 1, if a marking  belongs to the set of bad_markings, then
from any cut  of the unfolding such that  ( ) =  the user has no winning strategy, i.e.: the
user cannot prevent the occurrence of a bad place.</p>
        <p>Proof. Let  be a cut such that  ( ) =  ∈ bad_markings, we have two cases: either  is in
bad_cuts, and then this lemma is true by Lemma1, or  is not in bad_cuts, in this case, since 
is bad, there must be another cut  ′ in bad_cuts corresponding to  and such that, always by
Lemma 1, the user cannot prevent the occurrence of a bad place from it.</p>
        <p>Since  and  ′ correspond to the same marking and then their future in the unfolding are
isomorphic, the user cannot prevent the occurrence of a bad place also from  .</p>
        <p>The set of events not in bad_events can be used to construct a strategy for the user.
Remark 1. It is immediate to note that: at the end of Algorithm 1, if a reachable marking  does
not belong to bad_markings, then for any cut  such that  ( ) =  it holds:  /∈ bad_cuts.
Lemma 3. At the end of Algorithm, if a reachable marking  does not belong to bad_markings
and  =  (cut()) for some  ∈ , then, starting from any  such that  ( ) = , the user
is able to prevent the occurrence of a bad place.</p>
        <p>Proof. Since  is not in bad_markings, by the previous remark, any cut  such that  ( ) = 
does not belong to the set of bad_cuts, moreover we know that the future in the unfolding
from any such  are isomorphic. Being  not in bad_markings, and then  ∈/ bad_events, we
consider two cases. (1) There is in the prefix a condition  such that  () ∈ , and such that
 ≺ ; then, the algorithm going backward from  found a controllable event  leading to b,
 ≺  ≺ , and in conflict with an other controllable event not belonging to bad_events. The
latter event will be suggested by the strategy. (2) If there is no such condition , and there is,
always in the prefix, a terminal event ′,  ≺ ′ such that mark(′) ∈ bad_markings, then
again the algorithm going backward from (′) found a controllable event ′′, ′′ ≺ ′, in
conflict with another controllable one not belonging to the set of bad_events. Also this last one
will be suggested by the strategy.</p>
        <p>Remark 2. A consequence of Lemma 3 is that if the algorithm returns true, the user has a winning
strategy to avoid all the occurrences of bad places in the prefix, since the initial cut cannot be in
bad_cuts. Furthermore, if the algorithm returns true, the user can avoid reaching all the cuts in
bad_cuts, and to fire all the events in bad_events.</p>
        <p>Theorem 1. Algorithm 1 is correct, i.e. there is a winning strategy for the user if it returns true.
Proof. We first consider the case in which the algorithm returns false. This happens if the
function find_alternative returns false, which means that there is no controllable event (1) in
the past of an occurrence of a bad place, (2) in the past of a cut in bad_cuts, or (3) in the past of
a cut of a local configuration of a terminal event, associated to the same marking of a cut in
bad_cuts.</p>
        <p>In case (1), there is no winning strategy on the prefix, and a fortiori on the unfolding, that
extends the prefix; in case (2) the non-existence of a winning strategy is a consequence of
Lemma 1; in case (3) the non-existence of a winning strategy is a consequence of Lemma 2 and
of the isomorphism of the subnets of the unfolding starting from two cuts associated to the
same marking.</p>
        <p>Finally, we consider the case in which the algorithm returns true. This happens when any
place  in the prefix such that  () ∈  can be avoided by the strategy by choosing a controllable
event in conflict with a controllable one leading to  (see Remark 2). Let  be any terminal event.
If cut() is in bad_cuts, then the user will never fire it by following the strategy. The same
happens if cut() ̸∈ bad_cuts, but there is a place  such that  () ∈ , and  ≺ , as discussed
in Remark 2. Hence, the only terminal events that we can reach by following the strategy are
those, not belonging to bad_events, such that there is no  preeceding them such that  () ∈ .
Let  be one of such events. Since  is terminal, there must be an other event ′ in the prefix
such that mark() = mark(′). Lemma 3 guarantees that from cut(′) the user can avoid all
the occurrences of bad places. Since the part of the unfolding starting from cut() and from
cut(′) are isomorphic, we can “past” the part of the unfolding following cut(′) to cut(). We
can repeat the pasting operation for all the terminal events ′′ such that cut(′′) ̸∈ bad_cuts,
and ∄ bad place such that  ≺ ′′. In this larger prefix the user has a strategy to avoid all the
occurrences of bad places. We can repeat this pasting operation an arbitrary number of time.
For each of such prefix elongations the user has a winning strategy.</p>
        <p>Theorem 2. Algorithm 1 terminates.
Proof. This is a consequence of the finiteness of the prefix: occurrences of bad places and cut-of
events are finite in the prefix, and so is their past.</p>
        <p>
          Strategy Algorithm 1 does not explicitly provide any strategy. However, for each event
 ∈ , we can easily define a strategy in  (∘ ) by considering the set ∘  of controllable
events enabled in ∘  belonging to , namely  ( (∘ )) =  ∩ ∘ . In general, this strategy
is only partial, and not defined in some markings, but it is suficient to compute a set of good
choices for every marking that is reached in the system while following the strategy. In particular,
assume that in a certain execution the user observes the general marking . If there is no
controllable transition enabled in , then the user cannot make any choice; otherwise, we can
look for an occurrence of a cut  associated to  in the prefix, enabling a set of controllable
events. Such a cut must exist, since the prefix extends the one in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], where all the markings
are represented. Let  ∈  be an event enabled in  , and consider ∘ . All the winning choices
in  (∘ ) are also winning in , since all the events between ∘  and  are uncontrollable and
concurrent with , and the controllable events enabled in ∘  are also enabled in all the cuts
 such that  ( ) =  since the controllable component of the user is extended free-choice.
Therefore, from  (∘ ), the user cannot be sure that, while executing any of its controllable
transitions,  is not reached.
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion and related works</title>
      <p>In this work we presented a two-player game on the unfolding of a Petri net, where the goal
of the user is to avoid to reach a certain set of places, and we proposed an algorithm to check
whether the user has a winning strategy on a complete prefix of the unfolding. Although we
assume that there is no place inaccessible for the user to observe, the strategy cannot rely on
local states whose value may change due to uncontrollable transitions.</p>
      <p>
        In a previous work [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], we modelled a controlled reachability problem with a game on the
unfolding of 1-safe nets. We considered a progress constraint on the environment, leaving the
user free to decide whether to fire its transitions or not. Although also the algorithm proposed
in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] was based on a prefix of the unfolding, with the reversed progress constraint, we could
not use local configurations to decide the existence of a winning strategy. Contrary to what
happens in this game, in that context, a good strategy collects as much information as possible
before selecting a controllable choice. Because of this, for many nets the constructed prefix was
larger than the complete prefix considered in this work.
      </p>
      <p>
        Another notion of game on Petri nets was defined in 2014 by Finkbeiner and Olderog [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
In these Petri games [
        <xref ref-type="bibr" rid="ref10 ref11 ref9">9, 10, 11</xref>
        ], the players, represented by tokens of the net, are divided into
two teams: the environment and the system. The goal of the system is to avoid a given set of
markings. In their game, the players have a causal memory of their past, and get information
about the history of other players through synchronizations on the same transitions.
      </p>
      <p>
        Another important line of works considering controlled systems was started by Ramadge
and Wonham on labelled transition systems [
        <xref ref-type="bibr" rid="ref12 ref13">12, 13</xref>
        ]; starting from their theory, some authors
developed techniques based on regions to implement a controller limiting the behaviours of the
net, so to cut out undesired behaviour [
        <xref ref-type="bibr" rid="ref14 ref15">14, 15</xref>
        ]. In general, the body of works analysing control
methods on formal models is quite large, refer to [
        <xref ref-type="bibr" rid="ref16 ref17">16, 17</xref>
        ] for an overview.
      </p>
      <p>
        In our approach we do not need to compute the whole set of reachable markings to decide
whether the user has a winning strategy, but we only consider markings associated to local
configurations of the events. It is known that the complete prefix in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] can reach the dimension
of the marking graph, but in many cases it is smaller [
        <xref ref-type="bibr" rid="ref3 ref4 ref5">3, 4, 5</xref>
        ]. We plan to develop an algorithm
to compute the extension proposed in this paper and to make experiments to check how its
dimension changes.
      </p>
      <p>
        In addition we plan to consider larger classes of nets, both by considering more general user’s
components, and by considering more than two players. On this line, we plan to relate ourselves
to the works considering the analysis of multi-agent systems, such as [
        <xref ref-type="bibr" rid="ref18 ref19">18, 19</xref>
        ].
      </p>
      <p>Another extension that we are planning concerns the knowledge of the user on the system.
Since some places may contain private information, the user may not be able to ever observe
their value. In this case, the user should make the same choice in any pair of markings that are
indistinguishable from its point of view. We believe that a strategy satisfying this constraint, if
one exists, can also be found on the prefix, by restricting the choices that the algorithm currently
selects as good.</p>
      <p>
        Finally, we plan to consider diferent goals for the user, for example analysing formulas
expressed with the temporal logic ATL [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgments</title>
      <p>This work has been supported by the Italian Ministero dell’Università e della Ricerca. The
authors thank the anonymous reviewers.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>T.</given-names>
            <surname>Murata</surname>
          </string-name>
          ,
          <article-title>Petri nets: Properties, analysis and applications</article-title>
          ,
          <source>Proceedings of the IEEE</source>
          <volume>77</volume>
          (
          <year>1989</year>
          )
          <fpage>541</fpage>
          -
          <lpage>580</lpage>
          . doi:
          <volume>10</volume>
          .1109/5.24143.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J.</given-names>
            <surname>Engelfriet</surname>
          </string-name>
          ,
          <article-title>Branching processes of Petri nets</article-title>
          ,
          <source>Acta Inf</source>
          .
          <volume>28</volume>
          (
          <year>1991</year>
          )
          <fpage>575</fpage>
          -
          <lpage>591</lpage>
          . URL: https: //doi.org/10.1007/BF01463946. doi:
          <volume>10</volume>
          .1007/BF01463946.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Esparza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Römer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Vogler</surname>
          </string-name>
          ,
          <article-title>An improvement of McMillan's unfolding algorithm</article-title>
          ,
          <source>Formal Methods in System Design</source>
          <volume>20</volume>
          (
          <year>2002</year>
          )
          <fpage>285</fpage>
          -
          <lpage>310</lpage>
          . doi:
          <volume>10</volume>
          .1023/A:
          <fpage>1014746130920</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>V.</given-names>
            <surname>Khomenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Koutny</surname>
          </string-name>
          , W. Vogler,
          <article-title>Canonical prefixes of Petri net unfoldings</article-title>
          ,
          <source>Acta Informatica</source>
          <volume>40</volume>
          (
          <year>2003</year>
          )
          <fpage>95</fpage>
          -
          <lpage>118</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>B.</given-names>
            <surname>Bonet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Haslum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Khomenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Thiébaux</surname>
          </string-name>
          , W. Vogler,
          <article-title>Recent advances in unfolding technique</article-title>
          ,
          <source>Theoretical Computer Science</source>
          <volume>551</volume>
          (
          <year>2014</year>
          )
          <fpage>84</fpage>
          -
          <lpage>101</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>V.</given-names>
            <surname>Diekert</surname>
          </string-name>
          , Combinatorics on traces, volume
          <volume>454</volume>
          ,
          <string-name>
            <surname>Springer</surname>
            <given-names>Science</given-names>
          </string-name>
          &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          ,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>F.</given-names>
            <surname>Adobbati</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bernardinello</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Pomello</surname>
          </string-name>
          ,
          <article-title>A two-player asynchronous game on fully observable Petri nets</article-title>
          .,
          <source>Trans. Petri Nets Other Model. Concurr</source>
          .
          <volume>15</volume>
          (
          <year>2021</year>
          )
          <fpage>126</fpage>
          -
          <lpage>149</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>B.</given-names>
            <surname>Finkbeiner</surname>
          </string-name>
          , E. Olderog, Petri games:
          <article-title>Synthesis of distributed systems with causal memory</article-title>
          , in: A.
          <string-name>
            <surname>Peron</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          Piazza (Eds.),
          <source>Proceedings Fifth International Symposium on Games, Automata</source>
          , Logics and Formal Verification,
          <source>GandALF</source>
          <year>2014</year>
          , Verona, Italy,
          <source>September 10-12</source>
          ,
          <year>2014</year>
          , volume
          <volume>161</volume>
          <source>of EPTCS</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>217</fpage>
          -
          <lpage>230</lpage>
          . URL: https://doi.org/10.4204/EPTCS. 161.19. doi:
          <volume>10</volume>
          .4204/EPTCS.161.19.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>B.</given-names>
            <surname>Finkbeiner</surname>
          </string-name>
          , E. Olderog, Petri games:
          <article-title>Synthesis of distributed systems with causal memory</article-title>
          ,
          <source>Inf. Comput</source>
          .
          <volume>253</volume>
          (
          <year>2017</year>
          )
          <fpage>181</fpage>
          -
          <lpage>203</lpage>
          . URL: https://doi.org/10.1016/j.ic.
          <year>2016</year>
          .
          <volume>07</volume>
          .006. doi:
          <volume>10</volume>
          .1016/j.ic.
          <year>2016</year>
          .
          <volume>07</volume>
          .006.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gieseking</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Olderog</surname>
          </string-name>
          ,
          <string-name>
            <surname>N.</surname>
          </string-name>
          <article-title>Würdemann, Solving high-level Petri games</article-title>
          ,
          <source>Acta Informatica</source>
          <volume>57</volume>
          (
          <year>2020</year>
          )
          <fpage>591</fpage>
          -
          <lpage>626</lpage>
          . URL: https://doi.org/10.1007/s00236-020-00368-5. doi:
          <volume>10</volume>
          .1007/ s00236-020-00368-5.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>B.</given-names>
            <surname>Finkbeiner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gieseking</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hecking-Harbusch</surname>
          </string-name>
          , E. Olderog,
          <article-title>Global winning conditions in synthesis of distributed systems with causal memory</article-title>
          , in: F.
          <string-name>
            <surname>Manea</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Simpson (Eds.),
          <source>30th EACSL Annual Conference on Computer Science Logic, CSL 2022, February 14-19</source>
          ,
          <year>2022</year>
          , Göttingen, Germany (Virtual Conference), volume
          <volume>216</volume>
          of LIPIcs,
          <source>Schloss Dagstuhl - Leibniz-Zentrum für Informatik</source>
          ,
          <year>2022</year>
          , pp.
          <volume>20</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          :
          <fpage>19</fpage>
          . URL: https://doi.org/10.4230/LIPIcs. CSL.
          <year>2022</year>
          .
          <volume>20</volume>
          . doi:
          <volume>10</volume>
          .4230/LIPIcs.CSL.
          <year>2022</year>
          .
          <volume>20</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Ramadge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. M.</given-names>
            <surname>Wonham</surname>
          </string-name>
          ,
          <article-title>Supervisory control of a class of discrete event processes</article-title>
          ,
          <source>SIAM journal on control and optimization 25</source>
          (
          <year>1987</year>
          )
          <fpage>206</fpage>
          -
          <lpage>230</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Ramadge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. M.</given-names>
            <surname>Wonham</surname>
          </string-name>
          ,
          <article-title>The control of discrete event systems</article-title>
          ,
          <source>Proceedings of the IEEE</source>
          <volume>77</volume>
          (
          <year>1989</year>
          )
          <fpage>81</fpage>
          -
          <lpage>98</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ghafari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Rezg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Xie</surname>
          </string-name>
          ,
          <article-title>Design of a live and maximally permissive Petri net controller using the theory of regions</article-title>
          ,
          <source>IEEE Transactions on Robotics and Automation</source>
          <volume>19</volume>
          (
          <year>2003</year>
          )
          <fpage>137</fpage>
          -
          <lpage>141</lpage>
          . doi:
          <volume>10</volume>
          .1109/TRA.
          <year>2002</year>
          .
          <volume>807555</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Jeng</surname>
          </string-name>
          ,
          <article-title>A maximally permissive deadlock prevention policy for FMS based on Petri net siphon control and the theory of regions</article-title>
          ,
          <source>IEEE Transactions on Automation Science and Engineering</source>
          <volume>5</volume>
          (
          <year>2008</year>
          )
          <fpage>182</fpage>
          -
          <lpage>188</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Giua</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Silva</surname>
          </string-name>
          ,
          <article-title>Petri nets and automatic control: A historical perspective</article-title>
          ,
          <source>Annual Reviews in Control</source>
          <volume>45</volume>
          (
          <year>2018</year>
          )
          <fpage>223</fpage>
          -
          <lpage>239</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>W.</given-names>
            <surname>Wonham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Cai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Rudie</surname>
          </string-name>
          ,
          <article-title>Supervisory control of discrete-event systems: A brief history</article-title>
          ,
          <source>Annual Reviews in Control</source>
          <volume>45</volume>
          (
          <year>2018</year>
          )
          <fpage>250</fpage>
          -
          <lpage>256</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>W.</given-names>
            <surname>Jamroga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Penczek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Sidoruk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Dembinski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. W.</given-names>
            <surname>Mazurkiewicz</surname>
          </string-name>
          ,
          <article-title>Towards partial order reductions for strategic ability</article-title>
          ,
          <source>J. Artif. Intell. Res</source>
          .
          <volume>68</volume>
          (
          <year>2020</year>
          )
          <fpage>817</fpage>
          -
          <lpage>850</lpage>
          . URL: https: //doi.org/10.1613/jair.1.11936. doi:
          <volume>10</volume>
          .1613/jair.1.11936.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>R.</given-names>
            <surname>Lukomski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Wilkosz</surname>
          </string-name>
          ,
          <article-title>Modeling of multi-agent system for power system topology verification with use of Petri nets</article-title>
          ,
          <source>in: 2010 Modern Electric Power Systems</source>
          , IEEE,
          <year>2010</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>R.</given-names>
            <surname>Alur</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. A.</given-names>
            <surname>Henzinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Kupferman</surname>
          </string-name>
          ,
          <article-title>Alternating-time temporal logic</article-title>
          ,
          <source>J. ACM</source>
          <volume>49</volume>
          (
          <year>2002</year>
          )
          <fpage>672</fpage>
          -
          <lpage>713</lpage>
          . URL: https://doi.org/10.1145/585265.585270. doi:
          <volume>10</volume>
          .1145/585265.585270.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>