Vol-3170/paper3

From BITPlan ceur-ws Wiki
Revision as of 13:16, 31 March 2023 by Wf (talk | contribs) (modified through wikirestore by wf)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Paper

Paper
edit
description  
id  Vol-3170/paper3
wikidataid  →Q117351503
title  Between Expressiveness and Verifiability: P/T-nets with Synchronous Channels and Modular Structure
pdfUrl  https://ceur-ws.org/Vol-3170/paper3.pdf
dblpUrl  https://dblp.org/rec/conf/apn/VossWMH22
volume  Vol-3170→Vol-3170
session  →

Between Expressiveness and Verifiability: P/T-nets with Synchronous Channels and Modular Structure

load PDF

Between Expressiveness and Verifiability: P/T-nets
with Synchronous Channels and Modular Structure
Lukas Voß1 , Sven Willrodt1 , Daniel Moldt1 and Michael Haustermann1
1
    University of Hamburg, Faculty of Mathematics, Informatics and Natural Sciences, Department of Informatics


                                         Abstract
                                         Synchronous channels are a powerful means to structure Petri net models. They enable large, expres-
                                         sive models while maintaining a coherent and well-readable structure. However, the vast number of
                                         potential bindings make Petri Nets extended with synchronous channels notoriously difficult to verify.
                                         This paper introduces synchronous channels to the basic P/T-net formalism while finding a compromise
                                         between the goals of increasing the modeling capabilities and remaining easy to verify.
                                             As part of this paper, a formal definition and an implementation of P/T-nets with synchronous chan-
                                         nels are provided. With the provided definition, the semantics and behavior of these models are formally
                                         described and well-defined. This forms a foundation for further work based on the formalism, such as
                                         verification or formalism extensions. Additionally, transformations are provided to construct equiv-
                                         alent regular P/T-nets, allowing the application of traditional P/T-net techniques. Restrictions on the
                                         synchronous channels ensure that these unfolded P/T-nets retain a reasonable size. The implementation
                                         furthermore includes a mechanism to partition nets into sub-nets, providing another means to create
                                         complex, yet comprehensive models. As a result, the formalism performs a balancing act by providing
                                         multiple means to structure large models while keeping the formalism simple enough to be feasible for
                                         verification methods developed for P/T-nets.

                                         Keywords
                                         P/T-nets, Synchronous Channels, Structuring Mechanisms, Modeling




1. Introduction
Petri nets are a popular means to model real world systems and explore their many properties.
Nets generally suffer from the state space explosion problem, which states that the state space
expressed by a Petri net grows much faster than the net itself. While continuous development
on verification tools allows handling larger and larger state spaces [1, 2], another problem comes
from the practical side: It is the increasing difficulty to model large nets. Algorithms run on
Petri nets rarely concern themselves with spatial information of the net’s elements, but a human
modeler will very much do so. Duplicate structure, overlapping edges, unclear token flow and
simply too large nets are some of the problems that make complex nets hard to comprehend.
   An approach to improve this are Colored Petri Nets (CPNs) [3, 4], which use color sets instead
of the indistinguishable black token of P/T-nets. By using color sets, structure can be reused in
different modes indicated by the tokens color. One drawback of CPNs, however, is that many

PNSE’22, International Workshop on Petri Nets and Software Engineering, Bergen, Norway, 2022
" lukas.voss@informatik.uni-hamburg.de (L. Voß); sven.willrodt@informatik.uni-hamburg.de (S. Willrodt);
moldt@informatik.uni-hamburg.de (D. Moldt); michael.haustermann@informatik.uni-hamburg.de
(M. Haustermann)
                                       © 2022 Copyright (C) for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
    CEUR
    Workshop
    Proceedings
                  http://ceur-ws.org
                  ISSN 1613-0073       CEUR Workshop Proceedings (CEUR-WS.org)



                                                                                                          40
�Lukas Voß et al. CEUR Workshop Proceedings                                                    40–59


traditional Petri net techniques cannot be applied directly to the more complex CPNs, which is
why CPNs must often be transformed into P/T-nets using a method called unfolding. These nets
are significantly larger, since they still have to be able to distinguish the colors of the original
CPN. If color sets are infinite, it might even be impossible to generate equivalent P/T-nets. There
is work to generate smarter unfoldings [5, 6]. This paper chooses another approach. Instead of
decreasing the difficulty to unfold expressive Petri net formalisms into P/T-nets, it increases
the expressiveness of the P/T-net formalism by extensions, while making sure that equivalent
P/T-nets remain reasonably small. By staying in the P/T-net formalism, problems that colored
tokens present are completely circumvented.
   The first and most important extension are synchronous channels. Synchronization is a
semantical basis for Petri nets, but explicit communication between transitions has also been
explored and introduced in form of synchronous channels [7, 8]. However, they are mostly
used in high-level Petri net formalisms [8, 9, 10]. While synchronous channels present their
own problems when unfolding, they are a great means to structure nets, allowing to reuse
components and eliminate overlapping edges when used. The proposed synchronous channels
also receive some restrictions to minimize the size of the equivalent P/T-net.
   Another prominent extension that was introduced in many different variants is the division
of a single Petri net into related and communicating sub-nets [9, 10, 11, 12, 13, 14]. It is
a great means for modelers, as semantically different parts of the net can be modeled and
viewed independently. Central is the interpretation of how these sub-nets relate to each other
and can communicate. Under the many approaches are hierarchical relationships [11], fixed
synchronization options [13] or an object-oriented approach [9, 10]. All of the mentioned
approaches come in combination with some notion of synchronous transitions, indicating how
well the two concepts interplay with each other. Our approach presented here uses a mixture of
the concepts of [13] and [10].


2. Foundations
Definition 1. A Place/Transition net is a directed and weighted bipartite graph
𝑁 = (𝑃, 𝑇, 𝐹, 𝑊, 𝑚0 ), where

   1. 𝑃 is a finite set of places,

   2. 𝑇 is a finite set of transitions,

   3. 𝐹 ⊆ (𝑃 × 𝑇 ) ∪ (𝑇 × 𝑃 ) is its flow relation,

   4. 𝑊 : 𝐹 → N0 are its arc weights and

   5. 𝑚0 : 𝑃 → N0 is its initial marking.

  A net has a marking 𝑚 that carries information about the number of tokens on each place.
𝑚(𝑝) describes the number of tokens on place 𝑝. Both places and transitions have pre- and
post-sets. The pre-set of a net element 𝑥 ∈ 𝑃 ∪ 𝑇 is defined as ∙ 𝑥 = {𝑦 ∈ 𝑃 ∪ 𝑇 : (𝑦, 𝑥) ∈ 𝐹 }.
Accordingly, the post-set of a net element 𝑥 ∈ 𝑃 ∪𝑇 is defined as 𝑥∙ = {𝑦 ∈ 𝑃 ∪𝑇 : (𝑥, 𝑦) ∈ 𝐹 }.



                                                41
�Lukas Voß et al. CEUR Workshop Proceedings                                                    40–59


A transition 𝑡 is called enabled in marking 𝑚 iff ∀𝑝 ∈ ∙ 𝑡 : 𝑚(𝑝) ≥ 𝑊 (𝑝, 𝑡). An enabled transition
𝑡 may fire. Firing 𝑡 removes all tokens necessary for firing in its pre-set and puts tokens on all
places in its post-set, according to the weight function. After firing transition 𝑡 in marking 𝑚,
the successor marking 𝑚′ is defined as 𝑚(𝑝)′ = 𝑚(𝑝) − 𝑊 (𝑝, 𝑡) + 𝑊 (𝑡, 𝑝)∀𝑝 ∈ 𝑃 . The firing
                                    𝑡
of a transition is denoted by 𝑚 → 𝑚′ .

Synchronous Channels
Synchronous channels constitute rendezvous synchronization in Petri net formalisms. The main
idea is that transitions may be inscribed with channels, which allows them to synchronize if the
signatures match. Transitions inscribed with channels can no longer fire alone, but only paired
with another synchronizing transition that has a matching signature and is also active. Firing
accounts for the locality of both synchronizing transitions. In general, synchronous channels
consist of three parts:
   1. Type: E.g. !? and ?! in [8] or uplinks and downlinks in [10].
   2. Identifier, usually in the form of a channel name or a relation.
   3. Parameters for information-exchange between synchronizing transitions
   All three attributes combined define which other transitions a channel transition can syn-
chronize with. Transitions of the same channel type cannot synchronize among themselves,
only with transitions of another channel type. Yet, the type does not indicate a direction. The
channel identifier is used to further subdivide typed channels. Usually, that comes with a
semantic implication of the channel. For example, in a producer-consumer scheme, the string
“send” can be used as an identifier for a channel. Lastly, channel parameters are used to transfer
information between synchronizing transitions. The term “information” can refer to any kind
of information that particular formalism offers. In Colored Petri Nets, information transfer
comes in the form of colored tokens, while Reference nets can, for example, also transfer net
instance references through channels.
   A different concept of synchronizing transitions is used in [13], where transition fusion sets are
used. They are manually provided and static sets of transitions which must fire synchronously,
requiring each one to be activated. They are rather theoretical, as they quickly become im-
practical to notate with increasing synchronization options. Thus, the former approach for
synchronous channels is chosen here.


3. Objectives
The aim of the new formalism for P/T-nets with synchronous channels (PTC-nets) is to provide
modeling extensions that allow larger models. The chosen extensions are synchronous channels
and net partitioning. Several sub-goals follow:
   1. Both a formal definition of the formalism, as well as an implementation, should be
      provided. That implementation should be as close to the formal definition as possible. It
      allows to simulate P/T-nets with synchronous channels.



                                                 42
�Lukas Voß et al. CEUR Workshop Proceedings                                                      40–59


   2. Synchronous channels should allow the usage of parameters. These parameters allow to
      synchronize over the amount of tokens sent through the channel.

   3. It should be possible to partition the P/T-nets into several net instances. These net
      instances can communicate via synchronous channels.

   4. A static unfolding of P/T-nets with channels into ordinary P/T-nets should be possible.

   The new formalism needs to be formally defined in order to properly describe the semantics
of a net. A formal definition is useful for further work with the formalism, e.g. its verification
with methods such as model checking. Furthermore, the new formalism combines well-known
concepts, for which different interpretations exist, such as synchronous channels [8, 10] and
nets consisting of multiple sub-nets [11, 13]. A formal definition gives clarity over the concepts,
their nuances and removes any ambiguity. One example is in the definition of synchronous
channels; There exist definitions where synchronization may happen over an arbitrary number
of transitions and even with cyclic synchronization [10], or limited to exactly two transitions [8].
   Providing an implementation for the formalism allows modelers to directly use the formalism
and create models of concurrent, communicating systems. Furthermore, an implementation
allows to simulate the behavior of such nets. With that, modelers can directly observe the
state changes that can occur in a net and students are able to better understand the underlying
semantics of a net.
   Information exchange between different communicating transitions is enabled via multiple
parameters for the channels. Parameters can come in two forms: Either, a parameter is a positive
integer. In that case, it indicates how many tokens get transferred to the communication partner.
Or, a parameter is a free variable. Then, the variable can be used to inscribe arcs in the transition’s
pre-/post-set to consume or produce as many tokens as the free variable’s value, determined
during simulation by the partner transition. Like in [8] and [10], there is no notion of direction
in communication.
   For modelers, it is very useful to partition nets into several parts. With that, semantically
different parts in a net can be separated. That makes the model clearer and easier to extend.
For instance, in the well-known example of a producer-consumer system [15], one could
separate producers and consumers into their own nets. Each individual net can be extended
with complex behavior like different produced goods or complex workflows to consume or
order goods, without changing the other net and keeping a direct semantic structuring for
viewers of the model. Further, multiple instances of each net can be created for the simulation,
allowing to easily simulate different interactions of multiple producers and consumers in several
smaller net instances instead of a big, cluttered one. A modeler should be able to control how
the communication of different net instances takes place. To control it, they can set hyper-
parameters. These specify how many net instances are created and which synchronizations are
possible.
   Lastly, it should be possible to unfold P/T-nets with channels into ordinary P/T-nets. This is
useful for verification and ensures that the expressiveness of the model stays the same. The
reason why such an unfolding is possible is that each possible synchronization in a PTC-net
can be modeled with one transition. That requirement restricts the formalism such that infinite
possible synchronizations or cyclic calls are prohibited.



                                                  43
�Lukas Voß et al. CEUR Workshop Proceedings                                                  40–59


4. Prototypical Implementations
The implementations for this paper have been developed in Renew1 [16]. Using Renew allows
modelers to create graphical representations, use multiple net files for partitioning nets, and
simulate the behavior after creation.




   (a) Producer and Consumer Synchronizing via a (b) Producer and Consumer Synchronizing via a
   Channel                                       Transition

Figure 1: Synchronization of a Single Producer and Consumer


   Figure 1 depicts the model of a producer and a consumer synchronizing with each other.
On the left side, both synchronize via a channel. Note that the dotted line is only used for
visualization purposes and not part of the actual net. On the right side, the synchronization
takes place with an ordinary transition.
   This example already displays some of the important factors of the new proposed formalism.
First of all, the formalism distinguishes between two different channel types, like the “!?-”
and “?!-transitions” in [8]. Like there, synchronization can only take place between those
different types. Here, they are called downlinks and uplinks, like channels in the Reference
net formalism [10]. Downlinks are denoted with the this-keyword before the channel name.
Uplinks do not have any descriptor in front of the channel name.
   Secondly, the behavior of the synchronizing net can be represented with an ordinary P/T-net.
In this example, exactly one synchronization can take place. That synchronization removes one
product from the producer and the ready token from the consumer. It adds the product to the
consumer and makes the producer ready to produce again. That exact behavior can also be
represented with a single transition instead. But the example already indicates where the new
formalism has its modeling strengths: Using synchronizing transitions, the two cycles are visibly
distinct, the edges clearly depict the producer and consumer. If this example were to be extended
with multiple producers and consumers, a normal P/T-net would require each Product and ready
place to be connected to multiple transitions to allow communication between all producers
and consumers. The net would be cluttered and overlapping arcs would be unavoidable. It
would be difficult to structure the net semantically, i.e. that each producer and consumer is
directly recognizable. Using synchronizing transitions avoids all these problems and allows to
create models with a clear structuring of semantic components.
   The net in Figure 2 depicts the idea of parametric, bi-directional information exchange using
channels. In this net, there are two distinct downlinks and two uplinks of the same channel.
Thus, each downlink has two potential synchronization partners and vice versa. Note that
   1
       https://paose.informatik.uni-hamburg.de/paose/wiki/PTCNets



                                                     44
�Lukas Voß et al. CEUR Workshop Proceedings                                                    40–59




Figure 2: Net with different possibilities to synchronize


the arity of parameters matches for each up-/downlink. If that was not the case, for example
one channel having only one parameter, it would have no potential synchronization partner
in the net. There are four different possible synchronizations, leading to several different
firing sequences and resulting markings. Place 𝑝2 can have 1 to 4 tokens, depending on which
synchronizations take place. To understand this net, it is helpful to look at the directions of
information exchange and the direction of token flow. As always, indicated by the arc direction,
transitions 𝑡1 and 𝑡2 consume tokens from the leftmost place, while 𝑡3 and 𝑡4 create tokens in
place 𝑝2 . However, it is actually the transitions 𝑡1 and 𝑡2 which specify how many tokens are
created in 𝑝2 , while 𝑡3 and 𝑡4 specify how many tokens are consumed in 𝑝1 : Both 𝑡1 and 𝑡2
consume an amount of tokens determined by their local variable 𝑥. This 𝑥 assumes the value of
the first parameter of the synchronization partner, i.e. 1 when synchronizing with 𝑡3 or 2 with
𝑡4 . The amount of created tokens is determined analogously by the second parameter of 𝑡1 ’s
and 𝑡2 ’s inscription.
    For example, if 𝑡1 and 𝑡4 synchronize, 𝑡1 ’s local 𝑥 is bound to 2 and 𝑡4 ’s local 𝑥 is bound
to 1. Thus, during firing, 𝑡1 ’s variable incoming arc requires 2 tokens from 𝑝1 . At the same
time, 𝑡4 ’s variable outgoing arc puts 1 token into 𝑝2 . The resulting marking is (0, 1) and no
more bindings are possible. On the other hand, synchronizing with 𝑡3 consumes only one token
from 𝑝1 , allowing a second firing with 𝑡3 . Firing 𝑡2 synchronized with 𝑡3 twice results in a final
marking of (0, 4).
    Since this net allows four different synchronizations, a static unfolding of this net has four
transitions, one mirroring each effect of the possible synchronizations.

Modular PTC-nets
In both Figure 1 and Figure 2, the communication was between transitions of the same net.
Especially for Figure 1, one can see how with the use of synchronous channels, the semantic
components of a net are emphasized. For these cases, where clear and distinct (yet communicat-
ing) components exist, the emphasis on the componential structure can be further enhanced by
partitioning the net into actual components, i.e. sub-nets, also called modules [13].
   An example for this can be seen in Figure 3. Here, the producer and consumer are a module
each and a storage has been added as well. They all communicate through channels. With the
modular design, it is trivial to replace e.g. a producer with another variant or have multiple
storage modules at the same time.
   For the actual implementation of their synchronization, a system net is used. The general



                                                  45
�Lukas Voß et al. CEUR Workshop Proceedings                                                 40–59




              (a) Producer           (b) Consumer                   (c) Storage




                                          (d) System Net

Figure 3: Modular producers and consumers synchronizing via a storage and coordinated by a system
net


concept of a system net can be found in [17]. In our approach however, the system net acts
purely as a helper net, not meant to be presented to the user or be part of the semantics or
definition. In fact, it is not even a PTC-net. We chose to use a (far) more expressive Reference
net [10] to simulate our modular PTC-net formalism instead of implementing the semantics in
a new simulator. This is why the system net uses inscriptions which are not valid or do not
exist in the PTC-net formalism.
   As a small and very informal detour into the Reference net formalism, the system net keeps
the references of all modular PTC-nets and uses them to initiate communication between two
respective PTC-nets. These are the two transitions on the right-hand side of the system net.
They both ask for two PTC-nets and then invoke the channel store (in the upper case) on both,
requiring that their channel parameter is the same. The binding search of Reference nets is
also very similar to unification, known from functional and logic programming languages. For
the system nets this means in particular that there is also no notion of direction and variables
only have their local meaning, i.e. even though in the expression storage:store(var) the
variable is called storage, it might as well be bound to a producer, as it also offers the store
channel.
   While in total, the modular PTC-nets are simulated by Reference nets, the system net is



                                               46
�Lukas Voß et al. CEUR Workshop Proceedings                                                       40–59


automatically generated and the implementation provides a full syntax check for the manually
created modular PTC-nets.
   For the automatic generation, there are hyper-parameters set by the user. While there is a
default setting, the user has a fine-grained control over how exactly the synchronization over a
channel is possible. Firstly, the channels themselves can be (de-)selected for synchronization.
Additionally, it can also be controlled how often a certain channel of one partner must be
invoked. Note here that also a synchronous channel may fire concurrently to itself. In the
ongoing example, a synchronizing transition in the system net may e.g. require three calls of
the store channel in one net, together with six calls of the receive channel in another net. Each
of these compositions of two channels is then added as a transition into the system net. All but
the default-setting (where all uplinks can communicate) are syntactic sugar and are just meant
to be means to provide some additional modeling simplicity. They are not further considered in
the formal description of the modular PTC-nets.




              (a) System net creation GUI         (b) GUI to add custom synchronization transitions
                                                  to the system net

Figure 4: Both GUIs for the creation of a system net that coordinates the synchronization of modular
nets

   The modeler can set the hyper-parameters through a provided GUI. The GUI for system
net creation is depicted in Figure 4. The main GUI, depicted on the left side, consists of three
parts. In the upper part, a modeler can select how many and which instances of opened net
templates shall be created. The middle part is an optional default setting for synchronization: If
selected, all synchronous channels can synchronizes exactly with two different net instances.
However, if other synchronization options are desired for modeling purposes, these can be
added and created manually through the settings in the lower part. The user is then presented
the GUI on the right hand side. Here, synchronizations can manually be specified. For each net
instance that is created as defined by the first setting, the number of channel calls required in a
synchronization can be defined. With that, a modeler has control over the creation of a system
net, while it is guaranteed that the system net is always syntactically correct.
   As a final note, modular PTC-nets know two different kinds of synchronization: Synchro-
nization within one net and synchronization between two nets. The former remains unchanged
by using matching up- and downlinks, while the latter is realized by uplinks only.



                                                47
�Lukas Voß et al. CEUR Workshop Proceedings                                                   40–59


Modeling with PTC-nets
Synchronous channels, parameters, and modularity all are beneficial for modeling. We have
already seen an example of this in Figure 3. Leaving the system net aside which is needed
for implementation purposes, the modeled system is clearly separated and can be understood
quickly. The modularity allows to separate all modeled entities and the interaction between
these entities is quickly clear because of the channels. It is also simple to think of a consumer
which can consume multiple products at once, e.g. with a storage which can send packages
one by one, or as a bundle (which is maybe cheaper, in a more elaborate model), making use of
channel parameters.
   Another particularity of the PTC-net’s synchronous channels and their restrictions are
depicted in earlier presented Figure 2. When looking at the meaning of the transitions, it might
seem unintuitive at first that a transition knows one parameter, but not the other one, e.g.
paying a fixed cost for an unknown reward. But this makes PTC-nets especially useful to model
simultaneous actions and processes under uncertainty. Due to the nature of bi-directional
information exchange in parametric synchronous channels, different parts of a system (agents)
can hold partial information, that is combined when synchronizing. Each agent in a scenario
can be modeled independently. These properties make PTC-nets excellent for modeling game
theory scenarios, which would not be the first time that Petri net formalisms can be a useful
model for economic concepts.




                                 (a) Trader            (b) Supplier

Figure 5: Model of Trader-Supplier interaction using modular PTC-nets


   Imagine a trader, regularly buying ingredients from a supplier. The ingredients are not always
identical: Sometimes, they are of high quality and well worth the price, whereas some other
times, they are of low quality. From the perspective of the supplier, they want to sell as many
low quality products with lower production costs as possible while maintaining the relations to
the customer. If tricked too often, the trader will only buy ingredients at a lower price, assuming
that they receive low-quality ingredients. If that is the case, the supplier occasionally needs to
send ingredients of high quality, to convince the trader to buy for a higher price again.



                                                48
�Lukas Voß et al. CEUR Workshop Proceedings                                                   40–59


  A model of this is depicted in Figure Figure 5. Note that the selection of numbers changes
the outcome of the model. Currently, if simulated long enough, the trader will profit and
make money in the long run. If, however, the production costs for the supplier for low-quality
ingredients were even smaller, the supplier would profit as well. The modular concept allows to
instantiate multiple traders or suppliers. Also, different suppliers or traders with other ratios
could be added, to simulate a whole ecosystem and analyze which participants go bankrupt,
remain able to participate, or flourish.


5. Formal Definition
In the following, a single PTC-net and its behavior is defined. The PTC-net definition itself is an
extension of Definition 2 by synchronous channels. For the definitions, all of the requirements
discussed in Section 3 are considered. Because the synchronization of transition in partitioned
PTC-nets orks slightly different, synchronization between different net instances is described in
a separate section.

Synchronization within a Single PTC-Net
Definition 2. A P/T-net with synchronous channels (PTC-net) is a tuple
  (𝑃, 𝑇, 𝐹, 𝑊𝑠𝑦𝑛𝑐 , 𝑚0 , 𝑉 𝑎𝑟, 𝐶ℎ, 𝐶𝐸), containing

    • 𝑃 : Set of places,

    • 𝑇 : Set of transitions,

    • 𝐹 ⊆ (𝑃 × 𝑇 ) ∪ (𝑇 × 𝑃 ): Flow relation,

    • 𝑊𝑠𝑦𝑛𝑐 : 𝐹 → N0 ∪ 𝑉 𝑎𝑟: Arc weights,

    • 𝑚0 : 𝑃 → N0 : Initial marking,

    • 𝑉 𝑎𝑟: Set of channel variables

    • 𝐶ℎ: Set of channels

    • 𝐶𝐸 : 𝑇 ⇀ (𝑡𝑦𝑝𝑒, 𝑐ℎ, 𝑋): Channel expression function with
         – 𝑡𝑦𝑝𝑒 ∈ {uplink, downlink}
         – 𝑐ℎ ∈ 𝐶ℎ
         – 𝑋 is a (possibly empty) tuple of channel variables and/or positive integers.

  Further, we require that variables on arcs connected to synchronous channels must appear in
the respective transition’s channel variable tuple, or more formally:

    ∀𝑡 ∈ 𝑇 : ∀𝑣 ∈ {𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡) | 𝑝 ∈ 𝑃 } ∪ {𝑊𝑠𝑦𝑛𝑐 (𝑡, 𝑝) | 𝑝 ∈ 𝑃 } : (𝑣 ∈ 𝑉 𝑎𝑟 ⇒ 𝑣 ∈ 𝑋)

  This is simply necessary, because otherwise the value which a variable is bound to cannot
be resolved. In [10] this exact scenario is actually possible, free variables that do not occur



                                                49
�Lukas Voß et al. CEUR Workshop Proceedings                                                     40–59


in the transition inscription on arcs from places to transitions can be used to model a “take
anything”-behavior. For the PTC-net formalism, however, we wanted to maintain as much
deterministic behavior as possible. Therefore, undetermined variables are forbidden.
   Compared to ordinary P/T-nets, this formalism includes synchronous channels for transition
communication. For that, a set of channels and channel expressions have been added. Channels
themselves are distinguished by their names. The channel expressions further determine how
synchronous channels can fire. With channel variables, transitions can communicate the number
of tokens being transferred, with which then arcs can also be inscribed. It is an ordered tuple
to allow unambiguous binding search. A parameter at position 𝑖 of transition 𝑡1 simply binds
with the parameter at position 𝑖 of transition 𝑡2 . This already implies that the arity of two
synchronizing transition’s channel variables must be equal, formalized in the next definition.
   As a side note, since each transition may be inscribed with at most one channel expression,
cyclic bindings are impossible. This is necessary to ensure that the unfolded P/T-nets remain
finite.
   The aforementioned details indicate that, in addition to the definition how a P/T-net with
synchronous channels looks like, it is necessary to define how and when transitions in such nets
can fire. Transitions not inscribed with a channel behave as known for P/T-nets and defined in
Section 2. Yet, the behavior of channel transitions needs to be defined as well. For that, it is first
defined how many tokens are needed on a place in front of two synchronizing transitions to be
activated. We refer to the 𝑖’th element of a tuple T with 𝑇 (𝑖), using 1-indexing.

Definition 3. The number of tokens required on a place 𝑝 in the pre-set of transitions 𝑡1 and
𝑡2 with parameter tuples 𝑋 and 𝑌 in order to synchronously fire them is equal to
                       ⎧
                       ⎪
                       ⎪ 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡1 ) + 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡2 ) 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡1 ) ∈ N ∧ 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡2 ) ∈ N
                       ⎪
                       ⎪
                       ⎪
                         𝑋(𝑖) + 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡1 )           𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡1 ) ∈ N ∧ 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡2 ) ∈ 𝑉 𝑎𝑟
                       ⎪
                       ⎪
                       ⎪
                       ⎪
                                                         ∧𝑖 ∈ N : 𝑌 (𝑖) = 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡2 )
                       ⎪
                       ⎪
                       ⎪
                       ⎪
                       ⎪
                       ⎪
                       ⎨
   *                     𝑌 (𝑖) + 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡2 )          𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡1 ) ∈ 𝑉 𝑎𝑟 ∧ 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡2 ) ∈ N
𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡1 , 𝑡2 ) :=
                       ⎪
                       ⎪
                       ⎪
                       ⎪                                 ∧𝑖 ∈ N : 𝑋(𝑖) = 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡1 )
                       ⎪
                       ⎪
                       ⎪
                       ⎪
                       ⎪
                       ⎪
                       ⎪ 𝑋(𝑖) + 𝑌 (𝑗)                    𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡1 ) ∈ 𝑉 𝑎𝑟 ∧ 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡2 ) ∈ 𝑉 𝑎𝑟
                                                         ∧𝑖 ∈ N : 𝑌 (𝑖) = 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡2 )
                       ⎪
                       ⎪
                       ⎪
                       ⎪
                                                         ∧𝑗 ∈ N : 𝑋(𝑗) = 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡1 )
                       ⎩

Analogously, the number of produced tokens on each place after synchronized firing needs to
be defined:




                                                 50
�Lukas Voß et al. CEUR Workshop Proceedings                                                      40–59



                       ⎧
                       ⎪ 𝑊𝑠𝑦𝑛𝑐 (𝑡1 , 𝑝) + 𝑊𝑠𝑦𝑛𝑐 (𝑡2 , 𝑝)
                       ⎪                                   𝑊𝑠𝑦𝑛𝑐 (𝑡1 , 𝑝) ∈ N ∧ 𝑊𝑠𝑦𝑛𝑐 (𝑡2 , 𝑝) ∈ N
                       ⎪
                       ⎪
                       ⎪
                         𝑋(𝑖) + 𝑊𝑠𝑦𝑛𝑐 (𝑡1 , 𝑝)             𝑊𝑠𝑦𝑛𝑐 (𝑡1 , 𝑝) ∈ N ∧ 𝑊𝑠𝑦𝑛𝑐 (𝑡2 , 𝑝) ∈ 𝑉 𝑎𝑟
                       ⎪
                       ⎪
                       ⎪
                       ⎪
                                                           ∧𝑖 ∈ N : 𝑌 (𝑖) = 𝑊𝑠𝑦𝑛𝑐 (𝑡2 , 𝑝)
                       ⎪
                       ⎪
                       ⎪
                       ⎪
                       ⎪
                       ⎪
                       ⎨
 *                       𝑌 (𝑖) + 𝑊𝑠𝑦𝑛𝑐 (𝑡2 , 𝑝)            𝑊𝑠𝑦𝑛𝑐 (𝑡1 , 𝑝) ∈ 𝑉 𝑎𝑟 ∧ 𝑊𝑠𝑦𝑛𝑐 (𝑡2 , 𝑝) ∈ N
𝑊𝑠𝑦𝑛𝑐 (𝑡1 , 𝑡2 , 𝑝) :=
                       ⎪
                       ⎪
                       ⎪
                       ⎪                                   ∧𝑖 ∈ N : 𝑋(𝑖) = 𝑊𝑠𝑦𝑛𝑐 (𝑡1 , 𝑝)
                       ⎪
                       ⎪
                       ⎪
                       ⎪ 𝑋(𝑖) + 𝑌 (𝑗)
                       ⎪
                       ⎪
                       ⎪                                   𝑊𝑠𝑦𝑛𝑐 (𝑡1 , 𝑝) ∈ 𝑉 𝑎𝑟 ∧ 𝑊𝑠𝑦𝑛𝑐 (𝑡2 , 𝑝) ∈ 𝑉 𝑎𝑟
                                                           ∧𝑖 ∈ N : 𝑌 (𝑖) = 𝑊𝑠𝑦𝑛𝑐 (𝑡2 , 𝑝)
                       ⎪
                       ⎪
                       ⎪
                       ⎪
                                                           ∧𝑗 ∈ N : 𝑋(𝑗) = 𝑊𝑠𝑦𝑛𝑐 (𝑡1 , 𝑝)
                       ⎩

      * (𝑝, 𝑡 , 𝑡 ) returns the number of tokens that are needed on place 𝑝 in order to fire
  𝑊𝑠𝑦𝑛𝑐       1 2
both synchronous transitions 𝑡1 and 𝑡2 . Index 𝑖 is used to describe the tuple index of the
variable binding: If an arc is inscribed with the variable 𝑥 and 𝑥 is the second parameter of
the synchronizing transition, then 𝑖 is equal to 2 and thus refers to the second element of the
partner’s parameter tuple. If the arcs from 𝑝 to 𝑡1 and 𝑡2 are both inscribed with integers, these
values can simply be added together. If at least one of the arcs is inscribed with a variable, the
corresponding value of that variable in the tuple of the communication partner is used. That
                                 * (𝑡 , 𝑡 , 𝑝).
idea is used analogously for 𝑊𝑠𝑦𝑛𝑐     1 2




                                (a) Case 1                   (b) Case 2




                                (c) Case 3                   (d) Case 4

Figure 6: The four cases of Definition 3 visualized

                        *
The different cases of 𝑊𝑠𝑦𝑛𝑐 are visualized in Figure 6:
Case 1: Both incoming arcs are inscribed with integers and not with variables. Thus, ordinary arc



                                                  51
�Lukas Voß et al. CEUR Workshop Proceedings                                                  40–59


weights can be used and the number of required tokens in order to fire 𝑡1 and 𝑡2 synchronously
is 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡1 ) + 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡2 ) = 3 + 2.
Case 2: The incoming arc to 𝑡1 is inscribed with an integer, but 𝑡2 ’s incoming arc is inscribed
with a variable. Since the variable is the first element of that transition’s parameter tuple, the
first element of the partner’s parameter tuple gets added: 𝑋(1) + 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡1 ) = 2 + 3.
Case 3: This one is equivalent to Case 2, only that the first parameter of 𝑡2 is used instead of
𝑡1 ’s: 𝑌 (1) + 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡2 ) = 2 + 3.
Case 4: Both arcs are inscribed with variables. Here, 𝑖 = 1 and 𝑗 = 2, because the first element
of 𝑡1 ’s parameter tuple indicates the number of tokens for 𝑦 and the second element of 𝑡2 ’s
parameter tuple indicates the number of tokens for 𝑥: 𝑋(1) + 𝑌 (2) = 2 + 3.
    The same principle can be applied for outgoing arcs. For cases where only one transition is
                    *
connected to 𝑝, 𝑊𝑠𝑦𝑛𝑐    still yields, since arc weights for "unconnected" arcs are defined as 0.

Definition 4. In the following, we define the structural requirements for two transitions to be
able to synchronize.
  For an uplink 𝑢 with 𝐶𝐸(𝑢) = (𝑢𝑝𝑙𝑖𝑛𝑘, 𝑐ℎ𝑢 , 𝑌 ) and a downlink 𝑑 with 𝐶𝐸(𝑑) =
(𝑑𝑜𝑤𝑛𝑙𝑖𝑛𝑘, 𝑐ℎ𝑑 , 𝑋), we say that 𝑢 matches 𝑑 iff.

       𝑐ℎ𝑢 = 𝑐ℎ𝑑                                                                               (1)
     ∧ |𝑋| = |𝑌 |                                                                              (2)
     ∧ ((𝑋(𝑖) ∈ 𝑉 𝑎𝑟 ∧ 𝑌 (𝑖) ∈ N0 ) ∨ (𝑋(𝑖) ∈ N0 ∧ 𝑌 (𝑖) ∈ 𝑉 𝑎𝑟) : ∀𝑖 ∈ {1, 2, ..., |𝑋|})      (3)

If 𝑢 matches 𝑑, 𝑢 and 𝑑 could potentially fire synchronously, if there are enough tokens at some
point during simulation to satisfy 𝑊𝑠𝑦𝑛𝑐 * . Definition 5 contains multiple requirements that

need to be fulfilled in order to fire two synchronous transitions. Each line adds an additional
requirement:
Requirement 1: Communication is only possible between an uplink and a downlink transition
with the same channel.
Requirement 2: Both tuples in the channel expressions need to contain the same amount of
parameters.
Requirement 3: For any parameter position, exactly one transition’s inscription has an integer
at this position and the other has a variable at this position.
   By using Definition 3 and Definition 4, we can then give the full definition of when two
synchronous channels are activated.

Definition 5. In the following, the requirements for a downlink to be enabled are defined. The
requirements for an uplink are identical, merely replacing uplink with downlink and vice versa.
  A downlink transition 𝑡1 with 𝐶𝐸(𝑡1 ) = (𝑑𝑜𝑤𝑛𝑙𝑖𝑛𝑘, 𝑐ℎ1 , 𝑋) is enabled iff

                     ∃𝑡2 ∈ 𝑇 :𝐶𝐸(𝑡2 ) = (𝑢𝑝𝑙𝑖𝑛𝑘, 𝑐ℎ1 , 𝑌 )                                     (4)
                                        ∙     ∙                *
                               ∧ ∀𝑝 ∈ 𝑡1 ∪        𝑡2 : 𝑚(𝑝) ≥ 𝑊𝑠𝑦𝑛𝑐 (𝑝, 𝑡1 , 𝑡2 )              (5)
                               ∧ 𝑡2 matches 𝑡1                                                 (6)




                                                  52
�Lukas Voß et al. CEUR Workshop Proceedings                                                  40–59


  After firing the bound downlink transition 𝑡1 and uplink transition 𝑡2 , the net’s marking
changes. In general, the successor marking is not calculated differently from successor mark-
ings of ordinary P/T-nets, but its definition has to account for arcs that are inscribed with
variables, and thus their consumption or production of tokens depends on the specific bind-
       * (𝑝, 𝑡 , 𝑡 ) and 𝑊 * (𝑡 , 𝑡 , 𝑝) can be used in the definition of the actual successor
ing. 𝑊𝑠𝑦𝑛𝑐     1 2          𝑠𝑦𝑛𝑐 1 2
marking:

Definition 6. The successor marking 𝑚′ (𝑝) after firing two synchronous transitions is defined
as
               𝑚′ (𝑝) := 𝑚(𝑝) + 𝑊𝑠𝑦𝑛𝑐
                                   *                     *
                                        (𝑝, 𝑡1 , 𝑡2 ) − 𝑊𝑠𝑦𝑛𝑐 (𝑡1 , 𝑡2 , 𝑝)∀𝑝 ∈ 𝑃

Synchronization Between Different Net Instances
As described in Section 4, the formalism allows to partition P/T-nets into sub-nets called
modules. In the following, the adaptations to the formal definitions are described. The modules’
communication is similar to the communication within one PTC-net that is constructed by
the union of all modules, which is why the definitions for modular PTC-nets are given only as
extensions to the PTC-net definition. Since the described system net is only implementation-
specific, it is not included in the formal definition. As already mentioned in Section 4, only the
default case of communication is considered formally, i.e. every uplink can communicate with
each matching uplink from other nets. The major difference is then merely that two uplinks of
the same channel can also fire if they are from different nets.

Definition 7. A modular PTC-net is a 1-tuple (𝑃 𝑇 𝐶), containing

    • 𝑃 𝑇 𝐶: A set of PTC-nets, for which we additionally require that
         – the place sets of all PTC-nets are pairwise disjoint, and
         – the transition sets of all PTC-nets are pairwise disjoint.

Definition 8. In the following, we extend the definition of matching from Definition 4 by
another option to express that two uplinks from different nets can structurally fire together.
  In a modular PTC-net ℳ = (𝑃 𝑇 𝐶), for an uplink 𝑢 from net 𝑁 ∈ 𝑃 𝑇 𝐶 with channel
expression function 𝐶𝐸 and 𝐶𝐸(𝑢) = (𝑢𝑝𝑙𝑖𝑛𝑘, 𝑐ℎ𝑢 , 𝑌 ) and another downlink 𝑑 from net 𝑁
and 𝐶𝐸(𝑑) = (𝑑𝑜𝑤𝑛𝑙𝑖𝑛𝑘, 𝑐ℎ𝑣 , 𝑋), we say that 𝑢 matches 𝑑 if

       𝑐ℎ𝑢 = 𝑐ℎ𝑣                                                                              (7)
     ∧ |𝑋| = |𝑌 |                                                                             (8)
     ∧ ((𝑋(𝑖) ∈ 𝑉 𝑎𝑟 ∧ 𝑌 (𝑖) ∈ N0 ) ∨ (𝑋(𝑖) ∈ N0 ∧ 𝑌 (𝑖) ∈ 𝑉 𝑎𝑟) : ∀𝑖 ∈ {1, 2, ..., |𝑋|})     (9)

  For this same uplink 𝑢 from net 𝑁 ∈ 𝑃 𝑇 𝐶, we say for another uplink 𝑢′ from net
𝑁 ′ ∈ 𝑃 𝑇 𝐶 with channel expression function 𝐶𝐸 ′ , channel variables 𝑉 𝑎𝑟′ and 𝐶𝐸 ′ (𝑢′ ) =
(𝑢𝑝𝑙𝑖𝑛𝑘, 𝑐ℎ𝑢′ , 𝑋), that 𝑢 matches 𝑢′ if

     𝑁 ̸= 𝑁 ′                                                                                (10)



                                               53
�Lukas Voß et al. CEUR Workshop Proceedings                                                   40–59


   ∧ 𝑐ℎ𝑢 = 𝑐ℎ𝑢′                                                                                (11)
   ∧ |𝑋| = |𝑌 |                                                                                (12)
                    ′
   ∧ ((𝑋(𝑖) ∈ 𝑉 𝑎𝑟 ∧ 𝑌 (𝑖) ∈ N0 ) ∨ (𝑋(𝑖) ∈ N0 ∧ 𝑌 (𝑖) ∈ 𝑉 𝑎𝑟) : ∀𝑖 ∈ {1, 2, ..., |𝑋|})        (13)

  Two transitions match exactly iff they fulfill either one of these cases. Definitions 2, 3, 5
& 6 can easily be transferred using Definition 8 instead of Definition 4 to fully describe the
semantics of a modular PTC-net.


6. Unfolding PTC-nets to P/T-nets
As stated before, it is desirable to show that the PTC-net formalism is equivalent to the P/T-net
formalism. Thus, it is ensured that even though new modeling techniques are added, no further
expressiveness comes with it. Additionally, this always allows to fall back to the well-explored
P/T-net verification techniques. We give a proof outline by providing a construction rule to
convert an arbitrary PTC-net into an equivalent P/T-net. Since every P/T-net is also a PTC-net
with 𝑉 𝑎𝑟 = 𝐶ℎ = ∅, the other direction is trivially true.
   We start by providing a construction rule for a single PTC-net and show afterwards how
to create a single PTC-net from modular PTC-nets. Because this is more of a sketch of a
construction rule, a rather visual and practical approach is chosen to avoid bloating it with
small details and mathematical subtleties. We assume w.l.o.g. that the channel variables of each
up- and downlink are disjoint, which can be ensured by introducing new channel variables for
each transition.

Algorithm 1 Unfolding a PTC-net into a P/T-net
  for each downlink 𝑑 do
      for each uplink 𝑢 such that 𝑢 matches 𝑑 do
          Let 𝑋𝑢 /𝑋𝑑 be the channel parameters of 𝑢/𝑑
          Create a new transition 𝑡*
          Copy each arc connected to 𝑢 or 𝑑, connected to 𝑡* instead
          for each 𝑥 ∈ 𝑉 𝑎𝑟 at position 𝑖 in 𝑋𝑢 do
              Replace each arc weight 𝑤 = 𝑥 in all arcs connected to 𝑡* with 𝑋𝑑𝑖
          end for
          for each 𝑥 ∈ 𝑉 𝑎𝑟 at position 𝑖 in 𝑋𝑑 do
              Replace each arc weight 𝑤 = 𝑥 in all arcs connected to 𝑡* with 𝑋𝑢𝑖
          end for
      end for
  end for
  Remove all uplinks, downlinks and their connected arcs

  One can quickly convince oneself that this algorithm constructs a new transition for each
possible binding and resolves all variables to fixed integers, leaving only uninscribed transitions
and arc weights without variables. A definition for the resulting unfolded net is given in
Definition 9.



                                                54
�Lukas Voß et al. CEUR Workshop Proceedings                                                  40–59


Definition 9. For a given PTC-net 𝑁 = (𝑃, 𝑇, 𝐹, 𝑊𝑠𝑦𝑛𝑐 , 𝑚0 , 𝑉 𝑎𝑟, 𝐶ℎ, 𝐶𝐸) an equivalent
P/T-net without synchronous channels is given by 𝑁𝑈 = (𝑃𝑈 , 𝑇𝑈 , 𝐹𝑈 , 𝑊𝑈 , 𝑚0𝑈 ) with:


    • 𝑃𝑈 = 𝑃

    • 𝑇𝑈 = {𝑡 ∈ 𝑇 | 𝐶𝐸(𝑡) is undefined} ∪ {𝑡𝑑,𝑢 | 𝑑, 𝑢 ∈ 𝑇 ∧ 𝑢 matches 𝑑}

    • 𝐹𝑈 = 𝐹 ∩ ((𝑃 × 𝑇𝑈 ) ∪ (𝑇𝑈 × 𝑃 )) ∪ {(𝑝, 𝑡𝑑,𝑢 ) | (𝑝, 𝑑) ∈ 𝐹 ∨ (𝑝, 𝑢) ∈ 𝐹 } ∪ {(𝑡𝑑,𝑢 , 𝑝) |
      (𝑑, 𝑝) ∈ 𝐹 ∨ (𝑢, 𝑝) ∈ 𝐹 }
                  ⎧
                  ⎨ 𝑊𝑠𝑦𝑛𝑐 (𝑥, 𝑦)    if 𝑥, 𝑦 ∈ 𝑃 ∪ 𝑇
                        * (𝑥, 𝑑, 𝑢) if 𝑥 ∈ 𝑃 ∧ 𝑦 = 𝑡
                     𝑊𝑠𝑦𝑛𝑐
    • 𝑊 (𝑥, 𝑦) =                                      𝑑,𝑢
                        * (𝑑, 𝑢, 𝑦) if 𝑥 = 𝑡
                     𝑊𝑠𝑦𝑛𝑐                   𝑑,𝑢 ∧ 𝑦 ∈ 𝑃
                  ⎩

    • 𝑚0𝑈 = 𝑚0


   From here, constructing an equivalent PTC-net from a modular PTC-net is fairly straightfor-
ward. It is almost sufficient to simply join all nets into one big net. Only the lack of up- and
downlinks in modular PTC-nets needs to be handled. Since every transition can fire with every
other transition with the same channel, this is analogous to if every synchronous transition
would be an up- and downlink at the same time. Thus, we replace each synchronous channel
with both an up- and a downlink.
   With the construction rule, we can show that equivalent P/T-net’s transitions grow at most
quadratically with the number of synchronous channels. For every downlink, an amount of
transitions equal to the amount of matching uplinks are created. This number is maximized if
every transition is inscribed with the same channel, half the transitions are downlinks and the
other half are matching uplinks. Then, the new number of transitions is given by
                                            ⌈︁ |𝑇 | ⌉︁ ⌊︁ |𝑇 | ⌋︁
                                 |𝑇 * | =             ·           ≤ |𝑇 |2
                                                2          2
  As usual with such considerations, the case where nets only consist of matching up- and
downlinks is a rather theoretical one. Just like the case of a PTC-net without any synchronous
channels is rather unlikely to be a practical case, one can expect net unfoldings that have less
than this maximum number of transitions.


7. Verification
As a final remark on the introduced (modular) PTC-net formalism, we also want to explore some
thoughts on their verification. Research on verification methods tailored for Petri Net formalisms
which have some sort of hierarchical or modular structure already exists [12, 13, 18, 19, 20].
Modular CPNs with transition fusion sets [13] is one of the more popular approaches for a
formalism and methods for verification have also been described [13, 19]. However, their
transition fusion sets do not allow synchronization over parameters, which PTC-nets do. Thus,
adaptations are necessary to apply the algorithms to PTC-nets. Further, we will discuss how the



                                                    55
�Lukas Voß et al. CEUR Workshop Proceedings                                                      40–59




Figure 7: PTC-nets where Net A cannot know on its own if its transition T1 is activated without
knowing the state of other nets.


parametrized, but restricted synchronous channels for PTC-nets can be used advantageously
for state space analysis using the example of modular state spaces.
   The modular state spaces in [19] can generate state spaces by generating the state space of
each module and synchronizing them over their transition fusion sets using a synchronization
graph. This has two major advantages: Interleavings of unsynchronized transitions are not
explicitly stored, thus the reachability graph can be represented with significantly fewer nodes
and edges, the fewer the less synchronization happens. Secondly, the modules can partly
be generated in parallel. In the proposed algorithm, the state spaces of each module can be
constructed without knowledge of the other modules, until transitions from transition fusion
sets are activated. Then, these can be synchronized with nodes from other state spaces which
have corresponding transitions activated.
   With the parameterized synchronous channels of PTC-nets, a modular state space cannot
be constructed directly with the methods of [19]. The central problem is, that a transition
might not know, whether it is activated or not. In the Figure 7, the transition T1 of Net A could
potentially be activated. But Net A can never know on its own, since the number of required
tokens is dependent on the other transitions T2 and T3. But even more, this is not statically
predetermined, but can depend on its own state or other net states as well. Here, T1 would
be activated if either T2 is activated, or it has a third token in its place. Therefore, a process
generating a module’s state space cannot simply announce its activated transition.
   What it can do instead, is offer a partial binding. This is the first example where the restrictions
on synchronous channels make the verification a lot easier. The parameters of synchronous
channels are always bound from exactly one side. For each parameter, the module either binds
it or "receives" a binding for it, and this is structurally fixed. So instead of announcing that a
synchronous channel is activated, a module can announce that it is able to bind all variables
from its side, that is has a partial binding. In the example of Figure 7, Net A’s process can
announce that T1 is now activated with 𝑥 = 1 and 𝑥 = 2. And since PTC-nets know only one
kind of token, its sufficient to announce the highest number of tokens for each parameter to
encode every possible binding. This would already be harder with CPNs, but another advantage
comes with the restrictions on synchronous channels.
   The important aspect here, is that all possible bindings are actually structurally known.




                                                  56
�Lukas Voß et al. CEUR Workshop Proceedings                                                 40–59


Therefore, a module would actually know which other modules are interested in particular
bindings and can send them exactly the bindings that could lead to a synchronization, thus
minimizing synchronization between processes.

Optimistic Modular State Space Generation
Because no implementation is provided in [19], one can only guess about the general time-
efficiency of the algorithms. But the more transition fusion sets exist, the more often will
processes have to wait for synchronization. We propose an optimistic variant of the modular
state space algorithm, which tries to avoid idle processes at the cost of generating too much. It
is especially well-suited for the PTC-net formalisms restrictions on synchronous channels.
   The main idea is simple: Whenever a process is waiting, it starts to explore a random binding
of one of its synchronous channels. At some point, it will be known if this binding was actually
activated and the sub-graph can be kept or discarded. Because the restrictions limit the number
of possible bindings to one per partner transition, there are not too many bindings to choose
from. Thus, also the chances are a lot higher that a correct binding was guessed. It would be
infeasible to purely guess bindings for synchronous channels without restrictions and even
more so for CPNs.
   There are some aspects that should be considered when generating sub-graphs optimistically.
First, exploring transitions which are sure to be active should always have priority. This could
be handled by separating markings to explore into two queues based on their certainty, where
markings are only polled from the ’uncertain’ queue if the other one is empty. Further, by waiting
for other processes, [13] avoid constructing infinite sub-graphs which cannot actually occur.
Special care has to taken here, and if a covering marking is found, it has to be differentiated if
the found cycle lies only in a potential sub-graph or in a certain sub-graph. In the potential
sub-graph case, the exploration of this sub-graph should be stopped, but the overall state
space generation can be continued until the potential binding that initiated this sub-graph is
known to be active. In the other case, the state space generation can stop immediately. To
ensure termination, processes need to announce when they are done. Then, other modules can
immediately stop exploring transitions which would require an active synchronization partner
marked as done.
   Finally, since we provide an implementation of the PTC-net formalism, the implementation
of the verification algorithms is just a small step ahead.


8. Discussion & Outlook
The definition of the formalism was designed to be as close as possible to ordinary P/T-nets.
For that reason, only one arc per direction of a place-transition pair is allowed. An arc is also
inscribed with exactly one value. However, for some modeling scenarios, it can be useful to
allow multiple variables to take from or put into a place. One example for this is a producer
who produces multiple goods, each denoted with its own variable in a channel. If these goods
are synchronized with a storage, that storage’s capacity decreases by the total amount.
   Another desirable addition for modeling purposes is the possibility to synchronize more
than two transitions. This is currently only possible in user-specified synchronizations in



                                               57
�Lukas Voß et al. CEUR Workshop Proceedings                                                  40–59


modular PTC-nets. Such a requirement could be added by allowing multiple downlinks or
uplink/downlink pairs on transitions. However, such an addition could lead to cyclic reference
calls, resulting in infinite unfoldings. To stay close to the original goals of this formalism, it
should only be possible if cyclic calls are explicitly prohibited. With a cycle detection in the
implementation, repeated calls of an acyclic tree structure would be possible.
  Besides these general extensions, there is also another useful extension only for modular
PTC-nets. For specific scenarios, e.g. the dining philosophers problem [21], modular PTC-nets
would benefit greatly if directed synchronization would be possible, i.e. one PTC-net trying to
synchronize with another specified, chosen PTC-net.


9. Conclusion
This paper provides a new formalism which extends ordinary P/T-nets with synchronous
channels. Both a formal definition, as well as an implementation, are provided. The PTC-net
formalism allows transitions to be inscribed with channels. Channel transitions need partners
to fire and can exchange information using parameters.
   Also, the approach allows to partition nets into several comprehensive parts, making modeling
easier. Due to the provided implementation, modelers can create and simulate models such as
agents with incomplete information, where each agent is its own entity.
   We provide an algorithm to unfold PTC-nets into ordinary P/T-nets, together with a defi-
nition of the composition of such an unfolding. Further, the PTC-net formalism offers itself
naturally to already explored verification techniques based on modular structure, with only
small extensions necessary to handle parameters on synchronous channels. Additionally, the
discussed restrictions on the parameters provide structural information which can be used to
an advantage for state space construction and verification.
   Thus, the PTC-net formalism fills a gap between P/T-nets and CPNs, for which many exten-
sions exist, as it offers expressive modeling techniques to model larger systems while remaining
feasible for verification due to its structural restrictions.


References
 [1] J. F. Jensen, T. Nielsen, L. K. Oestergaard, J. Srba, Tapaal and reachability analysis of P/T
     nets, in: Transactions on Petri Nets and Other Models of Concurrency XI, Springer, 2016,
     pp. 307–318.
 [2] K. Wolf, Petri net model checking with LoLA 2, in: International Conference on Applica-
     tions and Theory of Petri Nets and Concurrency, Springer, 2018, pp. 351–362.
 [3] K. Jensen, Coloured Petri nets, in: Petri Nets: Central Models and Their Properties,
     Springer, 1987, pp. 248–299.
 [4] A. V. Ratzer, L. Wells, H. M. Lassen, M. Laursen, J. F. Qvortrup, M. S. Stissing, M. Wester-
     gaard, S. Christensen, K. Jensen, Cpn tools for editing, simulating, and analysing coloured
     Petri nets, in: International Conference on Application and Theory of Petri Nets, Springer,
     2003, pp. 450–462.




                                               58
�Lukas Voß et al. CEUR Workshop Proceedings                                                40–59


 [5] F. Kordon, A. Linard, E. Paviot-Adet, Optimized colored nets unfolding, in: International
     Conference on Formal Techniques for Networked and Distributed Systems, Springer, 2006,
     pp. 339–355.
 [6] A. Bilgram, P. G. Jensen, T. Pedersen, J. Srba, P. H. Taankvist, Improvements in unfolding
     of colored Petri nets, in: International Conference on Reachability Problems, Springer,
     2021, pp. 69–84.
 [7] E. Jessen, R. Valk, Rechensysteme: Grundlagen der Modellbildung, Studienreihe Informatik,
     Springer-Verlag, Berlin Heidelberg New York, 1987.
 [8] S. Christensen, N. D. Hansen, Coloured Petri nets extended with channels for synchronous
     communication, in: R. Valette (Ed.), Application and Theory of Petri Nets 1994, 15th
     International Conference, Zaragoza, Spain, June 20-24, 1994, Proceedings, volume 815 of
     Lecture Notes in Computer Science, Springer, 1994, pp. 159–178.
 [9] C. Lakos, From coloured Petri nets to object Petri nets, in: International Conference on
     Application and Theory of Petri Nets, Springer, 1995, pp. 278–297.
[10] O. Kummer, Referenznetze, Logos Verlag, Berlin, 2002. URL: http://www.logos-verlag.de/
     cgi-bin/engbuchmid?isbn=0035&lng=eng&id=.
[11] P. Huber, K. Jensen, R. M. Shapiro, Hierarchies in coloured Petri nets, in: International
     Conference on Application and Theory of Petri Nets, Springer, 1989, pp. 313–341.
[12] I. A. Lomazova, Nested Petri nets — a formalism for specification and verification of
     multi-agent distributed systems, Fundamenta informaticae 43 (2000) 195–214.
[13] S. Christensen, L. Petrucci, Modular analysis of Petri nets, The Computer Journal 43 (2000)
     224–242.
[14] M. A. Bednarczyk, L. Bernardinello, W. Pawłowski, L. Pomello, Modelling mobility with
     Petri hypernets, in: International Workshop on Algebraic Development Techniques,
     Springer, 2004, pp. 28–44.
[15] W. Reisig, Place/Transition systems, in: W. Brauer, W. Reisig, G. Rozenberg (Eds.), Petri
     Nets: Central Models and Their Properties, Advances in Petri Nets 1986, Part I, Proceedings
     of an Advanced Course, Bad Honnef, Germany, 8-19 September 1986, volume 254 of Lecture
     Notes in Computer Science, Springer, 1986, pp. 117–141.
[16] O. Kummer, F. Wienberg, M. Duvigneau, L. Cabac, M. Haustermann, D. Mosteller, Renew –
     the Reference Net Workshop, 2022. URL: http://www.renew.de/, release 4.0.
[17] R. Valk, Object Petri nets – using the nets-within-nets paradigm, in: J. Desel, W. Reisig,
     G. Rozenberg (Eds.), Advances in Petri Nets: Lectures on Concurrency and Petri Nets,
     volume 3098 of Lecture Notes in Computer Science, Springer-Verlag, Berlin Heidelberg New
     York, 2004, pp. 819–848. URL: http://dx.doi.org/10.1007/978-3-540-27755-2_23.
[18] M. Notomi, T. Murata, Hierarchical reachability graph of bounded Petri nets for concurrent-
     software analysis, IEEE Transactions on Software Engineering 20 (1994) 325–336.
[19] S. Christensen, L. Petrucci, Modular state space analysis of coloured Petri nets, in:
     International Conference on Application and Theory of Petri Nets, Springer, 1995, pp.
     201–217.
[20] P. Kemper, Reachability analysis based on structured representations, in: International
     Conference on Application and Theory of Petri Nets, Springer, 1996, pp. 269–288.
[21] C. A. R. Hoare, Communicating Sequential Processes, Prentice-Hall, 1985.




                                              59
�