<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>An Enhanced Rewriting Logic Based Semantics for High-Level Petri nets</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ammar Boucherit</string-name>
          <email>ammar-boucherit@univ-eloued.dz</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Kamel Barkaoui</string-name>
          <email>kamel.barkaoui@cnam.fr</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Osman Hasan</string-name>
          <email>osman.hasan@seecs.nust.edu.pk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Computer Science Department, University of El-Oued</institution>
          ,
          <country country="DZ">Algeria</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>SEECS, National University of Sciences and Technology (NUST)</institution>
          ,
          <country country="PK">Pakistan</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>SYS: Equipe Systemes su</institution>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>rs</institution>
          ,
          <addr-line>Cedric/CNAM</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <fpage>155</fpage>
      <lpage>174</lpage>
      <abstract>
        <p>Petri nets and their numerous extensions (or subclasses) are one of the popular traditional formalisms for the speci cation and veri cation of concurrent systems. Furthermore, due to the expressivity of rewriting logic, Maude and its associated analysis tools have been adopted in many recent works for executing and analyzing Petri nets. In this paper, we rst present the existing semantics for the standard Petri nets. Then, we demonstrate the usefulness and the expressivity of the new enhanced semantics |that encodes the sets of tokens in a place by their cardinality | for such type of Petri nets. Thereafter, we show that such semantics can naturally express di erent variants of high-level Petri nets such as Petri nets with inhibitor arcs, variable arc weights, and coloured Petri nets. The distinguishing feature of this semantics is that it facilitates the checking of behavioral properties related to boundedness and liveness via the Maude LTL model checker.</p>
      </abstract>
      <kwd-group>
        <kwd>Maude</kwd>
        <kwd>Petri nets</kwd>
        <kwd>Rewriting logic</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Petri nets were rst introduced in 1962 [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], and are still one of the most e ective,
useful and reliable formalisms in practice for modeling, and analyzing discrete
and dynamic systems [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The success of Petri nets is mainly due to some of
their distinguishing features, such as the graphical notation, simple semantics,
and the rich mathematical theory [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. However, the analysis and simulation of
complex systems modeled by Petri nets require user-friendly formal tools [
        <xref ref-type="bibr" rid="ref11 ref30 ref9">11, 9,
30</xref>
        ].
      </p>
      <p>
        Maude [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is an executable programming language that has been adopted in
many recent works for specifying, executing and analyzing Petri nets [
        <xref ref-type="bibr" rid="ref14 ref16 ref25 ref3">3, 25, 14,
16</xref>
        ], thanks to the expressivity of rewriting logic [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] and its associated analysis
Copyright © 2021 for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4.0).
tools. In particular, its support for module hierarchies, meta-level programming
and parameterization allows designers to conceptually decompose the speci
cation into parts (modules) [
        <xref ref-type="bibr" rid="ref10 ref27 ref6">6, 27, 10</xref>
        ]. This results practically in modularity,
reusability, reduction of the development e ort and time, as well as facilitating
speci cation and veri cation of large and complex Petri net-based models.
In this context, there exists a rewriting logic-based semantics for Petri nets [
        <xref ref-type="bibr" rid="ref20 ref28">20,
28</xref>
        ] that uses the names of places to represent tokens and it has always been
accepted as a simple way for representing token instances. However, this
representation causes a di culty in manipulating arcs multiplicities and the number
of tokens within places. Moreover, this also gives the impression as if the marking
change of a Petri net is a change made on tokens rather than a change of states
of places. Moreover, the existing semantics makes the representation of priority
or testing boundedness of a Petri net quite di cult even with some additional
equations and major modi cations. Therefore, having a counter may facilitate
the manipulation of arcs multiplicities and avoid having to continuously count
the number of tokens in a place.
      </p>
      <p>In this paper, we propose an enhanced semantics based on a simple, intuitive and
structured notation for Petri nets in rewriting logic. While tokens are repeated
and not counted in the existing semantics, the number of tokens in a place is
recorded in the proposed semantics. This leads to the easiness of speci cation of
Petri net models unambiguously. It also accommodates inhibitor arcs, variable
arc weights, and thereafter facilitates | since it uses an intentional and reduced
notation | the simulation and analysis of both basic and high-level Petri nets
by using Maude formal analysis tools.</p>
      <p>The rest of the paper is organized as follows: Section 2 presents some necessary
concept about Petri nets and rewriting logics. In Section 3, the existing
rewriting logic semantics for Petri nets is described. Section 4 presents our proposed
semantics, followed by some experimental results in Section 5 to show the
relevance of the proposed enhancements. Finally, Section 6 concludes the paper with
some perspectives for future work.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <sec id="sec-2-1">
        <title>Petri Nets</title>
        <p>In this section, we brie y recall basic notions about Petri nets: both structural
and dynamical parts of a Petri nets with the usual associated graphical
representation and some of their relevant extensions related to our work. For this
purpose, consider the following de nition.</p>
        <p>De nition 1 A Petri net is de ned as a 5-tuple N = (P; T; P re; P ost; M0) where:
{ P : a nite set of places with jP j = n,
{ T : a nite set of transitions with jT j = m and P \ T = ;,
{ P re: P T ! N, is the Pre incidence function
{ P ost: T P ! N, is the Post incidence function
{ M0: P ! N, function mapping a number of tokens to each p 2 P (so-called
initial marking)
The structural aspect of a Petri net (see, Figure 1(a)) is extremely simple and
it basically consists of a set of places, transitions and directed arcs that connect
places with transitions. The places (depicted by circles) represent system states
or conditions and may hold a non-negative integer number of tokens, which
are represented by black dots. The transitions (depicted by bars) represent the
system state changes or events that may occur. The directed arcs (signi ed by
arrows) de ne pre-conditions and/or post-conditions for each transition in terms
of places.</p>
        <p>The set of places linked to a transition t with arcs starting from places are called
input places (or preset) is noted by •t = fpjP re(p; t) &gt; 0g, and the set of places
linked to a transition t with arcs starting from the transition are called output
places (or postset) is noted by t• = fpjP ost(t; p) &gt; 0g. A transition that does not
have any input place is called a source transition and a transition that does not
have any output place is called a sink transition. An arc may have a given integer
value that de nes its weight, i.e., the number of tokens that will be consumed
or produced following this arc.</p>
        <p>Note that M P re (resp, M P ost) is an n m matrix that is commonly called
the pre (resp, post) incidence matrix, where M P re[i; j] = P re(pi; tj ) (resp,
M P ost[i; j] = P ost(tj ; pi)). In addition, P re(•; tj ) and P ost(tj ;•) denote all
input and output arcs of a transition tj with their weights, i.e., the j-th columns
of the MPre and MPost matrices, respectively.</p>
        <p>A function Mf : P T ! N is called a marking function that assigns to each
place of the Petri net a non-negative integer number of tokens. With the implicit
ordering (p1; p2; :::; pn) on the set of places P , a marking M | that describes
the Petri net state | can be represented as a column vector M where M [i] (i'th
row) contains Mf (pi). Therefore, the dynamical aspect of a Petri net, starting
from an arbitrary initial marking, is de ned by the evolution of its marking,
i.e., the sequence of markings generated by the set of the red transitions. A
transition t may be red at a marking M if : M [i] P re(pi; t) f8 pi 2 •tg
Thereafter, ring of a transition t at marking M removes a number of tokens
equals P re(pi; t) from each of its input places and puts another number of tokens
equals P ost(t; pi) to each place of its output places. In other words, whenever a
Petri net is marked with M , its new marking M 0 after ring a transition t, is
de ned as follows:</p>
        <p>M 0 = M</p>
        <p>P re(•; t) + P ost(t;•)
A Petri net is said to be \k-bounded " if the number of tokens in all of its places
does not exceed a nite number k for any marking reachable from M0. A Petri
net is called safe if k = 1, i.e., for all reachable markings, no place of the Petri
net has more than one token.</p>
        <p>
          Petri nets have been extended by many researchers. Some of the relevant
extensions related to our work are described below:
{ One of the most widely used extensions is the introduction of inhibitor arcs
[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. Such arc is denoted graphically by an arc with a small circle attached
to a transition (see, Figure 1(b)). The inhibitor arc reverses the logic of the
enabling and ring rules, i.e., a transition will only be enabled if the input
place contains less tokens than the weight of the inhibitor arc. In addition,
tokens in the input place of inhibitor arcs are not consumed after ring.
This extension notably increases the expressiveness by allowing a `test to
zero' and thus makes Petri nets as powerful as counter automata and Turing
machines [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
{ The second extension, i.e., a Petri net with variable (dynamic) arc weights is
proposed as a powerful modeling, analysis and simulation tool for complex
dynamical systems [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. In these Petri nets, the weight of an arc is a variable
(dynamic) that is speci ed by the actual number of tokens in a place and
thus depends on the current marking.
{ The third extension is called coloured Petri nets (CPN) [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], which preserve
the useful properties of standard Petri nets and enrich them with complex
data structures (see, Figure 1(c)). The main characteristic that makes CPN
models more compact and practical lies in the token de nition. In the simple
case, tokens have a simple data value (called token color) attached to them.
Usually places contain tokens of one type that is called color set of the place.
Rewriting logic [
          <xref ref-type="bibr" rid="ref19 ref20">19, 20</xref>
          ] de nes a simple, expressive and e cient logic for
reasoning about concurrency and specifying concurrent systems. In fact, rewriting
logic extends equational algebraic speci cations with rewrite rules to deal with
changes in concurrent systems [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. However, Maude [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] is the executable
speci cation language based on rewriting logic that we have used to implement our
current prototypes. A concurrent system is speci ed by means of a rewrite
theory as R = ( , E, L, R). Its static structure is described by the equational
theory ( , E), whereas its dynamic behavior is described by the set of labelled
conditional rewrite rules (L, R). As rewriting-based logic, systems evolution is
emulated by matching and replacing parts of the system state according to the
rewrite rules. Speci cally, rewriting logic has proven to be a well-suited unifying
framework for Petri nets [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ] and a wide range of other concurrency models.
Practically, a Maude speci cation consists principally of two types of modules:
{ Functional modules (enclosed within fmod ... endfm) are used to
describe the static aspect of the system. Such modules are based on
membership equational logic to de ne data types (sorts and subsorts), operations
on them (by means of equational theories) and constructor operators (that
can have some equational attributes such as commutativity or associativity).
The equational rewriting serves as a replacement of equals by equals from
left to right, until the equivalent value is fully evaluated.
{ System modules (enclosed within mod ...endm) are very general rewrite
theories (mod ...endm) that may have equations (or import functional
modules) in addition to rewrite rules, which can be conditional in order to de ne
the dynamic part of the studied system.
        </p>
        <p>Maude rewrite system o ers a large number of powerful tools such as: an
explicitstate LTL model checker, reachability tool and an inductive theorem prover to
facilitate formally verifying systems.
3</p>
        <p>
          Existing Rewriting Logic Semantics for Petri nets
The existing semantics for Petri nets is based on a number of previous works
such as [
          <xref ref-type="bibr" rid="ref17 ref2 ref22 ref29">29, 2, 17, 22</xref>
          ]. The rewriting logic semantics for standard Petri nets was
proposed in [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] and was then generalized for a wide range of Petri nets in [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ].
To brie y illustrate this semantics, we consider the Petri net, given in Figure
1(a), describing the behaviour of the classic vending machine [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] that is used to
buy cakes (place C in the Petri net) and apples (place A); a cake costs 1 dollar
(place $) and an apple 3 quarters (place q). For simplicity, we assume that this
machine only accepts dollars and it permits changing four quarters into a dollar.
3.1
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Structural Aspects</title>
        <p>The basic sorts needed to describe a Petri net are: place and marking . A
marking on a Petri net is viewed as a multiset4 over its set of places, representing
(a snap-shot of) a Petri net state and denoting the available tokens (resources) in
each place. These elements are de ned as sorts with a subsort relation as follows:
sorts Place Marking .</p>
        <p>subsort Place &lt; Marking .
4 Mathematically, a multiset (or bag, or mset) is a set-like, unordered collection of
elements in which elements are allowed to be repeated.
ops C A $ q :-&gt; Place .</p>
        <p>Then, the Petri net place's names are declared as operators as follows:
Thereafter, the current state (marking) of a Petri net can be de ned with a nite
multiset union operator as follows:
op null : -&gt; Marking .
op : Marking Marking -&gt; Marking [assoc comm id: null] .
According to this declaration, we can see that a marking (or partial marking)
can be represented by an element of the nite multiset sort Marking and the
union of two markings is a new marking. The empty marking is represented by
the constant null. In addition, the attribute "assoc" (resp. "comm") is used to
declare that the operator is associative (resp. commutative). Finally, the initial
marking may also be declared as an operator and then de ned by an equation:
op initial :-&gt; Marking .</p>
        <p>eq initial = $ $ $ q q q .</p>
        <p>In such a declaration, only the names of the places that hold tokens appear in
the initial state with an occurrence equal to the number of tokens they contain.
3.2</p>
      </sec>
      <sec id="sec-2-3">
        <title>Behavioral Aspects</title>
        <p>The evolution of a Petri net is related to the transitions ring. For that, the
speci cation of a transition consists of two multisets (termsets), where the rst
multiset (marking representing the transition pre-set ) may be replaced with
the second one (marking representing the transition post-set ). Therefore, each
transition t is described by a labelled rewrite rule with the following syntax:
rl [hTransition-Labeli] : hTermset-1i =&gt; hTermset-2i .</p>
        <p>In such a rule, the Termset-1 (resp. Termset-2) contains only the set of input
(resp. output) places of the corresponding transition t, where a place name is
repeated in the left-hand or right-hand side of the rule, as many times as the
weight of the arc linking the place to the transition t.</p>
        <p>In that case, a transition speci ed by a rewrite rule can take place if its
lefthand side (Termset-1) matches. Then, the sub-marking is transformed into the
right-hand side (Termset-2) of such rule. The process of rewriting will start with
a rewrite rule that matches its left-hand side in the initial marking, and stop if
no rule matches anymore.</p>
        <p>In addition, a sink (resp. source) transition is a special case and its
corresponding rewrite rule remains the same and a variable (M, for example) of sort
Marking is added to the Termset-2 (resp. Termset-1) and also, used to completely
replace the Termset-1 (resp. Termset-2) since it has not a pre-set (resp. post-set ).</p>
        <p>Finally, by following the pre-described steps, we give the complete speci
cation of the Petri net, presented in Figure 1 (a), as follows:
fmod PETRI-NET-SIGNATURE is
sorts Place Marking .
subsorts Place &lt; Marking .
op null : -&gt; Marking .
ops C A $ q : -&gt; Place .
op __ : Marking Marking -&gt; Marking</p>
        <p>[assoc comm id: null] .
op initial : -&gt; Marking .</p>
        <p>eq initial = $ $ $ q q q .
endfm
protecting PETRI-NET-SIGNATURE .
var M : Marking .
rl [add-$] : M =&gt; M $ .
rl [add-q] : M =&gt; M q .
rl [buy-C] : $ =&gt; C .
rl [buy-A] : $ =&gt; A q .</p>
        <p>rl [change] : q q q q =&gt; $ .
endm
As we can see, in this speci cation, the static part (the signature) of the machine
is given in a functional module PETRI-NET-SIGNATURE. This module has been
imported in the system module VENDING-MACHINE, in which we add one rule for
each transition to complete describing the dynamic part of the vending machine.
Notice that the two rules "[add-$]" and "[add-q]" are used to describe the
source transitions in the Petri net, and because of that, the rewriting in the
module VENDING-MACHINE does not terminate.
4</p>
        <p>
          Proposed Petri net Semantics Based on Rewriting Logic
In the semantics we propose here, our focus is on how to overcome the
abovementioned drawbacks in order to make the speci cation of Petri nets more
natural. It has been found that, according to [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ], there are various mathematical
presentations of multisets. The one used in the existing semantics is \sequential",
which represents a multiset as a sequence in which the multiplicity of an element
equals the number of times the element occurs in the sequence. By contrast, we
propose to use an alternative coherent style for presenting the multiset of the
marking of a Petri net. More precisely, a multiset M can also be viewed as a set
of tuples (p,x), where p is the sequence identi er (element) and x is a function
from the set P (set on which M is de ned) to the set of non-negative integers,
sending to each element p its multiplicity. For illustrating this further, we will
use the Petri net given in Figure 1(a) in the subsequent sections.
4.1
        </p>
      </sec>
      <sec id="sec-2-4">
        <title>Structural Aspects</title>
        <p>Starting from the fact that places and tokens are two passive and distinguishable
components in a Petri net and, therefore, each new proposed semantics for Petri
nets has to clearly de ne and distinguish between these two primitive concepts.
Thus, we propose to represent a token k that resides in place p as a tuple (p, x)
(may also be called pair)5 where p is a place identi er (label) belongs to P (set
of places) and x is a variable ranging over non-negative integers that represents
the number of occurrences of token k in place p.</p>
        <p>Of course, the use of tuple-based notation may seem to be no more than a simple
modi cation of the original representation. However, we argue that the use of
5 A pair can only have two values | neither less nor more |. However, a tuple, has
almost no semantic limitation on the number of values.
a counting-based notation is very bene cial. Intuitively, this notation facilitates
the counting of tokens, drops the ambiguity between places and tokens and
considerably enhances the description of long Petri net marking (very compact).
In addition, this notation will help developers to naturally specify high level
Petri nets.</p>
        <p>Practically, a tuple is de ned by enclosing two items in angle brackets, separated
by a comma &lt;_,_&gt;. The rst item is used to de ne a place by its name (sort :
PlaceName) followed by the number of tokens6 it holds (sort : Int)7.
On the other hand, the marking8 is consequently de ned as a set of tuples.
Mathematically, the elements of a set have no order among them; hence, tuples
in a marking do not have any particular order. Thus, the basic sort Marking
is used to de ne the marking of a Petri net. In addition, the operator "__" is
also used to allow combining (union) two or more tuples and then produce a
new set of tuples. The result may be a subset of tuples related to one transition
(pre-set and post-set ) or the whole set of tuples describing the global state of
the Petri net (marking). The empty marking is represented by the constant
"null". Moreover, the attribute "assoc" (resp. "comm") is used to declare that
the operator is associative (resp. commutative). Therefore, the corresponding
new signature is given as follows:
sorts PlaceName Place Marking .
subsort Place &lt; Marking .
ops C A $ q :-&gt; Placename .
op &lt; , &gt; : PlaceName Int -&gt; Place [ctor] .
op null : -&gt; Marking .
op : Marking Marking -&gt; Marking [assoc comm id: null].
op initial :-&gt; Marking .
eq initial = &lt; $,3 &gt; &lt; q,3 &gt; &lt; C,0 &gt; &lt; A,0 &gt; .</p>
        <p>The rst advantage of the proposed speci cation is that the test for the number
of tokens in a place as well as the speci cation of inhibitor arcs is now possible.
Moreover, the declaration of the initial marking in our proposal describes the
overall Petri net, including all its places, and is not limited to the places holding
tokens. Therefore, this declaration gives a clear snap-shot of the initial marking
of the system and one can thereby know all the names of the Petri net places
along with the tokens they hold.
4.2</p>
      </sec>
      <sec id="sec-2-5">
        <title>Behavioral Aspects</title>
        <p>Theoretically, the global state of a Petri net is generally represented by a
marking M . Thereafter, when ring a transition t, the change in such a state of the
6 For the sake of simplicity and since tokens are indistinguishable in basic Petri nets,
we were only interested in their number in a place.
7 We use the sort Int since the subtraction is not de ned with sort NAT.
8 It is noticed that the Petri net marking in the proposed semantics has the
commutative monoidal structure since the set of tuples (p,x) is equipped with an associative
binary operation ( ) and an identity element.
Petri net occurs at the level of the set of input and output places by removing
tokens from the former and adding tokens to the latter. Such evolution can be
naturally speci ed in the rewriting logic by rewrite rules. In general, these rules
are conditional and a rewrite rule has to be de ned for each transition as follows:
crl [hTransition-Labeli] : hLHSi =&gt; hRHSi if Cond .</p>
        <p>During execution, Maude uses the whole set of tuples given in initial marking
and whenever a subset (sub-marking) matches the LHS then that part can be
replaced by RHS if the enabling condition9 is veri ed. In fact, the LHS (resp. RHS)
describes the state of both the input and output places before (resp. after) ring
the transition t, and are de ned as follows:</p>
        <p>LHS, RHS = set of tuples(p; x), where p 2 f•t [ t•g
In addition and according to the number of input places, a condition | de ned
by the expression Cond | can be either a single equation or a conjunction of
equations using an associative binary conjunction connective such as: /\ or "and".
Consequently, a rewrite rule could be somewhat larger, yet it is considerably
more clear | in terms of presentation| than the one in the existing semantics.
We now present the complete speci cation of the previous Petri net according
to the proposed speci cation.
fmod NEW-PETRI-NET-SIGNATURE-1 is
protecting INT .
sorts PlaceName Place Marking .
subsort Place &lt; Marking .
ops C A $ q : -&gt; PlaceName .
op &lt;_,_&gt; : PlaceName Int -&gt; Place [ctor] .
op __ : Marking Marking -&gt; Marking [ctor assoc comm id: null] .
ops null initial : -&gt; Marking .</p>
        <p>eq initial = &lt; $,3 &gt; &lt; q,3 &gt; &lt; C,0 &gt; &lt; A,0 &gt; .
endfm
mod NEW-VENDING-MACHINE-1 is
inc NEW-PETRI-NET-SIGNATURE-1 .
vars x y z : Int .
rl [add-$] : &lt; $,x &gt; =&gt; &lt; $,x + 1 &gt; .
rl [add-q] : &lt; q,x &gt; =&gt; &lt; q,x + 1 &gt; .
crl [buy-c] : &lt; $,x &gt; &lt; C,y &gt; =&gt; &lt; $,x - 1 &gt; &lt; C,y + 1 &gt; if (x &gt; 0) .
crl [buy-a] : &lt; $,x &gt; &lt; A,y &gt; &lt; q,z &gt; =&gt; &lt; $,x - 1 &gt; &lt; A,y + 1 &gt; &lt; q,z + 1 &gt;
if (x &gt; 0) .</p>
        <p>crl [change] : &lt; $,x &gt; &lt; q,z &gt; =&gt; &lt; $,x + 1 &gt; &lt; q,z - 4 &gt; if (z &gt;= 4) .
endm
9 The condition is not needed in the case of a source transition since it is
unconditionally enabled and therefore, the corresponding rewrite rule will be unconditional.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Comparison with the Existing Semantics</title>
      <p>
        In this section, we present the e ectiveness of the proposed rewriting logic-based
semantics for Petri nets. For that, some experimental comparison results have
been presented in order to assess the advantages and evaluate of the performance
of the proposed speci cation compared to the existing ones.
As the proposed semantics use tuples to describe a marking, there is a clear
difference between a place and its tokens. Therefore, a marking will be very clear
and the number of tokens in each place is shown without the need to manually
count them. To show that, let's explore the behavior of our machine from the
given initial marking. For that, we use the command "rewrite"10 (abbreviated
"rew"). For instance, consider the same command "rew [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]" (resp. "rew [100]")
to see and compare the presentation of the resulted marking | for both existing
and enhanced semantics | after 5 (resp. 100) times of rule applications from
the initial marking, which has 3 dollars and 3 quarters.
      </p>
      <p>
        Existing Semantics Enhanced Semantics
Maude&gt; rewrite [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] in VENDING-MACHINE : initial . Maude&gt; rewrite [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] in NEW-VENDING-MACHINE-1 :
rewrites: 6 in 541371105387ms cpu (0ms real) initial .
(0 rewrites/second) rewrites: 23 in 541371105385ms
result Marking: $ $ $ $ $ $ q q q cpu (0ms real) (0 rewrites/second)
result Marking: &lt; q,3 &gt; &lt; $,0 &gt; &lt; C,2 &gt; &lt; A,2 &gt;
Maude&gt; rewrite [100] in VENDING-MACHINE : initial . Maude&gt; rewrite [100] in NEW-VENDING-MACHINE-1 :
rewrites: 101 in 541371105435ms cpu (0ms real) initial .
(0 rewrites/second) rewrites: 481 in 541371105397ms cpu (0ms real)
result Marking: $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ (0 rewrites/second)
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ result Marking: &lt; q,2 &gt; &lt; $,0 &gt; &lt; C,18 &gt; &lt; A,2 &gt;
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ q
As we can see, the execution results of the command "rewrite" in the
existing semantics may become impractical and non-understandable, especially in
the case of a marking with a considerable number of tokens.
5.2
      </p>
      <sec id="sec-3-1">
        <title>Describing Inhibitor Arcs</title>
        <p>In order to examine the ability of describing inhibitor arcs, we consider the
second machine, presented in Figure 1(b), in which we imply users to not insert
more than 4 dollars (resp. 4 quarters) in the coins box before buying something
(resp. making change). However, the returned quarters after buying an apple are
added without control.</p>
        <p>In addition, we have added two places (S1 and S2) to describe the vending
machine capacity in delivering items (cake and apple). The capacity of the vending
machine is assumed to be 50 items for both cakes and apples. This capacity is
declared in the initial state and after delivering all items, the machine has to be
re lled (this process is not considered here).
10 It is necessary to determine the upper bound allowed for the number of rule
applications when using such commands. Otherwise, in nity is assumed.</p>
        <p>An Enhanced Rewriting Logic Based Semantics for High-Level Petri nets 165</p>
      </sec>
      <sec id="sec-3-2">
        <title>The Existing Semantics</title>
        <p>In the existing semantics, the number of tokens in a place cannot be naturally
obtained and, in order to get it, one can use an additional operator (enclosing
the entire marking) such as the usual system-grabbing operator as follows:
op f g : Marking -&gt; PN .</p>
        <p>Thereafter, one could similarly de ne a second operator as follows:
op number : PN Place -&gt; Int .
that is simply de ned as:
eq number(fM M'g,M) = 1 + number(fM'g,M) .
eq number(fM'g,M) = 0 [owise] .</p>
        <p>With this new operator, one could describe transitions with inhibitor arcs. For
instance, the rules add-$ and add-q could now be written as follows:
crl [add-$] : fMg =&gt; fM $g if number(fMg,$) &lt; 4 .
crl [add-q] : {M} =&gt; {M q} if number({M},$) &lt; 4 /\ number({M},q) &lt; 4 .</p>
      </sec>
      <sec id="sec-3-3">
        <title>The Proposed Semantics</title>
        <p>The speci cation of Petri nets with inhibitor arcs is made naturally due to the
proposed representation of places. Therefore, the speci cation of the machine
presented in Figure 1(b) is given as follows:
fmod NEW-PETRI-NET-SIGNATURE-2 is
protecting INT .
sorts PlaceName Place Marking . subsort Place &lt; Marking .
ops C A $ q S1 S2 : -&gt; PlaceName .
op &lt;_,_&gt; : PlaceName Int -&gt; Place [ctor] .
op __ : Marking Marking -&gt; Marking [ctor assoc comm id: null] .
ops null initial : -&gt; Marking .</p>
        <p>eq initial = &lt;$,3&gt; &lt;q,3&gt; &lt;C,0&gt; &lt;A,0&gt; &lt;S1,50&gt; &lt;S2,50&gt; .
endfm
mod NEW-VENDING-MACHINE-2 is
inc NEW-PETRI-NET-SIGNATURE-2 .
vars x y z t : Int .
crl [add-$] : &lt; $,x &gt; =&gt; &lt; $,x + 1 &gt; if (x &lt; 4) .
crl [add-q] : &lt; $,x &gt; &lt; q,z &gt; =&gt; &lt; $,x &gt; &lt; q,z + 1 &gt; if (z &lt; 4) and (x &lt; 4) .
crl [buy-c] : &lt; $,x &gt; &lt; C,y &gt; &lt; S1,z &gt; =&gt; &lt; $,x - 1 &gt; &lt; C,y + 1 &gt; &lt; S1,z - 1 &gt;
if (x &gt;= 1) and (z &gt;= 1) .
crl [buy-a] : &lt; $,x &gt; &lt; A,y &gt; &lt; q,z &gt; &lt; S2,t &gt; =&gt; &lt; $,x - 1 &gt; &lt; A,y + 1 &gt;
&lt; q,z + 1 &gt; &lt; S2,t - 1 &gt; if (x &gt;= 1) and (t &gt;= 1) .</p>
        <p>crl [change] : &lt; $,x &gt; &lt; q,z &gt; =&gt; &lt; $,x + 1 &gt; &lt; q,z - 4 &gt; if (z &gt;= 4) .
endm
In this speci cation, the transitions add-$ and add-q have been described with
conditional rewrite rules with the necessary test for the number limit.
5.3</p>
      </sec>
      <sec id="sec-3-4">
        <title>K-Bounded testing</title>
        <p>The boundedness testing is possible since our system is terminating. In addition,
we already know that the place $ is bounded with 17 because the studied system
has a limited number (50) for both cakes and apples. Therefore, we would like to
demonstrate the ability to check the correctness of such characteristic. To do so,
one can use the reachability tool or Maude LTL model checker11 to look for the
existence of a marking where the place $ holds 18 tokens by using the following
command.</p>
        <p>No solution.</p>
        <p>
          Maude&gt; search in NEW-VENDING-MACHINE-2 : initial =&gt;* M &lt; $,18 &gt; .
states: 714867 rewrites: 15490529 in 4281906278ms cpu (105312ms real)
(3 rewrites/second)
In this result, we can see that the Maude reachability tool did not nd a
solution, which means that the place $ will not have 18 tokens during the system
evolution12. So, such place may be bounded and in order to con rm that, we
have to check if there are some markings where the number of tokens in such
place is equal to 17.
11 Maude LTL model checker cannot be used for the existing semantics without the
additional operator given in Section 5.2. In addition, it would be unsuitable to use
the reachability tool with the existing semantic since the number of tokens have to
be repeated as many as number of tokens to be searched.
12 In this case, we have used the parameter " =&gt;! " for search command in order to
minimize (reduce) the set of solutions to the canonical nal states, i.e., states that
cannot be further rewritten. Otherwise, parameter " =&gt;* " can be used (see [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] for
more details).
As we can see, the place $ contains | and never holds more than | 17 tokens,
and thus it is bounded with 17.
        </p>
        <p>On the other hand, the LTL model-checker can also be used to check the
previous property by de ning the following modules:
mod VENDING-MACHINE-2-PREDS is
protecting NEW-VENDING-MACHINE-2 .
including SATISFACTION .
subsort Marking &lt; State .
op Bound(_,_) : PlaceName Int -&gt; Prop .
var M : Marking . var P : PlaceName . vars x y : Int .
************** PLACE BOUNDEDNESS PROPERTY ***************
ceq &lt; P,x &gt; M |= Bound(P,y) = true if x &lt;= y .
endm
mod VENDING-MACHINE-2-CHECK is
inc VENDING-MACHINE-2-PREDS .
inc MODEL-CHECKER .
inc LTL-SIMPLIFIER .
op Place-Bounded(_,_) : PlaceName Int -&gt; Prop .
op PN-Bounded(_,_) : PlaceName Int -&gt; Prop .
var P : PlaceName .
var x : Int .</p>
        <p>eq Place-Bounded(P,x) = [](Bound(P,x)) .
endm
In the following, we give the boundedness veri cation results of places $ and q.
Maude&gt; reduce in VENDING-MACHINE-2-CHECK : modelCheck(initial, Bounded($,17)) .
rewrites: 16920270 in 48121469397ms cpu (99937ms real) (~ rewrites/second)
result Bool: true
5.4</p>
      </sec>
      <sec id="sec-3-5">
        <title>Petri nets With Variable Arc Weights</title>
        <p>
          To better understand the notion of Petri nets with \variable arc weights", we
consider the example, given in Figure 2(a), that is inspired by [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>In this example, the transitions T1 and T2 are used to control and maintain
the marking of the place P1 at a desired level. In this example, the marking shall
not be less than 3. Therefore, the transition T1 will be red when the marking
of the place P1 is greater than the desired level and a token is added to the
place P2. Thereafter, T2 will be enabled and then red to remove the excess of
tokens from the place P1 through the weight (M(P1) 3) of the arc (P1, T2). The
following code represents the initial marking and the rewrite rules describing the
transitions T1 and T2 according to the proposed semantics as given in Section 4.
eq initial = &lt;P1,5&gt; &lt;P2,0&gt; &lt;P3,0&gt; .
crl [T1] : &lt; P1,x &gt; &lt; P2,0 &gt; =&gt; &lt; P1,x &gt; &lt; P2,1 &gt; if (x &gt;= 4) .
crl [T2] : &lt; P1,x &gt; &lt; P2,1 &gt; &lt; P3,y &gt; =&gt; &lt; P1,3 &gt; &lt; P2,0 &gt; &lt; P3,y + x - 3 &gt;
if (x &gt; 3) .</p>
        <p>We should note that it is not possible to describe a Petri net with variable
arc weights (i.e., produce or remove a variable number of tokens) in the existing
semantics neither naturally nor with the additional operator, given in Section 5.2.
Thus, for this purpose, one has to explore other alternatives (strategies, loops
...etc).
5.5</p>
      </sec>
      <sec id="sec-3-6">
        <title>Coloured Petri nets</title>
        <p>To show the extensibility of the proposed semantics for describing colored Petri
nets, we consider the model shown in Figure 2(b). The given coloured Petri net
has four places P1, P2, P3 and P4 and four colors of tokens that are: Color1
(A), Color2 (B), Color3 (C) and Color4 (D).</p>
        <p>Of course, the speci cation of coloured petri nets is also based on tuples as seen
in basic Petri nets, possibly de ned with two generic parameters (sorts). The
rst parameter speci es the name of the place and the second determines the
set of colors within this place. Such a speci cation is given as follows:
op &lt; , &gt; : PlaceName ColorSet -&gt; Place .</p>
        <p>For that, the set of color within a place need the following declaration:
sorts ColorId Color ColorSet .
subsort Color&lt;ColorSet .
op f g : ColorId Int -&gt; Color .
op , : ColorSet ColorSet -&gt; ColorSet .</p>
        <p>Thereafter, the list of places and color names of the studied coloured Petri nets
must be given. In our example, such declaration is:
ops P1 P2 P3 P4 : -&gt; PlaceName .
ops A B C D : -&gt; ColorId .</p>
        <p>The complete speci cation of the structural aspects of our coloured Petri nets is
given as follows:
endfm
However, such generic speci cation for a coloured Petri net may be inconvenient
since it does not preclude the user from constructing erroneous tuples (composed
of place's name and colors) that do not belong to the coloured Petri net in study.
Therefore, we propose a seconde well-formed signature for a coloured Petri net
in which the places of the Petri net have to be decomposed into sets which
share the same set of token colors. For instance, the given CPN has three color
sets so that, P1 and P4 belong to the same color set ("PlaceNameset1"), P2
belongs to the color set ("PlaceNameset2") and P3 belongs to the color set
("PlaceNameset3").</p>
        <p>Subsequently, we de ne each type of place (according to the colors of its tokens)
in a separate operator in order to obtain an unambiguous presentation. The
corresponding new signature is given as follows:
fmod CPN-SIGNATURE is</p>
        <p>protecting INT .
sorts PlaceNameset1 PlaceNameset2 PlaceNameset3 .
sorts Place Marking .
subsort Place &lt; Marking .
ops P1 P4 : -&gt; PlaceNameset1 .
op P2 : -&gt; PlaceNameset2 .
op P3 : -&gt; PlaceNameset3 .
op &lt;_,A(_) B(_)&gt; : PlaceNameset1 Int Int -&gt; Place .
op &lt;_,A(_) C(_)&gt; : PlaceNameset2 Int Int -&gt; Place .
op &lt;_,B(_) D(_)&gt; : PlaceNameset3 Int Int -&gt; Place .
ops null initial : -&gt; Marking .
op _ _ : Marking Marking -&gt; Marking [ctor assoc comm id: null] .
eq initial = &lt; P1,A(2) B(1) &gt; &lt; P2,A(1) C(1) &gt; &lt; P3,B(0) D(0) &gt; &lt; P4,</p>
        <p>
          A(0) B(0) &gt; .
endfm
According to that, the behavioral aspects can be given as follows:
mod CPN is
inc CPN-SIGNATURE .
vars x1 x2 x3 y1 y2 y3 z t : Int .
crl [T] : &lt; P1,A(x1) B(y1) &gt; &lt; P2,A(x2) C(z) &gt; &lt; P3,B(y2) D(t) &gt; &lt; P4,A(x3)
B(y3) &gt; =&gt; &lt; P1,A(x1 - 1) B(y1 - 1) &gt; &lt; P2,A(x2 - 1) C(z - 1) &gt;
&lt; P3,B(y2 + 2) D(t + 1) &gt; &lt; P4,A(x3 + 1) B(y3 + 1) &gt; if ((x1 &gt;= 1)
and (y1 &gt;= 1) and (x2 &gt;= 1) and (z &gt;= 1)) .
endm
Let us now use the command rewrite to explore the behavior of this CPN.
The result of execution of this speci cation is given as follows:
rewrite [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] in COLOURED-PN : initial .
rewrites: 17 in 541555185225ms cpu (0ms real) (0 rewrites/second)
result Marking: &lt; P1,A(1) B(0) &gt; &lt; P4,A(1) B(1) &gt; &lt; P2,A(0) C(0) &gt; &lt; P3,B(2)
        </p>
        <p>D(1) &gt;
6</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>
        In this paper, a new enhanced semantics, based on a highly structured notation
for Petri nets in rewriting logic, is introduced and compared to the existing one.
The main advantage of both semantics is that the basic paradigm of Petri net
computations (true concurrency involving several non-con icting transitions) is
preserved. However, the proposed semantics is structurally and behaviourally
straightforward and clear, i.e., while tokens are repeated (and not counted) in
the existing at notation, the number of tokens in a place is counted in the
enhanced semantics. In addition, the new semantics facilitates the simulation
and analysis of both basic and high-level Petri nets and deals unambiguously
with variable arc weights, inhibitor arcs, and boundedness testing.
For the future, we intend to exploit the bene ts of the proposed semantics for
the veri cation of models described in terms of extended high-level Petri nets as
parametric and recursive Petri nets [
        <xref ref-type="bibr" rid="ref13 ref16 ref8">16, 8, 13</xref>
        ]. We also aim to incorporate the
new semantics into existing Petri net tools as plug-ins to o er an automated
way for the conversion of high-level Petri nets to rewriting logic and therefore
facilitating their analysis.
      </p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgement</title>
      <p>Foremost, we would like to express our sincere gratitude to Prof. Peter Csaba
O lveczky who provided insights and expertise that greatly helped this research.
His criticisms were quite constructive and helped to get this work in the
current form. Then, this work would not have been possible without the nancial
support (PhD scholarship) No:034/PNE/ENS/Spain/13-14 received through the
Algerian ministry of higher education and scienti c research.</p>
      <p>Finally, we greatly appreciate the support received through the collaborative
work undertaken with Laura M Castro at the MADS (Models and Applications
of Distributed Systems) research group, A Corun~a University, Spain.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Tilak</given-names>
            <surname>Agerwala</surname>
          </string-name>
          .
          <article-title>Complete model for representing the coordination of asynchronous processes</article-title>
          .
          <source>Technical report</source>
          , Johns Hopkins Univ.,
          <string-name>
            <surname>Baltimore</surname>
            ,
            <given-names>Md.</given-names>
          </string-name>
          (USA),
          <year>1974</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Andrea</given-names>
            <surname>Asperti</surname>
          </string-name>
          .
          <article-title>A logic for concurrency</article-title>
          .
          <source>Technical report, Technical report, Dipartimento di Informatica, Universit a di Pisa</source>
          ,
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Kamel</given-names>
            <surname>Barkaoui</surname>
          </string-name>
          , Hanifa Boucheneb, and
          <string-name>
            <given-names>Awatef</given-names>
            <surname>Hicheur</surname>
          </string-name>
          .
          <article-title>Modelling and analysis of time-constrained exible work ows with time recursive ecatnets</article-title>
          .
          <source>In International Workshop on Web Services and Formal Methods</source>
          , pages
          <volume>19</volume>
          {
          <fpage>36</fpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>T</given-names>
            <surname>Benarbia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K</given-names>
            <surname>Labadi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A</given-names>
            <surname>Omari</surname>
          </string-name>
          , and
          <string-name>
            <given-names>JP</given-names>
            <surname>Barbot</surname>
          </string-name>
          .
          <article-title>Balancing dynamic bike-sharing systems: A petri nets with variable arc weights based approach</article-title>
          .
          <source>In Control, Decision and Information Technologies (CoDIT)</source>
          , 2013 International Conference on, pages
          <volume>112</volume>
          {
          <fpage>117</fpage>
          . IEEE,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Manuel</given-names>
            <surname>Clavel</surname>
          </string-name>
          , Francisco Duran, Steven Eker,
          <string-name>
            <given-names>P</given-names>
            <surname>Lincoln</surname>
          </string-name>
          , N Mart -Oliet, Jose Meseguer, and
          <string-name>
            <given-names>Carolyn</given-names>
            <surname>Talcott</surname>
          </string-name>
          .
          <source>Maude manual (version 2.3)</source>
          ,
          <year>2007</year>
          . URL: http://maude. cs. uiuc. edu/maude2-manual,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Manuel</given-names>
            <surname>Clavel</surname>
          </string-name>
          , Francisco Duran, Steven Eker, Patrick Lincoln, Narciso Mart - Oliet, and Jose Meseguer.
          <source>Metalevel computation in Maude. Electronic Notes in Theoretical Computer Science</source>
          ,
          <volume>15</volume>
          :
          <fpage>331</fpage>
          {
          <fpage>352</fpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Manuel</given-names>
            <surname>Clavel</surname>
          </string-name>
          , Francisco Duran, Steven Eker, Patrick Lincoln, Narciso Mart -Oliet, Jose Meseguer, and
          <string-name>
            <given-names>Carolyn</given-names>
            <surname>Talcott</surname>
          </string-name>
          .
          <article-title>All about Maude | a high-performance logical framework: how to specify, program and verify systems in rewriting logic</article-title>
          .
          <source>SpringerVerlag</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Nicolas</given-names>
            <surname>David</surname>
          </string-name>
          .
          <article-title>Discrete Parameters in Petri Nets.(Reseaux de Petri a Parametres Discrets)</article-title>
          .
          <source>PhD thesis</source>
          , University of Nantes, France,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Nicholas J Dingle</surname>
          </string-name>
          , William J Knottenbelt, and Tamas Suto.
          <article-title>Pipe2: a tool for the performance evaluation of generalised stochastic petri nets</article-title>
          .
          <source>ACM SIGMETRICS Performance Evaluation Review</source>
          ,
          <volume>36</volume>
          (
          <issue>4</issue>
          ):
          <volume>34</volume>
          {
          <fpage>39</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. Francisco Duran and Jose Meseguer.
          <article-title>Maude's module algebra</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <volume>66</volume>
          (
          <issue>2</issue>
          ):
          <volume>125</volume>
          {
          <fpage>153</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Gerald C Gannod and Sunil Gupta</surname>
          </string-name>
          .
          <article-title>An automated tool for analyzing petri nets using spin</article-title>
          .
          <source>In Automated Software Engineering</source>
          ,
          <year>2001</year>
          .(
          <article-title>ASE 2001)</article-title>
          .
          <source>Proceedings. 16th Annual International Conference on</source>
          , pages
          <volume>404</volume>
          {
          <fpage>407</fpage>
          . IEEE,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>Alessandro</given-names>
            <surname>Giua</surname>
          </string-name>
          and
          <string-name>
            <given-names>Manuel</given-names>
            <surname>Silva</surname>
          </string-name>
          .
          <article-title>Modeling, analysis and control of discrete event systems: a petri net perspective</article-title>
          .
          <source>IFAC-PapersOnLine</source>
          ,
          <volume>50</volume>
          (
          <issue>1</issue>
          ):
          <volume>1772</volume>
          {
          <fpage>1783</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>Serge</given-names>
            <surname>Haddad</surname>
          </string-name>
          and
          <string-name>
            <given-names>Denis</given-names>
            <surname>Poitrenaud</surname>
          </string-name>
          .
          <article-title>Recursive petri nets</article-title>
          .
          <source>Acta Informatica</source>
          ,
          <volume>44</volume>
          (
          <issue>7</issue>
          ):
          <volume>463</volume>
          {
          <fpage>508</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Xudong</surname>
            <given-names>He</given-names>
          </string-name>
          , Reng Zeng, Su Liu, Zhuo Sun, and
          <string-name>
            <given-names>Kyungmin</given-names>
            <surname>Bae</surname>
          </string-name>
          .
          <article-title>A term rewriting approach to analyze high level petri nets</article-title>
          .
          <source>In Theoretical Aspects of Software Engineering (TASE)</source>
          ,
          <year>2016</year>
          10th International Symposium on, pages
          <volume>109</volume>
          {
          <fpage>112</fpage>
          . IEEE,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>Kurt</given-names>
            <surname>Jensen</surname>
          </string-name>
          .
          <article-title>Coloured Petri nets: basic concepts</article-title>
          ,
          <source>analysis methods and practical use</source>
          , volume
          <volume>1</volume>
          . Springer Science &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Ahmed</surname>
            <given-names>Kheldoun</given-names>
          </string-name>
          , Kamel Barkaoui, and
          <string-name>
            <given-names>Malika</given-names>
            <surname>Ioualalen</surname>
          </string-name>
          .
          <article-title>Formal veri cation of complex business processes based on high-level petri nets</article-title>
          .
          <source>Information Sciences</source>
          ,
          <volume>385</volume>
          :
          <fpage>39</fpage>
          {
          <fpage>54</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Narciso</surname>
          </string-name>
          Mart -Oliet and Jose Meseguer.
          <article-title>From petri nets to linear logic</article-title>
          .
          <source>In Category Theory and Computer Science</source>
          , pages
          <volume>313</volume>
          {
          <fpage>340</fpage>
          . Springer,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. Diego C Martinez,
          <article-title>Maria Laura Cobo, and Guillermo Ricardo Simari. A petri net model of argumentation dynamics</article-title>
          .
          <source>In International Conference on Scalable Uncertainty Management</source>
          , pages
          <volume>237</volume>
          {
          <fpage>250</fpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. Jose Meseguer.
          <article-title>A logical theory of concurrent objects</article-title>
          , volume
          <volume>25</volume>
          . ACM,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. Jose Meseguer.
          <article-title>Conditional rewriting logic as a uni ed model of concurrency</article-title>
          .
          <source>Theoretical computer science</source>
          ,
          <volume>96</volume>
          (
          <issue>1</issue>
          ):
          <volume>73</volume>
          {
          <fpage>155</fpage>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. Jose Meseguer.
          <article-title>Membership algebra as a logical framework for equational speci cation</article-title>
          .
          <source>In Recent Trends in Algebraic Development Techniques</source>
          , pages
          <volume>18</volume>
          {
          <fpage>61</fpage>
          . Springer,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22. Jose Meseguer and
          <string-name>
            <given-names>Ugo</given-names>
            <surname>Montanari</surname>
          </string-name>
          .
          <article-title>Petri nets are monoids</article-title>
          .
          <source>Information and computation</source>
          ,
          <volume>88</volume>
          (
          <issue>2</issue>
          ):
          <volume>105</volume>
          {
          <fpage>155</fpage>
          ,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23. Carl Adam Petri. Kommunikation mit Automaten.
          <source>PhD thesis</source>
          , Darmstadt University of Technology, Germany,
          <year>1962</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>Wolfgang</given-names>
            <surname>Reisig</surname>
          </string-name>
          .
          <article-title>Elements of distributed algorithms: modeling and analysis with Petri nets</article-title>
          . Springer Science &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>Alexander</given-names>
            <surname>Schulz</surname>
          </string-name>
          .
          <article-title>Model checking of recon gurable Petri nets</article-title>
          .
          <source>arXiv preprint arXiv:1409.8404</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <given-names>D</given-names>
            <surname>Singh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>AM</given-names>
            <surname>Ibrahim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T</given-names>
            <surname>Yohanna</surname>
          </string-name>
          , and
          <string-name>
            <given-names>JN</given-names>
            <surname>Singh</surname>
          </string-name>
          .
          <article-title>An overview of the applications of multisets</article-title>
          .
          <source>Novi Sad Journal of Mathematics</source>
          ,
          <volume>37</volume>
          (
          <issue>2</issue>
          ):
          <volume>73</volume>
          {
          <fpage>92</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <given-names>Scibor</given-names>
            <surname>Sobieski</surname>
          </string-name>
          and
          <string-name>
            <given-names>Bartosz</given-names>
            <surname>Zielinski</surname>
          </string-name>
          .
          <article-title>Modularisation in Maude of parametrized rbac for row level access control</article-title>
          .
          <source>In East European Conference on Advances in Databases and Information Systems</source>
          , pages
          <fpage>401</fpage>
          {
          <fpage>414</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Mark-Oliver</surname>
            <given-names>Stehr</given-names>
          </string-name>
          , Jose Meseguer, and
          <article-title>Peter Csaba Olveczky. Rewriting logic as a unifying framework for Petri nets</article-title>
          .
          <source>In Unifying Petri Nets</source>
          , pages
          <volume>250</volume>
          {
          <fpage>303</fpage>
          . Springer,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <given-names>Glynn</given-names>
            <surname>Winskel</surname>
          </string-name>
          .
          <article-title>Categories of models for concurrency</article-title>
          .
          <source>In International Conference on Concurrency</source>
          , pages
          <volume>246</volume>
          {
          <fpage>267</fpage>
          . Springer,
          <year>1984</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <given-names>Dianxiang</given-names>
            <surname>Xu</surname>
          </string-name>
          .
          <article-title>A tool for automated test code generation from high-level petri nets</article-title>
          .
          <source>Applications and Theory of Petri Nets</source>
          , pages
          <volume>308</volume>
          {
          <fpage>317</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>