=Paper= {{Paper |id=Vol-3167/paper6 |storemode=property |title=Deadlocks and Livelocks in Resource Constrained Workflow Nets |pdfUrl=https://ceur-ws.org/Vol-3167/paper6.pdf |volume=Vol-3167 |authors=Gabriel Juhás,Ana Juhásova,Tomáš Kováčik |dblpUrl=https://dblp.org/rec/conf/apn/JuhasJK22 }} ==Deadlocks and Livelocks in Resource Constrained Workflow Nets== https://ceur-ws.org/Vol-3167/paper6.pdf
Deadlocks and livelocks in resource constrained
workflow nets
Gabriel Juhás1 , Ana Juhásová2 and Tomáš Kováčik1
1
  Faculty of Electrical Engineering and Information Technology, Slovak University of Technology in Bratislava,
Ilkovičova 3, 812 19 Bratislava, Slovakia
2
  BIREGAL s.r.o. Klincová 37/B, 821 08 Bratislava, Slovakia


                  Abstract
                  The paper is presenting a method for detection of locks (both deadlocks and livelocks) in discrete event
                  systems with shared resources and multiple instances modeled by resource constrained workflow nets.
                  We consider that multiple instances with determined initial state and a correct final state are running
                  in workflow nets. We consider workflow processes, in which instances can share several types of
                  resources, with instances neither creating nor destroying shared resources. It means, that instances
                  can use resources but the used resources are returned at the latest by the correct finish of the instance.
                  Such resources are said to be durable. Examples of durable resources include resources of information
                  systems, such as memory and processors or employees in roles in an organizational structure. We
                  consider processes, which have enough resources to execute a single instance, such processes are said to
                  be sound. A lock is a state of the process, where several instances are running but because of the lack
                  of shared resources not all running instances can finish properly. The main result of the paper is the
                  theorem stating that in sound workflow processes with several types of shared durable resources for
                  given initial number of resources and an arbitrary unbounded number of running instances it is enough
                  to test locks for a finite bounded number of instances, with the upper bound indicated.

                   Keywords
                   Petri net, Deadlock, Livelock, Resource constrained workflow net




1. Introduction
In [1] authors work with workflow processes with instances, in which instances share common
resources. The processes are modeled by resource constrained workflow nets, where shared
resources are modeled by so called static places. Except shared resources, instances are inde-
pendent. Shared resources considered in [1] are durable, i.e. the resources are neither created
nor destroyed by instances. Resources in information systems, such as memory, processors,
i/o ports are typical examples of durable resources. Similarly, employees in particular roles
considered by workflow processes can represent an example of durable resources.
   The main problem solved in [1] is the problem of correct finish of all instances of a workflow
process with shared durable resources. The problem is solved for processes with one type of
durable resources. The method from [1] decides whether there is a number of shared resources

The Workshop Algorithms & Theories for the Analysis of Event Data (ATAED 2022): A Satellite Event of the 43rd
International Conference on Application and Theory of Petri Nets and Concurrency, June 19 - 24, 2022, Bergen, Norway
$ gabriel.juhas@stuba.sk (G. Juhás); ana.juhasova@biregal.sk (A. Juhásová); tomas_kovacik@stuba.sk (T. Kováčik)
 0000-0001-8302-5112 (G. Juhás); 0000-0003-3157-8609 (T. Kováčik)
    © 2022 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
    CEUR Workshop Proceedings (CEUR-WS.org)
such that for this number of resources and any greater number of resources any number of
instances can be correctly finished. If the answer is true, then the workflow process is according
to [1] called sound.
   In [2] authors solve the soundness problem for several subclasses of resource constrained
workflow nets. In [3] four necessary conditions of soundness of resource constrained workflow
nets based on structural analysis are presented.
   In [4, 5] we defined a technique based on a constructor and a runtime net to detect instance
deadlocks of resource constrained workflow nets (called workflow nets with static places) for
a fixed number of durable resources and an arbitrary number of instances. However, method
from [4] did not work for livelocks.
   In [6, 7] authors using a technique based on constructor and using a transformed net from
[4] (called production net in [6, 7]) proved that the soundness problem for resource constrained
workflow nets which are sound for one instance, is decidable even for the case where resources
are not durable. The proof is based on the reduction to the home space problem of Petri nets,
which was proved to be decidable in [8]. At the same time, the papers [6, 7] prove that in general,
i.e. if the soundness for one instance is not required and the resources does not necessarily need
to be durable, the problem of soundness in resource constrained workflow nets is undecidable.
In [9] authors using the constructor from [4] proved, that if the nets are sound for one case, then
the soundness problem is decidable even if the instances are not independent (the investigated
net corresponding to our runtime net is not serializable). For more about serializability see
e.g. [10, 11]. Paper [9] extends an unsuccessful attempt to prove decidability of soundness for
resource constrained workflow nets presented in [12]. In the proof of results from [9] authors
again used reduction to home space problem of Petri nets. As it is written at the end of the
paper [9], soundness of resource constrained workflow nets is decidable, but up to now there
is no effective algorithm, because the algorithm proposed in [9] requires the test of general
reachability in possibly unbounded Petri nets [13, 14, 15, 16, 17]. The similar argument can be
found at the end of original paper solving home space problem [8].
   There are workflow processes, which for some fixed initial number of shared resources can
correctly finish any number of instances, but for some greater number of shared resources
the same process cannot finish for some number of instances running in parallel. Thus, such
processes are not sound according to the definition of [1, 9]. An example of such a not sound
process is on Figure 1, which can finish any number of instances for the given number of shared
resources in static places free key, free memory, free processor. However, adding any number of
resources to the static place free key will cause that the process may deadlock for the number
of instances greater than 3. In general, once the number of resources in the place free key is
smaller than the sum of free resources in places free memory and free processor, then the process
will have no deadlock, otherwise it will contain a deadlock for any number of instances greater
of equal the sum of shared resources in places free memory and free processor.
   In this work we will prove, that in order to decide, whether the workflow process with
arbitrary finite number of resource types and arbitrary unbounded number of instances with
fixed initial number of durable shared resources will contain a lock (i.e. a deadlock or a liveclock),
it suffices to check the existence of locks for bounded number of instances. We also will show
how to compute such upper bounds.
                                                                             free key




                                                                                key




                                                                           free memory




      waiting for memory      memory allocation      memory allocated        memory         memory to dispose      memory dispose      memory disposed




 in        task begin                                computation begin     computation       computation end                               task end         out




      waiting for processor   processor allocation   processor allocated     processor      processor to dispose   processor dispose   processor disposed




                                                                           free processor




Figure 1: A marked remembering workflow net with static places, modeling allocation of memory
units and processors to computing tasks with possibility to constrain the number of tasks, which can be
executed in parallel.


2. Labelled transition systems
As a basic model of process behaviour we will use labelled transition systems [18, 19].

Definition 1 (Labelled transition system).
A labelled transition system is an ordered triple (𝑆, 𝐸, −→), where

       • 𝑆 is a set of states,
       • 𝐸 is a set of events,
       • −→⊆ 𝑆 × 𝐸 × 𝑆 is a transition relation.
                                                                                               𝑒
The fact, that (𝑠, 𝑒, 𝑠′ ) belongs to −→ is referred as 𝑠 −→ 𝑠′ .

  We will use labelled transition systems that have determined an initial state from which any
other state is reachable.
  To define reachability of states, we first define the notion of a sequence and the notion of an
index set.

Definition 2 (Index set).
Index set I is a subset of positive integers satisfying: if a positive integer 𝑖 belongs to the index set I,
then any positive integer smaller than 𝑖 belongs to the index set I. If I is a finite nonempty set with
the maximum 𝑛, then the number 𝑛 is referred as 𝑚𝑎𝑥I . If I is the empty set, then 𝑚𝑎𝑥I = 0.
Definition 3 (Sequence).
Let I be an index set and 𝑆 be a set. Then a function 𝛼 : I → 𝑆 associating an element 𝛼(𝑖) from
the set 𝑆 to each index 𝑖 from the index set I, is called a sequence of elements from the set 𝑆. If I is
a finite set, then we say that 𝛼 is finite sequence with length 𝑚𝑎𝑥I . Especially, if I is the empty set,
then we say that 𝛼 is the empty sequence. If I is equal to the set of all positive integers, then we say
that 𝛼 is an infinite sequence.

   For illustration, consider a sequence of characters 𝛼 = 𝑎𝑏𝑏𝑎 from the set of characters
𝑆 = {𝑎, 𝑏}. Intuitively, we understand that it is a finite sequence with length 4. In accordance
with Definition 2 we use the index set I = {1, 2, 3, 4}. The sequences 𝛼 is formalized as follows:
𝛼(1) = 𝑎, 𝛼(2) = 𝑏, 𝛼(3) = 𝑏 a 𝛼(4) = 𝑎, i.e. the first element of the sequence 𝛼 is character
𝑎, the second element is 𝑏, the third element is again 𝑏 a the fourth element is character 𝑎.

Definition 4 (Occurrence sequence, reachability).
Let (𝑆, 𝐸, −→) be a labelled transition systems. Let 𝑠 ∈ 𝑆 be a state and let 𝜖 : I → 𝐸 be a finite
sequence of events. Sequence 𝜖 can occur in state 𝑠 iff there exists a function 𝜎 : I ∪ {0} → 𝑆
                                                                      𝜖(𝑖)
such that 𝜎(0) = 𝑠 and for each positive integer 𝑖 ∈ I: 𝜎(𝑖 − 1) −→ 𝜎(𝑖). The occurrence of the
sequence 𝜖 in the state 𝑠 leads to the state 𝜎(𝑚𝑎𝑥I ).
   A state 𝑠′ ∈ 𝑆 is reachable from a state 𝑠 iff there is an occurrence sequence 𝜖, which leads from
𝑠 to 𝑠′ .
   The fact that a finite sequence 𝜖 can occur in 𝑠 and its occurrence leads to 𝑠′ is referred as
    𝜖
𝑠 −→ 𝑠′ .

  Remember, that according to Definition 4 for any state 𝑠 we have: the empty sequence can
occur in 𝑠 and its occurrence leads to 𝑠, i.e. 𝑠 is self-reachable by occurrence of the empty
sequence.

Definition 5 (Pointed labelled transition system).
A pointed labelled transitions system is an ordered quadruple (𝑆, 𝐸, −→, 𝑞), where (𝑆, 𝐸, −→) is
a labelled transition system and 𝑞 ∈ 𝑆 is its initial state, while for each state 𝑠 ∈ 𝑆 there holds
that 𝑠 is reachable from 𝑞.


3. Petri nets
In this section we briefly introduce the basic definition of Petri nets [20, 21, 22, 23, 24, 25].

Definition 6 (Petri net).
A Petri net is an ordered quadruple (𝑃, 𝑇, 𝐼, 𝑂), where:

    • 𝑃 is a set of places
    • 𝑇 is a set of transitions
    • 𝑃 ∩𝑇 =∅
    • 𝐼 : 𝑃 × 𝑇 → N is an input function, where N stands for the set of non-negative integers.
    • 𝑂 : 𝑃 × 𝑇 → N is an output function.
  A state of a Petri net is given by a marking.

Definition 7 (Marking).
Let 𝑃 𝑁 = (𝑃, 𝑇, 𝐼, 𝑂) be a Petri net. A function 𝑚 : 𝑃 → N attaching a non-negative integer to
each place is called a marking of Petri net 𝑃 𝑁 . The value 𝑚(𝑝) defines the number∑︀of tokens in a
place 𝑝 ∈ 𝑃 . A marking will be written in form of a sum of marking of places, i.e. 𝑝∈𝑃 𝑚(𝑝)𝑝.
The set of places, for which 𝑚(𝑝) is greater than zero, is called the support of marking 𝑚 and is
denoted by 𝑠𝑢𝑝(𝑚), formally for each 𝑝 ∈ 𝑃 there holds that 𝑝 belongs to 𝑠𝑢𝑝(𝑚) iff 𝑚(𝑝) > 0.

  Places can be understood as types of tokens. As an example, if a set of places is given by
𝑃 = {𝑎, 𝑏, 𝑐}, we have three types of tokens, tokens of type 𝑎, tokens of type 𝑏 and tokens of
type 𝑐. Consider a marking 𝑚 : 𝑃 → N such that 𝑚(𝑎) = 2, 𝑚(𝑏) = 0 and finally 𝑚(𝑐) = 1. It
means, that the marking expresses a state with two tokens of type 𝑎, no tokens of type 𝑏 and
one token of type 𝑐, which will be expressed by expression 2𝑎 + 0𝑏 + 1𝑐, or more simply by
expression
∑︀          2𝑎 + 𝑐 (i.e. two tokens of type 𝑎 and a token of type 𝑐), generally by expression
   𝑝∈𝑃 𝑚(𝑝)𝑝.
  The fact, that for markings 𝑚 and 𝑚′ there holds 𝑚(𝑝) ≤ 𝑚′ (𝑝) for each 𝑝 ∈ 𝑃 , is denoted
by 𝑚 ≤ 𝑚′ . Further, 𝑚 < 𝑚′ , respectively 𝑚′ > 𝑚 denotes the fact that 𝑚 ≤ 𝑚′ and there
exists 𝑝 ∈ 𝑃 such that 𝑚(𝑝) < 𝑚′ (𝑝). If 𝑚 < 𝑚′ , we say that 𝑚 is smaller than 𝑚′ , and 𝑚′ is
greater than 𝑚, respectively. The sum of two markings 𝑚 a 𝑚′ is marking 𝑚 + 𝑚′ such that
(𝑚 + 𝑚′ )(𝑝) = 𝑚(𝑝) + 𝑚′ (𝑝) for each 𝑝 ∈ 𝑃 . If 𝑚 ≤ 𝑚′ , then the difference of markings 𝑚′ a
𝑚 is given by marking 𝑚′ − 𝑚 such that (𝑚′ − 𝑚)(𝑝) = 𝑚′ (𝑝) − 𝑚(𝑝) for each 𝑝 ∈ 𝑃 .
  Dynamics of a Petri net is given by firing of transitions.

Definition 8 (Transition firing).
Let 𝑃 𝑁 = (𝑃, 𝑇, 𝐼, 𝑂) be a Petri net. Let 𝑚 : 𝑃 → N be a marking and 𝑡 ∈ 𝑇 be a transition
of the net 𝑃 𝑁 . Transition 𝑡 is enabled to fire in marking 𝑚 iff for each 𝑝 ∈ 𝑃 there holds:
𝑚(𝑝) ≥ 𝐼(𝑝, 𝑡).
   If transition 𝑡 is enabled to fire in marking 𝑚, then its firing in 𝑚 leads to marking 𝑚′ such that
for each 𝑝 ∈ 𝑃 there holds: 𝑚′ (𝑝) = 𝑚(𝑝) − 𝐼(𝑝, 𝑡) + 𝑂(𝑝, 𝑡).

 We will consider that a Petri net has initial marking. A Petri net together with an initial
marking will be referred as marked Petri net.

Definition 9 (Marked Petri net).
A marked Petri net is an ordered quintuple 𝑀 𝑃 𝑁 = (𝑃, 𝑇, 𝐼, 𝑂, 𝑚0 ), where 𝑃 𝑁 = (𝑃, 𝑇, 𝐼, 𝑂)
is a Petri net and 𝑚0 is a marking of 𝑃 𝑁 called initial marking.

   Graphically places are depicted as circles, markings of places by number of tokens inside
of places, transitions are depicted as squares. Enabled transitions are filled (by green color).
Non-zero value of input function 𝐼(𝑝, 𝑡) is expressed by an arrow from place 𝑝 to transition
𝑡, while the value greater than one is written by the arc. Non-zero value of output function
𝑂(𝑝, 𝑡), is expressed by an arrow from transition 𝑡 to place 𝑝, while the value greater than one is
written by the arc. These non-zero values will be referred as weights of arcs. All Petri nets used
in this work where modelled in an online Petri net editor, accessible at www.petriflow.com.
   Petri nets defines a labelled transition system in a natural way by firing enabled transitions.
Definition 10 (Reachability graph of a Petri net).
Let 𝑃 𝑁 = (𝑃, 𝑇, 𝐼, 𝑂) be a Petri net. A labelled transition system (𝑆, 𝐸, −→), where

    • 𝑆 is the set of all markings, i.e. the set of all functions from 𝑃 to non-negative integers N,
    • 𝐸 = 𝑇,
            𝑡
    • 𝑚 −→ 𝑚′ iff transition 𝑡 is enabled to fire in marking 𝑚 and firing of 𝑡 in 𝑚 leads to
      marking 𝑚′ ,

is called reachability graph of Petri net 𝑃 𝑁 .

  We also define reachability graphs of marked Petri nets.

Definition 11. (Reachability graph of a marked Petri Net)
Let 𝑀 𝑃 𝑁 = (𝑃, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a marked Petri net. Let (𝑆, 𝐸, −→) be reachability graph
of Petri net 𝑃 𝑁 = (𝑃, 𝑇, 𝐼, 𝑂). Let [𝑚0 ⟩ denote the set of all markings reachable from 𝑚0
in reachability graph of Petri net 𝑃 𝑁 . Then pointed labelled transition system ([𝑚0 ⟩, 𝐸, −→
∩([𝑚0 ⟩ × 𝐸 × [𝑚0 ⟩), 𝑚0 ) is called reachability graph of marked Petri net 𝑀 𝑃 𝑁 . If sequence
𝜖 can occur in 𝑚 and its occurrence in 𝑚 leads to 𝑚′ in the reachability graph of 𝑀 𝑃 𝑁 , then
we say that sequence 𝜖 is enabled to fire in marking 𝑚 in net 𝑀 𝑃 𝑁 and its firing in 𝑚 leads to
the marking 𝑚′ in net 𝑀 𝑃 𝑁 . We also say that marking 𝑚′ is reachable from marking 𝑚 in the
marked Petri net 𝑀 𝑃 𝑁 .

Definition 12 (Boundedness).
A marked Petri net 𝑀 𝑃 𝑁 = (𝑃, 𝑇, 𝐼, 𝑂, 𝑚0 ) is bounded iff there exists a function 𝑏 : 𝑃 → N,
such that for each marking 𝑚 reachable from 𝑚0 in 𝑀 𝑃 𝑁 there holds: 𝑚 ≤ 𝑏. Function 𝑏 is
called the bound of net 𝑀 𝑃 𝑁 .

   In the case that a marked Petri net has finitely many places is the boundedness equivalent
with the finiteness of the number of reachable markings. For more results on boundedness see
e.g. [26, 27, 28].

Corollary 1. A marked Petri net 𝑀 𝑃 𝑁 = (𝑃, 𝑇, 𝐼, 𝑂, 𝑚0 ) with finite set of places is bounded
iff the number of markings reachable from 𝑚0 in 𝑀 𝑃 𝑁 is finite.


4. Workflow nets
We focus on processes, where instances has a unique start and unique correct finish. In literature,
such systems are modeled by workflow nets [29, 30, 31, 32].

Definition 13 (Workflow net).
A workflow net is a Petri net 𝑃 𝑁 = (𝑃, 𝑇, 𝐼, 𝑂) with finite number of places and transitions in
which there exists a unique place 𝑖𝑛 ∈ 𝑃 and a unique place 𝑜𝑢𝑡 ∈ 𝑃 such that

    • for each 𝑡 ∈ 𝑇 there holds 𝑂(𝑖𝑛, 𝑡) = 0 and there exists such 𝑡 ∈ 𝑇 that 𝐼(𝑖𝑛, 𝑡) ̸= 0,
    • for each 𝑡 ∈ 𝑇 there holds 𝐼(𝑜𝑢𝑡, 𝑡) = 0 and there exists such 𝑡 ∈ 𝑇 that 𝑂(𝑜𝑢𝑡, 𝑡) ̸= 0.
Place 𝑖𝑛 is called input place of workflow net 𝑃 𝑁 and place 𝑜𝑢𝑡 is called output place of workflow
net 𝑃 𝑁 .

  A marked workflow net is a workflow net with a special initial marking, in which only the
input place is marked.

Definition 14 (Marked workflow net).
A marked workflow net is a marked Petri net 𝑀 𝑃 𝑁 = (𝑃, 𝑇, 𝐼, 𝑂, 𝑚0 ), where 𝑃 𝑁 = (𝑃, 𝑇, 𝐼, 𝑂)
is a workflow net and 𝑚0 = 𝑖𝑛, i.e. 𝑚0 (𝑖𝑛) = 1 and 𝑚0 (𝑝) = 0 for each 𝑝 ∈ 𝑃 different from 𝑖𝑛.


5. Petri nets and workflow nets with static places
Processes with instances and shared resources will be modeled by Petri nets with static places
[4, 5]. Static places inspired by static variables in Java will model shared resources. Petri nets
with static places were inspired by workflow nets with static places originally defined in papers
[33, 1, 3] under the name resource constrained workflow nets.

Definition 15 (Petri net with static places).
Petri net with static places is a quintuple 𝑃 𝑁 𝑆 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂), where
    • 𝐷 is a set of dynamic places
    • 𝑆 is a set of static places
    • 𝐷∩𝑆 =∅
    • 𝑃 𝑁 = (𝑃 = 𝐷 ∪ 𝑆, 𝑇, 𝐼, 𝑂) is a Petri net.

  Static places will be depicted by dashed circles.

Definition 16. (Marked Petri net with static places)
Marked Petri net with static places is a sextuple 𝑀 𝑃 𝑁 𝑆 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ), where
    • 𝑃 𝑁 𝑆 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂) is a Petri net with static places
    • 𝑀 𝑃 𝑁 = (𝑃 = 𝐷 ∪ 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) is marked Petri net.
We say that a transition is enabled to fire in a marked Petri net with static places 𝑀 𝑃 𝑁 𝑆 if it is
enabled to fire in marked Petri net 𝑀 𝑃 𝑁 . A reachability graph of a marked Petri net with static
places 𝑀 𝑃 𝑁 𝑆 is the reachability graph of marked Petri net 𝑀 𝑃 𝑁 . All notion defined for marked
Petri net 𝑀 𝑃 𝑁 will analogously used for marked Petri net with static places 𝑀 𝑃 𝑁 𝑆.

Definition 17. (Workflow net with static places/resource constrained workflow net) A
workflow net with static places, also called resource constrained workflow net, is a Petri net with
static places 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂), where 𝑃 𝑁 = (𝑃 = 𝐷 ∪ 𝑆, 𝑇, 𝐼, 𝑂) is a workflow net such
that 𝑖𝑛 ∈ 𝐷 and 𝑜𝑢𝑡 ∈ 𝐷.

  Initial marking of a marked workflow net with static places contains one token in the input
place, no tokens in dynamic places different from the input place and any number of tokens
representing shared resources in static places.
Definition 18. (Marked workflow net with static places)
A marked workflow net with static places is a sextuple 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ), where

    • 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂) is a workflow net with static places
    • 𝑚0 is initial marking such that 𝑚(𝑖𝑛) = 1 and 𝑚(𝑑) = 0 for each dynamic place 𝑑 ∈ 𝐷,
      which is different from 𝑖𝑛.

  In comparison with [33, 1, 3] we formalize durable resources via (weak) complementary
places [34] of static places.

Definition 19. (Remembering workflow net with static places)
Let 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂) be such workflow net with static places, that for each places 𝑠 ∈ 𝑆 there
exists a unique (weak)complementary place 𝑑𝑠 ∈ 𝐷 different from 𝑖𝑛 and 𝑜𝑢𝑡, which for each
𝑡 ∈ 𝑇 satisfies 𝐼(𝑑𝑠 , 𝑡) − 𝑂(𝑑𝑠 , 𝑡) = 𝑂(𝑠, 𝑡) − 𝐼(𝑠, 𝑡). Workflow net 𝑊 is called remembering
workflow net with static places. The set of all complementary places of static places is denoted by
𝐷𝑆 .

   The equality 𝐼(𝑑𝑠 , 𝑡) − 𝑂(𝑑𝑠 , 𝑡) = 𝑂(𝑠, 𝑡) − 𝐼(𝑠, 𝑡) in a marked remembering workflow net
with static places implies that in case that 𝑂(𝑠, 𝑡)−𝐼(𝑠, 𝑡) = 0, we also have 𝐼(𝑑𝑠 , 𝑡)−𝑂(𝑑𝑠 , 𝑡) =
0. It means, that firing any transition may create a token in a complementary place 𝑑𝑠 of a
static place 𝑠 iff it consumes a token from the static place 𝑠. Because in any initial marking
the complementary place 𝑑𝑠 is empty, we get that the sum of tokens in a static place 𝑠 and its
complementary place 𝑑𝑠 equals 𝑚0 (𝑠).

Corollary 2. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a marked remembering workflow net with static
places. Let 𝑠 ∈ 𝑆 be a static place and let 𝑑𝑠 ∈ 𝐷𝑆 be its complementary place. Then for each
marking 𝑚 reachable from 𝑚0 there holds: 𝑚(𝑠) + 𝑚(𝑑𝑠 ) = 𝑚0 (𝑠) and therefore 𝑚(𝑠) ≤ 𝑚0 (𝑠).

   1-soundness of a marked workflow net with static places is defined analogously to soundness
of workflow nets in [32] as the ability to finish correctly a single instance.

Definition 20. (Final marking of marked workflow net with static places)
Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a marked workflow net with static places. A marking 𝑚𝑓
of net 𝑀 𝑊 reachable from 𝑚0 is called a final marking of 𝑀 𝑊 iff there holds: 𝑚𝑓 (𝑜𝑢𝑡) = 1,
𝑚𝑓 (𝑑) = 0 for each 𝑑 ∈ 𝐷 different from 𝑜𝑢𝑡.

Definition 21. (1-soundness of marked workflow net with static places)
Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a marked workflow net with static places and let 𝑜𝑢𝑡 ∈ 𝑃
denote the output place. Marked workflow net with static places 𝑀 𝑊 is 1-sound iff for each
marking 𝑚 reachable from 𝑚0 there holds:

    • there exists a final marking 𝑚𝑓 of net 𝑀 𝑊 , which is reachable from marking 𝑚,
    • if 𝑚(𝑜𝑢𝑡) ≥ 1 then 𝑚 is a final marking of net 𝑀 𝑊 .

  For marked remembering workflow nets with static places we have:
Corollary 3. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a marked remembering workflow net with static
places and let 𝑚𝑓 be a final marking of 𝑀 𝑊 . Then 𝑚𝑓 (𝑠) = 𝑚0 (𝑠) for each 𝑠 ∈ 𝑆 and therefore
𝑚𝑓 is a unique final marking of 𝑀 𝑊 .

  For 1-sound marked remembering workflow nets with static places we get:

Lemma 1. If a marked remembering workflow net with static places is 1-sound then the number
of its reachable markings is finite, i.e. the net is bounded.

Proof. Let the number of markings reachable from 𝑚0 is not finite. According to Dickson’s
lemma [35], let 𝑚 and 𝑚′ are markings reachable from 𝑚0 such that 𝑚 < 𝑚′ . From definition
of 1-soundness we get that 𝑚′ (𝑜𝑢𝑡) = 1 or 𝑚′ (𝑜𝑢𝑡) = 0 and 𝑚(𝑜𝑢𝑡) = 1 or 𝑚(𝑜𝑢𝑡) = 0.
Because 𝑚 < 𝑚′ , we also get 𝑚(𝑠) ≤ 𝑚′ (𝑠) for each 𝑠 ∈ 𝑆.

    • The combination 𝑚′ (𝑜𝑢𝑡) = 1 and 𝑚(𝑜𝑢𝑡) = 1 means that 𝑚′ = 𝑚𝑓 = 𝑚, what
      contradicts that 𝑚 < 𝑚′ .
    • The combination 𝑚′ (𝑜𝑢𝑡) = 0 and 𝑚(𝑜𝑢𝑡) = 1 is in contradiction with 𝑚 < 𝑚′ .
    • The combination 𝑚′ (𝑜𝑢𝑡) = 1 and 𝑚(𝑜𝑢𝑡) = 0 means that 𝑚′ = 𝑚𝑓 . Assuming that
      𝑚𝑓 > 𝑚 we get 𝑚(𝑑) = 0 for each 𝑑 ∈ 𝐷). From first item of 1-soundness we further
      get that 𝑚𝑓 is reachable from 𝑚 by firing of a sequence of transitions. From definition of
      transition firing it is clear that whenever a sequence is enabled to fire from a marking, it
      is enabled to fire from any greater marking, and therefore also from 𝑚𝑓 . Because firing
      of that sequence leads from 𝑚 to 𝑚𝑓 , its firing from 𝑚𝑓 leads to the marking 𝑚′′ such
      that 𝑚′′ (𝑜𝑢𝑡) = 𝑚𝑓 (𝑜𝑢𝑡) + (𝑚𝑓 (𝑜𝑢𝑡) − 𝑚(𝑜𝑢𝑡)), i.e. 𝑚′′ (𝑜𝑢𝑡) = 1 + (1 − 0)) = 2,
      what contradicts with the second item of 1-soundness implying that for each marking
      𝑚′′ reachable from 𝑚0 there holds 𝑚′′ (𝑜𝑢𝑡) ≤ 1.
    • The combination 𝑚′ (𝑜𝑢𝑡) = 0 a 𝑚(𝑜𝑢𝑡) = 0 means by assumption 𝑚 < 𝑚′ , that there
      exists 𝑝 ∈ 𝑃 different from 𝑜𝑢𝑡 such that 𝑚′ (𝑝) > 𝑚(𝑝). At the same time from the
      first item of 1-soundness we get that 𝑚𝑓 is reachable from 𝑚 by firing a sequence of
      transitions. From definition of transition firing it is clear that whenever a sequence
      is enabled to fire from a marking, it is enabled to fire from any greater marking, and
      therefore also from 𝑚′ . Because firing of that sequence leads from 𝑚 to 𝑚𝑓 , its firing from
      𝑚′ leads to the marking 𝑚′′ = 𝑚′ + (𝑚𝑓 − 𝑚). Because 𝑚′ (𝑜𝑢𝑡) = 0 and 𝑚(𝑜𝑢𝑡) = 0,
      we get 𝑚′′ (𝑜𝑢𝑡) = 1. At the same time 𝑚′ (𝑝) > 𝑚(𝑝). If 𝑝 ∈ 𝐷, we get 𝑚′′ (𝑝) > 0,
      what contradicts the second item of 1-soundness. If 𝑝 ∈ 𝑆, we get 𝑚′′ (𝑝) > 𝑚𝑓 (𝑝), what
      contradicts Corollaries 2 a 3.

It means that if a marked remembering workflow net with static places is 1-sound, then the
number of its reachable markings is finite and therefore the net is bounded.            □


6. Reachability nets
In order to investigate the ability to finish properly arbitrary number of instances running in
parallel, we need to find a net, which will simulate the runtime environment with copies of a
dynamic part of a workflow net for each instance sharing just static places. Such a net should
prohibit the mixing of tokens from different copies. In other words, the net simulating the
runtime environment should separate reachable markings of dynamic places of instances. One
possible way to reach this goal is to use the reachability graph of the original workflow net as
an inspiration.
  First we will define some basic notions which will be further used to define such so called
reachability net.

Definition 22 (Notation).
Let 𝑃 be a set, let 𝐴 be a set and let 𝐷 be a set such that 𝐷 ⊆ 𝑃 . Let 𝑚 : 𝑃 → 𝐴 be a function.
Let 𝑚|𝐷 denote restriction of 𝑚 to 𝐷, i.e. 𝑚|𝐷 : 𝐷 → 𝐴 such that 𝑚|𝐷(𝑑) = 𝑚(𝑑) for each
𝑑 ∈ 𝐷. Let 𝑆 be a set such that 𝑆 ⊆ 𝑃 , and let 𝐷 ∩ 𝑆 = ∅ (𝐷 a 𝑆 are disjoint), then we denote
𝑚|𝐷 ∪ 𝑚|𝑆 = 𝑚|(𝐷 ∪ 𝑆). Let us denote by 𝑃 ∖ 𝐷 the set difference 𝑃 and 𝐷, as a set satisfying
𝐷 ∩ (𝑃 ∖ 𝐷) = ∅ and (𝑃 ∖ 𝐷) ∪ 𝐷 = 𝑃 (we define the set difference only for the case that 𝐷 is a
subset of 𝑃 ). Let [𝑃 → 𝐴] denote the set of all functions from 𝑃 to 𝐴. For 𝐴 being a finite set, let
|𝐴| denote the number of elements of 𝐴.

Definition 23 (Set of reachable D-markings).
Let 𝑀 𝑃 𝑁 = (𝑃, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a marked Petri net. Let 𝐷 be a subset of places, i.e. 𝐷 ⊆ 𝑃 .
Let 𝑚 be a marking of 𝑀 𝑃 𝑁 . Then function 𝑚|𝐷 is called a D-marking. By symbol [𝑚0 ⟩|𝐷 we
denote the set of all D-markings 𝑤 satisfying: 𝑤 ∈ [𝑚0 ⟩|𝐷 iff there exists such 𝑚 ∈ [𝑚0 ⟩ that
𝑤 = 𝑚|𝐷. It means that symbol [𝑚0 ⟩|𝐷 denotes the set of all D-markings 𝑚|𝐷 such that 𝑚 is
reachable from 𝑚0 . We also say that [𝑚0 ⟩|𝐷 denote the set of all D-markings reachable from
initial D-marking 𝑚0 |𝐷 in 𝑀 𝑃 𝑁 .

   Each reachable D-marking 𝑚|𝐷 from [𝑚0 ⟩|𝐷 of the original workflow net will become to be
a place in reachability net. In addition, static places of the original workflow net will be static
places of reachability net. Elements of transition relation (𝑚, 𝑡, 𝑚′ ) z −→ of the reachability
graph of original workflow net will be used to create transitions of the reachability net. A
triple (𝑚|𝐷, 𝑡, 𝑚′ |𝐷) ∈ ([𝑚0 ⟩|𝐷) × 𝑇 × ([𝑚0 ⟩|𝐷) will be a transition of the reachability net iff
     𝑡
𝑚 −→ 𝑚′ . A transition (𝑚|𝐷, 𝑡, 𝑚′ |𝐷) of the reachability net will consume exactly one token
from the place 𝑚|𝐷 of the reachability net and it will produce exactly one token in place 𝑚′ |𝐷 of
the reachability net. Arcs and their weights between static places and transition (𝑚|𝐷, 𝑡, 𝑚′ |𝐷)
of the reachability net will be identical with arcs between static places and transition 𝑡 of the
original net. Finally, we add a constructor consisting of two transitions {𝑛𝑒𝑤, 𝑠𝑡𝑜𝑝} and one
place {source}.
   In graphical expression of reachability nets, we will label transition (𝑚|𝐷, 𝑡, 𝑚′ |𝐷) of the
reachability net only by the name of transition 𝑡 of the original net.

Definition 24 (Reachability net).
Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a marked workflow net with static places and let 𝑛𝑒𝑤, 𝑠𝑡𝑜𝑝
and 𝑠𝑜𝑢𝑟𝑐𝑒 denote elements satisfying {𝑛𝑒𝑤, 𝑠𝑡𝑜𝑝, 𝑠𝑜𝑢𝑟𝑐𝑒} ∩ (𝐷 ∪ 𝑆 ∪ 𝑇 ) = ∅. Reachability
net of the net 𝑀 𝑊 is the marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ), where
    • 𝑃 𝑟 = ([𝑚0 ⟩|𝐷) ∪ 𝑆 ∪ {𝑠𝑜𝑢𝑟𝑐𝑒}.
                                                                                free memory




      waiting for memory        memory allocation          memory allocated       memory         memory to dispose      memory dispose      memory disposed




                settings save         settings         settings open




 in        task begin             settings ready          computation begin     computation       computation end                               task end         out




      waiting for processor     processor allocation      processor allocated     processor      processor to dispose   processor dispose   processor disposed




                                                                                free processor




Figure 2: A 1-sound marked remembering workflow net with static places, modeling allocation of mem-
ory units and processors to computing tasks with possibility to change the setting for the computation.


       • 𝑇 𝑟 = 𝑇 𝑎 ∪ {𝑛𝑒𝑤, 𝑠𝑡𝑜𝑝}, where 𝑇 𝑎 is the set of all triples (𝑥, 𝑡, 𝑦) ∈ ([𝑚0 ⟩|𝐷) × 𝑇 ×
         ([𝑚0 ⟩|𝐷), for which there exists a triple (𝑚, 𝑡, 𝑚′ ) ∈ [𝑚0 ⟩ × 𝑇 × [𝑚0 ⟩, such that 𝑥 = 𝑚|𝐷,
                                 𝑡
         𝑦 = 𝑚′ |𝐷 and 𝑚 −→ 𝑚′ , i.e. the transitions of the reachability net are 𝑛𝑒𝑤 a 𝑠𝑡𝑜𝑝 and
         such triples (𝑥, 𝑡, 𝑦), where 𝑥 a 𝑦 are D-markings and 𝑡 is enabled to fire in marking 𝑚 in
         𝑀 𝑊 and its firing leads to 𝑚′ in 𝑀 𝑊 , while 𝑥 = 𝑚|𝐷 and 𝑦 = 𝑚′ |𝐷.
       • 𝐼 𝑟 (𝑥, (𝑥, 𝑡, 𝑦)) = 1 for each (𝑥, 𝑡, 𝑦) ∈ 𝑇 𝑎
       • 𝐼 𝑟 (𝑠𝑜𝑢𝑟𝑐𝑒, 𝑛𝑒𝑤) = 1 and 𝐼 𝑟 (𝑠𝑜𝑢𝑟𝑐𝑒, 𝑠𝑡𝑜𝑝) = 1, i.e. constructor 𝑛𝑒𝑤 is enabled to fire
         only in a marking with a token in place 𝑠𝑜𝑢𝑟𝑐𝑒, similarly 𝑠𝑡𝑜𝑝
       • 𝐼 𝑟 (𝑠, (𝑥, 𝑡, 𝑦)) = 𝐼(𝑠, 𝑡) for each 𝑠 ∈ 𝑆, (𝑥, 𝑡, 𝑦) ∈ 𝑇 𝑎 , i.e. arcs from static places to copies
         of transitions are copied
       • 𝑂𝑟 ((𝑥, 𝑡, 𝑦), 𝑦) = 1 for each (𝑥, 𝑡, 𝑦) ∈ 𝑇 𝑎
       • 𝑂𝑟 (𝑖𝑛, 𝑛𝑒𝑤) = 1 and 𝑂𝑟 (𝑠𝑜𝑢𝑟𝑐𝑒, 𝑛𝑒𝑤) = 1, i.e. firing of constructor 𝑛𝑒𝑤 creates a token
         in place 𝑖𝑛 and returns a token to place 𝑠𝑜𝑢𝑟𝑐𝑒 (remember that from Definition 18 we get
         𝑖𝑛 = 𝑚0 |𝐷)
       • 𝑂𝑟 (𝑠, (𝑥, 𝑡, 𝑦)) = 𝑂(𝑠, 𝑡) for each 𝑠 ∈ 𝑆, (𝑥, 𝑡, 𝑦) ∈ 𝑇 𝑎 , i.e. arcs from copies of transitions
         to static places are copied
       • 𝐼 𝑟 (𝑝, 𝑡) = 0 a 𝑂𝑟 (𝑝, 𝑡) = 0 for each other pairs (𝑝, 𝑡) ∈ (𝑃 𝑟 × 𝑇 𝑟 )
       • 𝑚𝑟0 (𝑠𝑜𝑢𝑟𝑐𝑒) = 1, 𝑚𝑟0 |𝑆 = 𝑚0 |𝑆 a 𝑚𝑟0 (𝑥) = 0 for each 𝑥 ∈ [𝑚0 ⟩|𝐷, i.e. in the initial
         marking is one token in place 𝑠𝑜𝑢𝑟𝑐𝑒, tokens in static places are copied and places of the
         reachability net equal to reachable D-markings of the net 𝑀 𝑊 are empty.

   To illustrate a reachability net, we will consider the net in Figure 2
   Existence of the complementary places of static places in remembering workflow net implies
following result:
Corollary 4. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a marked remembering workflow net with static
places. Then for each two markings 𝑚 and 𝑚′ from [𝑚0 ⟩ there holds: if 𝑚|𝐷 = 𝑚′ |𝐷 then 𝑚 = 𝑚′ .

Corollary 5. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net
with static places. Then its reachability net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) has a finite number of
places 𝑃 𝑟 and a finite number of transitions 𝑇 𝑟 .

   Places in the reachability net of remembering net represent states of the instance, including
information how many tokens from static places are used by the instance. Each token in a place
of the reachability net represent an instance in the corresponding state. The number of tokens
in a place of the reachability net determine how many instances are in that state. Thus, marking
of the reachability net determines how many instances are in states represented by single places
of the reachability net.

Definition 25 (Final marking of a reachability net).
Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a marked workflow net with static places and let a marked
Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability net of the net 𝑀 𝑊 . A marking 𝑚𝑟𝑓 of
the reachability net 𝑀 𝑃 𝑁 reachable from 𝑚𝑟0 , is called a final marking of 𝑀 𝑃 𝑁 , if 𝑚𝑟𝑓 (𝑥) = 0
for each 𝑥 ∈ 𝑃 𝑟 ∖ (𝑆 ∪ {𝑜𝑢𝑡}) (where 𝑜𝑢𝑡 denotes in accordance with the introduced notation the
reachable D-marking given by function 1 · 𝑜𝑢𝑡 from 𝐷 to N).

  A lock of the reachability net is defined as a marking, from which no final marking is reachable.

Definition 26. (Lock, deadlock and livelock of a reachability net)
Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a marked workflow net with static places and let a marked
Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability net of the net 𝑀 𝑊 . A marking 𝑚𝑟
of the reachability net 𝑀 𝑃 𝑁 reachable from the initial marking 𝑚𝑟0 , is called a lock, if from 𝑚𝑟
no final marking of the reachability net 𝑀 𝑃 𝑁 is reachable. If no transition of the reachability net
𝑀 𝑃 𝑁 is enabled to fire in a lock 𝑚𝑟 , then it is called a deadlock of 𝑀 𝑃 𝑁 , otherwise it is called a
livelock of 𝑀 𝑃 𝑁 .


7. Basic locks of a reachability net
Following result, which is implied directly by the construction of the reachability net is important
for detection of locks of reachability nets.

Lemma 2. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability
net of the net 𝑀 𝑊 . Let marking 𝑚𝑟1 be reachable from 𝑚𝑟0 in the reachability net 𝑀 𝑃 𝑁 . Then
for arbitrary marking 𝑤 : (𝑃 𝑟 ∖ 𝑆) → N satisfying 𝑚𝑟1 |(𝑃 𝑟 ∖ 𝑆) > 𝑤 there exists such marking
𝑚𝑟2 reachable from 𝑚𝑟0 in 𝑀 𝑃 𝑁 , that 𝑚𝑟2 |(𝑃 𝑟 ∖ 𝑆) = 𝑤.

   In the following definition we will divide the places of the reachability net according to the
fact, whether they represent states, in which resources from static places are used.
Definition 27 (Places with resources).
Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net with static places
and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability net of the net 𝑀 𝑊 .
    • A place 𝑥 ∈ 𝑃 𝑟 ∖ 𝑆 of the reachability net is called a place without resource 𝑠 for 𝑠 ∈ 𝑆
      if either 𝑥 = 𝑠𝑜𝑢𝑟𝑐𝑒 or for the complementary places 𝑑𝑠 ∈ 𝐷𝑆 of place 𝑠 there holds
      𝑥(𝑑𝑠 ) = 0.
    • The set of all places without resource 𝑠 is denoted by 𝐵𝑠𝑟 .
    • If place 𝑥 ∈ 𝑃 𝑟 ∖ 𝑆 of the reachability net is a place without resource for each 𝑠 ∈ 𝑆, we
      call it simply a place without resources.
    • The set of all places without resources is denoted by 𝐵 𝑟 .
    • A place 𝑥 ∈ 𝑃 𝑟 ∖ 𝑆 of the reachability net is called place with resource 𝑠 for 𝑠 ∈ 𝑆 if for
      the complementary place 𝑑𝑠 ∈ 𝐷𝑆 of 𝑠 there holds 𝑥(𝑑𝑠 ) > 0. The set of all places with
      resource 𝑠 is denoted by 𝑍𝑠𝑟 .
    • If for a place 𝑥 ∈ 𝑃 𝑟 ∖ 𝑆 of the reachability net there is 𝑠 ∈ 𝑆 such that 𝑥 is a place with
      resource 𝑠, then we call it simply a place with resources.
    • The set of all places with resources is denoted by 𝑍 𝑟 .
    • For a place 𝑥 ∈ 𝑍 𝑟 of the reachability net we denote by symbol 𝑍(𝑥) the set of such 𝑠 ∈ 𝑆,
      for which 𝑥 ∈ 𝑍𝑠𝑟 .

   Similarly as states, we divide the transitions of the reachability net for those, that need tokens
from static places to be enabled to fire and those, that do not need tokens from static places. We
will divide the places according to the fact, whether there is a transition, which moves a token
from a place with resources and at the same time it requires resources.

Definition 28. (Transitions requiring resources, critical places)
Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net with static places
and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability net of the net 𝑀 𝑊 .
    • A transition (𝑥, 𝑡, 𝑦) ∈ 𝑇 𝑎 is called a transition requiring resources if 𝐼(𝑠, 𝑡) > 0 for some
      𝑠 ∈ 𝑆.
    • If for a place with resources 𝑥 ∈ 𝑍 𝑟 there holds that there is a transition (𝑥, 𝑡, 𝑦) ∈ 𝑇 𝑎
      requiring resources, then 𝑥is called a critical place of the reachability net 𝑀 𝑃 𝑁 .
    • The set of all critical places is denoted by 𝐾 𝑟 .

   On Figure 3 there is the reachability net of the 1-sound marked remembering workflow net
with static places from Figure 2.
   The set of places without resources 𝐵 𝑟 in the reachability net on Figure 3 is given by six
places: by place source, by place in, by place waiting for memory + waiting for processor + settings
ready, by place waiting for memory + waiting for processor + settings, by place memory disposed
+ processor disposed and by the place out.
   The set of places with resources 𝑍 𝑟 is given by ten places, two of which are critical.
   First critical place of the reachability net is its place waiting for memory + processor allocated
+ settings ready + processor. Second critical place of the reachability net is its place memory
allocated + waiting for processor + settings ready + memory.
   On Figure 4 there is a livelock of the process for ten instances.
Corollary 6. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability
net of the net 𝑀 𝑊 . Let 𝑠 ∈ 𝑆 be a static place and let 𝑑𝑠 ∈ 𝐷𝑆 be
                                                                 ∑︀ its complementary place. Then
for each marking 𝑚𝑟 reachable from 𝑚𝑟0 there holds 𝑚𝑟 (𝑠) + 𝑥∈𝑍𝑠𝑟 𝑚𝑟 (𝑥) · 𝑥(𝑑𝑠 ) = 𝑚0 (𝑠),
and therefore 𝑚𝑟 (𝑠) ≤ 𝑚𝑟0 (𝑠) = 𝑚0 (𝑠).

  Another important result is given as follows:

Lemma 3. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability
net of the net 𝑀 𝑊 . Then for arbitrary marking 𝑚𝑟1 reachable from 𝑚𝑟0 in the reachability net
there exists a marking 𝑚𝑟2 reachable from 𝑚𝑟1 such that 𝑚𝑟2 (𝑥) = 0 for each 𝑥 ∈ 𝑍 𝑟 ∖ 𝐾 𝑟 .

Proof. We show, that if a token is in a place 𝑥 ∈ 𝑍 𝑟 ∖ 𝐾 𝑟 , we can move that token to a
places without resources from 𝐵 𝑟 , or to a critical place from 𝐾 𝑟 . Repeating the procedure we
can set to zero all places 𝑥 ∈ 𝑍 𝑟 ∖ 𝐾 𝑟 . Because the original remembering workflow net is
1-sound, from each 𝑥 ∈ 𝑍 𝑟 ⊆ [𝑚0 ⟩|𝐷 is in original workflow net reachable a final marking
𝑜𝑢𝑡 ∪ 𝑚0 |𝑆. It means, that for each place 𝑥 ∈ 𝑍 𝑟 ∖ 𝐾 𝑟 there exists a finite sequence 𝜖 : I → 𝑇 a
𝜎 : I ∪ {0} → [𝑚0 ⟩|𝐷 such that 𝜎(0) = 𝑥, (𝜎(𝑖 − 1), 𝜖(𝑖), 𝜎(𝑖)) ∈ 𝑇 𝑎 for each positive integer
𝑖 ∈ I and 𝜎(𝑚𝑎𝑥I ) = 𝑜𝑢𝑡. Let 𝛼 : I → 𝑇 𝑎 be a sequence of transitions from 𝑇 𝑎 such that
𝛼(𝑖) = (𝜎(𝑖 − 1), 𝜖(𝑖), 𝜎(𝑖)) for 𝑖 ∈ I.
    • Let no transition 𝛼(𝑖), where 𝑖 ∈ I, is a transition requiring resources. Then sequence 𝛼 is
      enabled to fire in any marking of the reachability net 𝑚𝑟1 ∈ [𝑚𝑟0 ⟩ satisfying 𝑚1 (𝑥) > 0 and
      its firing leads to marking 𝑚𝑟2 , such that 𝑚𝑟2 (𝑥) = 𝑚𝑟1 (𝑥)−1 and 𝑚𝑟2 (𝑜𝑢𝑡) = 𝑚𝑟1 (𝑜𝑢𝑡)+1,
      i.e. firing of sequence 𝛼 moves a token from a place with resources 𝑥 of the reachability
      net to the place without resources 𝑜𝑢𝑡 of the rechability net.
    • Let there is an 𝑖 ∈ I such that transition 𝛼(𝑖) is a transition requiring resources. Let 𝑖 be
      the smallest index, for which 𝛼(𝑖) is a transitions requiring resources. Because 𝑥 is not a
      critical place, 𝑖 ≥ 2.
         – Let 𝜎(𝑖 − 1) ∈ 𝐵 𝑟 , i.e. 𝜎(𝑖 − 1) is a place without resources. Then sequence
           𝛼|{1, . . . , 𝑖 − 1} is enabled to fire in each marking of the reachability net 𝑚1 ∈ [𝑚𝑟0 ⟩
           satisfying 𝑚𝑟1 (𝑥) > 0 and its firing leads to marking 𝑚𝑟2 , such that 𝑚𝑟2 (𝑥) =
           𝑚𝑟1 (𝑥) − 1 and 𝑚𝑟2 (𝜎(𝑖 − 1)) = 𝑚𝑟1 (𝜎(𝑖 − 1)) + 1, i.e. firing of sequence 𝛼 moves
           a token from place 𝑥 of the reachability net to a place without resources 𝜎(𝑖 − 1) of
           the reachability net.
         – Let 𝜎(𝑖 − 1) ∈ 𝑍 𝑟 , i.e. 𝜎(𝑖 − 1) is a place with resources. Because 𝛼(𝑖) = (𝜎(𝑖 −
           1), 𝜖(𝑖), 𝜎(𝑖)) is a transition requiring resources, 𝜎(𝑖 − 1) ∈ 𝐾 𝑟 , i.e. 𝜎(𝑖 − 1) is a
           critical place. Then sequence 𝛼|{1, . . . , 𝑖 − 1} is enabled to fire in each marking of
           the rechability net 𝑚𝑟1 ∈ [𝑚𝑟0 ⟩ satisfying 𝑚1 (𝑥) > 0 and its firing leads to marking
           𝑚𝑟2 , such that 𝑚𝑟2 (𝑥) = 𝑚𝑟1 (𝑥) − 1 and 𝑚𝑟2 (𝜎(𝑖 − 1)) = 𝑚𝑟1 (𝜎(𝑖 − 1)) + 1, i.e. firing
           of sequence 𝛼 moves a token from place 𝑥 of the reachability net to a critical place
           𝜎(𝑖 − 1) of the reachability net.
                                                                                                    □
  If we apply the result of Lemma 3 to locks, we get that from each lock of the reachability net
we can reach a lock, in which from all places with resources only critical places are marked.
These locks are called critical locks.

Definition 29 (Critical locks of a reachability net).
Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net with static
places and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability net of the net
𝑀 𝑊 . Then a lock 𝑚𝑟 , such that 𝑚𝑟 (𝑥) = 0 for each 𝑥 ∈ 𝑍 𝑟 ∖ 𝐾 𝑟 , is called a critical lock of the
reachability net.

Corollary 7. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability
net of the net 𝑀 𝑊 . Then there holds: if an arbitrary marking 𝑚𝑟1 reachable from 𝑚𝑟0 in the
reachability net is a lock, then there exists a critical lock 𝑚𝑟2 reachable from 𝑚𝑟1 .

   The lock in Figure 4 is not a critical lock, because the place with resources waiting for memory
+ processor allocated + settings + processor and the place with resources memory allocated +
waiting for processor + settings + memory are not empty. These places with resources are not
critical places of the reachability net.
   From marking in Figure 4 the marking in Figure 5 is reachable. The marking in Figure 5 is a
critical lock.
   A special set of critical lock are those locks, for which no other places except critical places
and static places are marked. Such lock are called basic locks.

Definition 30 (Basic locks of a reachability net).
Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net with static places
and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability net of the net 𝑀 𝑊 .
Then a critical lock 𝑚𝑟 , such that 𝑚𝑟 (𝑥) = 0 for each place without resources 𝑥 ∈ 𝐵 𝑟 , is called a
basic lock of the reachability net.

    The following results states, that if 𝑚𝑟1 is a critical lock, then marking 𝑚𝑟2 created from 𝑚𝑟1
by removing all tokens from all places without resources, is reachable from z 𝑚𝑟0 and therefore
it is a basic lock of the reachability net.

Lemma 4. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability
net of the net 𝑀 𝑊 . Then there holds: if an arbitrary marking 𝑚𝑟1 reachable from 𝑚𝑟0 in the
reachability net is a critical lock but not a basic lock, then 𝑚𝑟2 , such that 𝑚𝑟2 (𝑥) = 𝑚𝑟1 (𝑥) for each
place with resources 𝑥 ∈ 𝑍 𝑟 and 𝑚𝑟2 (𝑥) = 0 for each place without resources 𝑥 ∈ 𝐵 𝑟 , is a basic
lock of the reachability net.

Proof. According to Lemma 2, 𝑚𝑟2 is reachable from 𝑚𝑟0 . Assume, that 𝑚𝑟2 is not a basic lock.
Because 𝑚𝑟1 is a critical lock, 𝑚𝑟2 (𝑥) = 0 for each 𝑥 ∈ 𝑍 𝑟 ∖ 𝐾 𝑟 , i.e. 𝑚𝑟2 satisfies the condition of
critical locks. Because 𝑚𝑟2 (𝑥) = 0 for each place without resources 𝑥 ∈ 𝐵 𝑟 , 𝑚𝑟2 satisfies also the
condition of basic locks. It means, that 𝑚𝑟2 is not a lock. Then there is a sequence of transitions
𝛽 enabled to fire in 𝑚𝑟2 , such that its firing leads to a final marking 𝑚𝑟𝑓 , where 𝑚𝑟𝑓 |𝑆 = 𝑚𝑟0 |𝑆.
Because 𝑚𝑟2 (𝑥) = 𝑚𝑟1 (𝑥) for each place with resources 𝑥 ∈ 𝑍 𝑟 , i.e. in non-static places of
the reachability net differ 𝑚𝑟2 and 𝑚𝑟1 only in marking of places without resources, there also
holds that 𝑚𝑟2 |𝑆 = 𝑚𝑟1 |𝑆, i.e. the markings of static places of 𝑚𝑟2 and 𝑚𝑟1 are equal. Then the
sequence 𝛽 is enabled to fire also in 𝑚𝑟1 and its firing leads to 𝑚𝑟3 such that 𝑚𝑟3 |𝑍 𝑟 = 0 and
𝑚𝑟3 |𝑆 = 𝑚𝑟0 |𝑆.
   Because original net 𝑀 𝑊 is 1-sound, (similarly as in the proof of Lemma 3) from each
𝑥 ∈ 𝐵 𝑟 ⊆ [𝑚0 ⟩|𝐷 is in 𝑀 𝑊 reachable the final marking 𝑜𝑢𝑡 ∪ 𝑚0 |𝑆 of 𝑀 𝑊 . It means, that
for each place 𝑥 ∈ 𝐵 𝑟 there is a finite sequence 𝜖 : I → 𝑇 a 𝜎 : I ∪ {0} → [𝑚0 ⟩|𝐷 such that
𝜎(0) = 𝑥, (𝜎(𝑖 − 1), 𝜖(𝑖), 𝜎(𝑖)) ∈ 𝑇 𝑎 for each finite positive integer 𝑖 ∈ I and 𝜎(𝑚𝑎𝑥I ) = 𝑜𝑢𝑡.
Let 𝛼 : I → 𝑇 𝑎 be the sequence of transitions from 𝑇 𝑎 such that 𝛼(𝑖) = (𝜎(𝑖−1), 𝜖(𝑖), 𝜎(𝑖)) for
𝑖 ∈ I. Sequence 𝛼 is enabled to fire in each marking of the reachability net 𝑚𝑟1 ∈ [𝑚𝑟0 ⟩ satisfying
𝑚1 (𝑥) > 0 and 𝑚𝑟1 |𝑆 = 𝑚𝑟0 |𝑆 and its firing leads to marking 𝑚𝑟4 , where 𝑚𝑟4 (𝑥) = 𝑚𝑟1 (𝑥)−1 and
𝑚𝑟4 (𝑜𝑢𝑡) = 𝑚𝑟1 (𝑜𝑢𝑡) + 1, i.e. firing of sequence 𝛼 moves a token from a place without resources
𝑥 of the reachability net to a place without resources 𝑜𝑢𝑡 of the reachability net, and also
𝑚𝑟4 |𝑍 𝑟 = 0, 𝑚𝑟4 |𝐵 𝑟 ∖ {𝑥, 𝑜𝑢𝑡} = 𝑚𝑟1 |𝐵 𝑟 ∖ {𝑥, 𝑜𝑢𝑡} a 𝑚𝑟4 |𝑆 = 𝑚𝑟1 |𝑆 = 𝑚𝑟0 |𝑆. By repeating the
firing of sequence 𝛼 we get marking 𝑚𝑟5 , where 𝑚𝑟5 (𝑥) = 0 and 𝑚𝑟5 (𝑜𝑢𝑡) = 𝑚𝑟1 (𝑜𝑢𝑡) + 𝑚𝑟1 (𝑥),
i.e. 𝑚𝑟1 (𝑥)-times repeated firing of sequence 𝛼 moves all 𝑚𝑟1 (𝑥) tokens from place without
resources 𝑥 of the reachability net to the place without resources 𝑜𝑢𝑡 of the reachability net,
and also 𝑚𝑟5 |𝑍 𝑟 = 0, 𝑚𝑟5 |𝐵 𝑟 ∖ {𝑥, 𝑜𝑢𝑡} = 𝑚𝑟1 |𝐵 𝑟 ∖ {𝑥, 𝑜𝑢𝑡} and 𝑚𝑟5 |𝑆 = 𝑚𝑟1 |𝑆 = 𝑚𝑟0 |𝑆. By
repeating the procedure for such 𝑥 ∈ 𝐵 𝑟 that marking of 𝑥 is not zero, we get a marking 𝑚𝑟𝑓
such that 𝑚𝑟𝑓 |((𝐵𝑟 ∖ {𝑜𝑢𝑡}) ∪ 𝑍 𝑟 ) = 0 and 𝑚𝑟𝑓 |𝑆 = 𝑚𝑟0 |𝑆, i.e. we get a final marking of the
reachability net. This contradicts with the assumption that 𝑚1 is a critical lock.                 □

  By application of Lemma 4 on critical lock from Figure 5 we get the reachable basic lock in
Figure 6.
  Altogether, we get the following main result.

Theorem 1. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability
net of the net 𝑀 𝑊 . Then there holds: if there exists a lock 𝑚𝑟1 , then there exists a basic lock 𝑚𝑟2 .

  We also get:

Corollary 8. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability
net of the net 𝑀 𝑊 . If the reachability net has no critical places, then it has no locks.

  Critical places are bounded in the reachability net, and therefore basic locks are bounded, i.e.
there are finitely many basic locks.

Definition 31 (Simple bound of critical places).
Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net with static
places and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability net of the
net 𝑀 𝑊 . Let 𝑘 ∈ 𝐾 𝑟 be a critical place. Let 𝑠 ∈ 𝑍(𝑘) and let 𝑑𝑠 ∈ 𝐷𝑆 be the complementary
place of 𝑠. Denote 𝑝𝑏(𝑘, 𝑠) = 𝑚0 (𝑠) ÷ 𝑘(𝑑𝑠 ), where symbol ÷ denotes integer division. Denote
𝑠𝑏𝑜𝑢𝑛𝑑(𝑘) = min𝑠∈𝑍(𝑘) 𝑝𝑏(𝑘, 𝑠) the minimum of values 𝑝𝑏(𝑘, 𝑠) for 𝑠 ∈ 𝑍(𝑘). The values
𝑠𝑏𝑜𝑢𝑛𝑑(𝑘) is called the simple bound of a critical place 𝑘. The sum of values
                                                 ∑︁
                               𝑠𝑏𝑜𝑢𝑛𝑑(𝐾 𝑟 ) =         𝑠𝑏𝑜𝑢𝑛𝑑(𝑘)
                                                       𝑘∈𝐾 𝑟

is called the simple bound of critical places 𝐾 𝑟 .

Corollary 9. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability
net of the net 𝑀 𝑊 . Let 𝑚𝑟 be an arbitrary marking of the reachability net reachable from 𝑚𝑟0 .
For each critical place 𝑘 ∈ 𝐾 𝑟 there holds 𝑚𝑟 (𝑘) ≤ 𝑠𝑏𝑜𝑢𝑛𝑑(𝑘), i.e. the number of tokens in
any
∑︀ reachable   marking 𝑚𝑟 does not exceed the simple bound of a critical place. There holds that
           𝑟                  𝑟                       𝑟
  𝑘∈𝐾 𝑟 𝑚 (𝑘) ≤ 𝑠𝑏𝑜𝑢𝑛𝑑(𝐾 ). In addition, 𝑠𝑏𝑜𝑢𝑛𝑑(𝐾 ) ≥ 1.

  More exact upper bound of the number of tokens in critical places can be computed as a
solution of the following integer linear programming problem.

Definition 32 (Bound of critical places).
Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net with static places
and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability net of the net 𝑀 𝑊 .
Let 𝑦 : 𝐾 𝑟 → N be an integer solution of the linear inequality system
                             ∑︁
                                  𝑘(𝑑𝑠 ) · 𝑦(𝑘) ≤ 𝑚0 (𝑠) 𝑓 𝑜𝑟 𝑠 ∈ 𝑆
                               𝑘∈𝐾 𝑟

                                        𝑦(𝑘) ≥ 0 𝑓 𝑜𝑟 𝑘 ∈ 𝐾 𝑟
which maximizes the objective function
                                               ∑︁
                                                    𝑘(𝑑𝑠 ) · 𝑦(𝑘)
                                           𝑘∈𝐾 𝑟

This maximal value                                     ∑︁
                                  𝑏𝑜𝑢𝑛𝑑(𝐾 𝑟 ) =               𝑘(𝑑𝑠 ) · 𝑦(𝑘)
                                                      𝑘∈𝐾 𝑟

is called the bound of critical places 𝐾 𝑟 .

  From the formulation of the integer linear programming problem we get the following result.

Corollary 10. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability
net of the net 𝑀 𝑊 . ∑︀Let 𝑚𝑟 be an arbitrary marking of the reachability net reachable from
𝑚0 . Then there holds 𝑘∈𝐾 𝑟 𝑚𝑟 (𝑘) ≤ 𝑏𝑜𝑢𝑛𝑑(𝐾 𝑟 ). Moreover, there holds that 𝑠𝑏𝑜𝑢𝑛𝑑(𝐾 𝑟 ) ≥
  𝑟

𝑏𝑜𝑢𝑛𝑑(𝐾 𝑟 ).
   Methods for solving the integer linear programming problems can be found e.g. in [36].
   For the reachability net in Figure 4 of the 1-sound marked remembering workflow net with
static places from Figure 2 we get 𝑠𝑏𝑜𝑢𝑛𝑑(𝐾 𝑟 ) = 𝑏𝑜𝑢𝑛𝑑(𝐾 𝑟 ) = 4.
   From definition of the reachability net we get the following result.
Lemma 5. Let 𝑀 𝑊 = (𝐷, 𝑆, 𝑇, 𝐼, 𝑂, 𝑚0 ) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net 𝑀 𝑃 𝑁 = (𝑃 𝑟 , 𝑇 𝑟 , 𝐼 𝑟 , 𝑂𝑟 , 𝑚𝑟0 ) be the reachability
net of the net 𝑀 𝑊 . Let 𝑚𝑟1 be an arbitrary marking of the reachability net reachable from 𝑚𝑟0 .
Then for each marking 𝑚𝑟2 reachable from 𝑚𝑟1 there holds:
                                 ∑︁                ∑︁
                                        𝑚𝑟1 (𝑥) ≤         𝑚𝑟2 (𝑥)
                                𝑥∈[𝑚0 ⟩|𝐷               𝑥∈[𝑚0 ⟩|𝐷

If 𝑚𝑟1 (𝑠𝑜𝑢𝑟𝑐𝑒) = 0 then there holds:
                                 ∑︁                       ∑︁
                                            𝑚𝑟1 (𝑥) =               𝑚𝑟2 (𝑥)
                                𝑥∈[𝑚0 ⟩|𝐷               𝑥∈[𝑚0 ⟩|𝐷

   Consider a constrained reachability net for a given positive integer 𝑛 ∈ Z by adding a place,
let us call it a buffer, from which firing of transition 𝑛𝑒𝑤 consumes just one token, while in the
initial marking this place get 𝑛 number of tokens, i.e. 𝑚𝑟0 (buffer) = 𝑛.
   Such constrained reachability net preserves all the reachable markings for which the sum of
tokens in places from [𝑚0 ⟩|𝐷 does not exceed 𝑛. It also preserves the firing of all transitions
from 𝑇 𝑎 in these markings. The transition 𝑛𝑒𝑤 is enabled to fire in such a net exactly 𝑛-times.
Such net is bounded and represent the running of at most 𝑛 instances in parallel. Basic locks in
such a constrained net can be defined analogously as for the reachability net without constraints,
just allowing non zero marking of 𝑏𝑢𝑓 𝑓 𝑒𝑟.
   If one set the initial value 𝑚𝑟0 (buffer) = 𝑠𝑏𝑜𝑢𝑛𝑑(𝐾 𝑟 ) or 𝑚𝑟0 (buffer) = 𝑏𝑜𝑢𝑛𝑑(𝐾 𝑟 ) one can
guarantee that whenever the reachability net has a basic lock then the constrained net has
the basic lock differing at most in the marking of the added place buffer. The constrained
reachability net with 𝑚𝑟0 (buffer) = 𝑠𝑏𝑜𝑢𝑛𝑑(𝐾 𝑟 ) = 𝑏𝑜𝑢𝑛𝑑(𝐾 𝑟 ) = 4 for the reachability net
from Figure 3 is in Figure 7.


8. Conclusion
We have investigated workflow processes with independent instances, which share durable
resources. We have considered the fixed number of resources and arbitrary number of instances.
We modeled such nets by so called 1-sound marked remembering workflow nets with static
places, which are in fact resource constrained workflow nets sound for one instance. We have
shown that detection of deadlocks and livelocks of such processes can be reduced to detection
of basic locks of the constrained bounded reachability nets of 1-sound marked remembering
workflow nets with static places.
   One of the main aims of the further research is to find out how to synthesize a minimally
restrictive completion of a net which has deadlocks or livelock in order to avoid them. Another
aim of the further research is to determine the set of initial markings of static places, i.e. to
determine the number of resources, needed to avoid the deadlock and livelocks.
References
 [1] K. Hee, A. Serebrenik, N. Sidorova, M. Voorhoeve, Soundness of resource-constrained
     workflow nets, in: Applications and Theory of Petri nets, LNCS, volume 3536, Springer,
     Berlin, Heidelberg, 2005, pp. 250–267. doi:10.1007/11494744_15.
 [2] K. Barkaoui, R. Ben Ayed, Z. Sbai, Workflow soundness verification based on structure
     theory of Petri nets, International Journal of Computing and Information Sciences 5 (2007)
     51–61.
 [3] K. Hee, N. Sidorova, M. Voorhoeve, Resource-constrained workflow nets., Fundamenta
     Informaticae 71 (2006) 243–257.
 [4] G. Juhás, I. Kazlov, A. Juhásová, Instance deadlock: A mystery behind frozen programs, in:
     Applications and Theory of Petri Nets, LNCS, volume 6128, Springer, Berlin, Heidelberg,
     2010, pp. 1–17. doi:10.1007/978-3-642-13675-7_1.
 [5] A. Juhásová, G. Juhás, Soundess of resource constrained workflow nets is decidable., Petri
     Net Newsletter. (2009) 3–6.
 [6] M. Martos-Salgado, F. Rosa-Velardo, Dynamic soundness in resource-constrained workflow
     nets, in: Formal Techniques for Distributed Systems, LNCS, volume 6722, Springer, Berlin,
     Heidelberg, 2011, pp. 259–273. doi:10.1007/978-3-642-21461-5_17.
 [7] M. R. Martos Salgado, Verification of priced and timed extensions of Petri Nets with
     multiple instances., Ph.D. thesis, 2016.
 [8] D. F. Escrig, C. Johnen, Decidability of home space property, in: LRI Report, volume 503,
     Université Paris-Sud, 1989, pp. 1–25.
 [9] N. Sidorova, C. Stahl, Soundness for resource-constrained workflow nets is decidable, IEEE
     Transactions on Systems, Man, and Cybernetics: Systems 43 (2013) 724–729. doi:10.1109/
     TSMCA.2012.2210415.
[10] K. Hee, N. Sidorova, M. Voorhoeve, Soundness and separability of workflow nets in the
     stepwise refinement approach, in: Applications and Theory of Petri nets, LNCS, volume
     2679, Springer, Berlin, Heidelberg, 2003, pp. 337–356. doi:10.1007/3-540-44919-1_22.
[11] E. Best, P. Darondeau, Separability in persistent petri nets, Fundamenta Informaticae 113
     (2011) 179–203.
[12] F. L. Tiplea, C. Bocaneala, Decidability results for soundness criteria of resource-
     constrained workflow nets, IEEE Transactions on Systems, Man, and Cybernetics - Part A:
     Systems and Humans 42 (2012) 238–249. doi:10.1109/TSMCA.2011.2147310.
[13] E. Mayr, Persistence of vector replacement systems is decidable, Acta Informatica 15
     (1981) 309–318. URL: https://doi.org/10.1007/BF00289268. doi:10.1007/BF00289268.
[14] S. R. Kosaraju, Decidability of reachability in vector addition systems (preliminary version),
     in: Proceedings of the Fourteenth Annual ACM Symposium on Theory of Computing,
     STOC ’82, Association for Computing Machinery, New York, NY, USA, 1982, p. 267–281.
     doi:10.1145/800070.802201.
[15] E. W. Mayr, An algorithm for the general Petri net reachability problem, SIAM Journal on
     computing 13 (1984) 441–460.
[16] J. Lambert, A structure to decide reachability in Petri nets, Theoretical Computer Science
     99 (1992) 79–104. doi:https://doi.org/10.1016/0304-3975(92)90173-D.
[17] J. Leroux, Vector addition system reachability problem: A short self-contained proof, ACM
     SIGPLAN Notices 46 (2011) 307–316. doi:10.1145/1925844.1926421.
[18] R. Keller, Formal verification of parallel programs, Communications of the ACM 19 (1976)
     371–384. doi:10.1145/360248.360251.
[19] G. Winskel, M. Nielsen, Models for Concurrency, Oxford University Press, Inc., USA, 1995,
     p. 1–148.
[20] R. M. Karp, R. E. Miller, Parallel program schemata, Journal of Computer and System
     Sciences 3 (1969).
[21] T. Murata, Petri nets: Properties, analysis and applications, Proceedings of the IEEE 77
     (1989) 541–580. doi:10.1109/5.24143.
[22] J. L. Peterson, Petri nets, ACM Computing Surveys 9 (1977) 223–252. doi:10.1145/
     356698.356702.
[23] W. Reisig, A Primer in Petri Net Design, Springer, Berlin, Heidelberg, 1992.
[24] J. Desel, W. Reisig, Place/transition Petri nets, in: Lectures on Petri Nets I: Basic Models:
     Advances in Petri Nets, LNCS, volume 1491, Springer, Berlin, Heidelberg, 1998, pp. 122–173.
     doi:10.1007/3-540-65306-6_15.
[25] J. Desel, G. Juhás, What is a Petri net? An informal answer for an informed reader,
     in: Unifying Petri Nets, Advances in Petri Nets, LNCS, volume 2128, Springer, Berlin,
     Heidelberg, 2001, pp. 1–25. doi:10.1007/3-540-45541-8_1.
[26] R. Lipton, The reachability problem is exponential-space hard, in: Technical Report,
     volume 62, Department of Computer Science, Yale University, 1976.
[27] C. Rackoff, The covering and boundedness problems for vector addition systems, Theoret-
     ical Compututer Science 6 (1978) 223–231. doi:10.1016/0304-3975(78)90036-1.
[28] L. E. Rosier, H.-C. Yen, A multiparameter analysis of the boundedness problem for vector
     addition systems, Journal of Computer and System Sciences 32 (1986) 105–135. doi:https:
     //doi.org/10.1016/0022-0000(86)90006-1.
[29] W. M. P. van der Aalst, Three good reasons for using a Petri-net-based workflow manage-
     ment system, in: Information and Process Integration in Enterprises, Springer US, Boston,
     MA, 1998, pp. 161–182. doi:10.1007/978-1-4615-5499-8_10.
[30] W. M. P. van der Aalst, Verification of workflow nets, in: Application and Theory
     of Petri Nets 1997, Springer Berlin Heidelberg, Berlin, Heidelberg, 1997, pp. 407–426.
     doi:10.1007/3-540-63139-9_48.
[31] W. M. P. van der Aalst, The application of Petri nets to workflow management, Journal of
     Circuits, Systems, and Computers 8 (1998) 21–66. doi:10.1142/S0218126698000043.
[32] W. Van Der Aalst, K. M. Van Hee, K. van Hee, Workflow management: models, methods,
     and systems, The MIT Press, Cambridge, Massachusetts, 2002.
[33] K. Barkaoui, L. Petrucci, Structural analysis of workflow nets with shared ressources, in:
     Workflow Management: Net-based Concepts, Models, Techniques and Tools (WFM’98).
     Computing science reports, volume 9807, TU Eindhoven, 1998, pp. 82–95.
[34] R. Devillers, The semantics of capacities in P/T nets, in: Advances in Petri Nets 1989,
     Springer, Berlin, Heidelberg, 1990, pp. 128–150. doi:10.1007/3-540-52494-0_28.
[35] D. Figueira, S. Figueira, S. Schmitz, P. Schnoebelen, Ackermannian and primitive-recursive
     bounds with Dickson’s lemma, in: 2011 IEEE 26th Annual Symposium on Logic in
     Computer Science, 2011, pp. 269–278. doi:10.1109/LICS.2011.39.
[36] A. Schrijver, Theory of Linear and Integer Programming, John Wiley, 1986.
                       stop        source                      new             in




                                                                           task begin




                      processor allocation        waiting for memory+waiting for processor+settings ready             memory allocation




                                                           settings save                settings open


waiting for memory+processor allocated+settings ready+processor                               memory allocated+waiting for processor+settings ready+memory


                                                      waiting for memory+waiting for processor+settings


             settings save            settings open                                                         settings save            settings open




   waiting for memory+processor allocated+settings+processor                                     memory allocated+waiting for processor+settings+memory


                                             memory allocated+processor allocated+settings+memory+processor




                                                           settings save                settings open


                       memory allocation                                                                             processor allocation


                                         memory allocated+processor allocated+settings ready+memory+processor




                                                                                                                                                     free memory


free processor


                                                                     computation begin




                                                              computation+memory+processor




                                                                      computation end




                       processor dispose       memory to disposee+processor to dispose+memory+processor                memory dispose




        memory to dispose+processor disposed+memory                                                     memory disposed+processor to dispose+processor




                        memory dispose                      memory disposed+processor disposed                        processor dispose




                                                                           task end




                                                                              out




Figure 3: The reachability net of the 1-sound marked remembering workflow net with static places
from Figure 2
                       stop        source                      new             in




                                                                           task begin




                      processor allocation        waiting for memory+waiting for processor+settings ready             memory allocation




                                                           settings save                settings open


waiting for memory+processor allocated+settings ready+processor                               memory allocated+waiting for processor+settings ready+memory


                                                      waiting for memory+waiting for processor+settings


             settings save            settings open                                                         settings save            settings open




   waiting for memory+processor allocated+settings+processor                                     memory allocated+waiting for processor+settings+memory


                                             memory allocated+processor allocated+settings+memory+processor




                                                           settings save                settings open


                       memory allocation                                                                             processor allocation


                                         memory allocated+processor allocated+settings ready+memory+processor




                                                                                                                                                     free memory


free processor


                                                                     computation begin




                                                              computation+memory+processor




                                                                      computation end




                       processor dispose       memory to disposee+processor to dispose+memory+processor                memory dispose




        memory to dispose+processor disposed+memory                                                     memory disposed+processor to dispose+processor




                        memory dispose                      memory disposed+processor disposed                        processor dispose




                                                                           task end




                                                                              out




Figure 4: The reachability net of the 1-sound marked remembering workflow net with static places
from Figure 2 in a livelock for ten instances
                       stop        source                      new             in




                                                                           task begin




                      processor allocation        waiting for memory+waiting for processor+settings ready             memory allocation




                                                           settings save                settings open


waiting for memory+processor allocated+settings ready+processor                               memory allocated+waiting for processor+settings ready+memory


                                                      waiting for memory+waiting for processor+settings


             settings save            settings open                                                         settings save            settings open




   waiting for memory+processor allocated+settings+processor                                     memory allocated+waiting for processor+settings+memory


                                             memory allocated+processor allocated+settings+memory+processor




                                                           settings save                settings open


                       memory allocation                                                                             processor allocation


                                         memory allocated+processor allocated+settings ready+memory+processor




                                                                                                                                                     free memory


free processor


                                                                     computation begin




                                                              computation+memory+processor




                                                                      computation end




                       processor dispose       memory to disposee+processor to dispose+memory+processor                memory dispose




        memory to dispose+processor disposed+memory                                                     memory disposed+processor to dispose+processor




                        memory dispose                      memory disposed+processor disposed                        processor dispose




                                                                           task end




                                                                              out




Figure 5: The reachability net of the 1-sound marked remembering workflow net with static places
from Figure 2 in a critical livelock for ten instances
                       stop        source                      new             in




                                                                           task begin




                      processor allocation        waiting for memory+waiting for processor+settings ready             memory allocation




                                                           settings save                settings open


waiting for memory+processor allocated+settings ready+processor                               memory allocated+waiting for processor+settings ready+memory


                                                      waiting for memory+waiting for processor+settings


             settings save            settings open                                                         settings save            settings open




   waiting for memory+processor allocated+settings+processor                                     memory allocated+waiting for processor+settings+memory


                                             memory allocated+processor allocated+settings+memory+processor




                                                           settings save                settings open


                       memory allocation                                                                             processor allocation


                                         memory allocated+processor allocated+settings ready+memory+processor




                                                                                                                                                     free memory


free processor


                                                                     computation begin




                                                              computation+memory+processor




                                                                      computation end




                       processor dispose       memory to disposee+processor to dispose+memory+processor                memory dispose




        memory to dispose+processor disposed+memory                                                     memory disposed+processor to dispose+processor




                        memory dispose                      memory disposed+processor disposed                        processor dispose




                                                                           task end




                                                                              out




Figure 6: The reachability net of the 1-sound marked remembering workflow net with static places
from Figure 2 in a basic livelock for four instances
                       stop        source                      new             in




                                                              buffer       task begin




                      processor allocation        waiting for memory+waiting for processor+settings ready             memory allocation




                                                           settings save                settings open


waiting for memory+processor allocated+settings ready+processor                               memory allocated+waiting for processor+settings ready+memory


                                                      waiting for memory+waiting for processor+settings


             settings save            settings open                                                         settings save            settings open




   waiting for memory+processor allocated+settings+processor                                     memory allocated+waiting for processor+settings+memory


                                             memory allocated+processor allocated+settings+memory+processor




                                                           settings save                settings open


                       memory allocation                                                                             processor allocation


                                         memory allocated+processor allocated+settings ready+memory+processor




                                                                                                                                                     free memory


free processor


                                                                       computation begin




                                                              computation+memory+processor




                                                                       computation end




                       processor dispose       memory to disposee+processor to dispose+memory+processor                memory dispose




        memory to dispose+processor disposed+memory                                                     memory disposed+processor to dispose+processor




                        memory dispose                      memory disposed+processor disposed                        processor dispose




                                                                           task end




                                                                              out




Figure 7: 𝑛-constrained bounded reachability net of the reachability net from Figure 3 for 𝑛 =
𝑠𝑏𝑜𝑢𝑛𝑑(𝐾 𝑟 ) = 𝑏𝑜𝑢𝑛𝑑(𝐾 𝑟 ) = 4