<!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>Verification of Communication Structured Acyclic Nets Using SAT</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>School of Computing, Newcastle University 1 Science Square</institution>
          ,
          <addr-line>Newcastle Helix, Newcastle upon Tyne NE4 5TG</addr-line>
          ,
          <country country="UK">U.K</country>
        </aff>
      </contrib-group>
      <fpage>175</fpage>
      <lpage>194</lpage>
      <abstract>
        <p>Model checking is an established strategy for automatic verification of software and hardware systems. It supports extensive analyses of the properties of states and behaviours of computing systems. Petri net verification using SAT-solvers has already received considerable attention and effective tools based on it have been developed. In this paper, we are concerned with the verification of communication structured acyclic nets (CSA-nets) which so far lacked robust verification methodology. CSA-nets are sets of acyclic nets which can communicate by means of synchronous and asynchronous interactions. In this paper, we introduce several propositional formulas which can be used to verify properties of CSA-nets using SAT-solvers.</p>
      </abstract>
      <kwd-group>
        <kwd>Petri net</kwd>
        <kwd>acyclic net</kwd>
        <kwd>communication structured acyclic net</kwd>
        <kwd>model checking</kwd>
        <kwd>reachability</kwd>
        <kwd>deadlock</kwd>
        <kwd>SAT-solver</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Model checking is a verification approach that, for example, performs a search of the
system state space to examine whether certain property is satisfiable. This technique
is often used for automatic verification of both hardware and software systems. It is
a powerful method for detecting bugs in, for example, concurrent systems whose
correct design poses a significant challenge [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. For instance, [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] proposed an approach
using SAT-solver to detect state encoding conflicts in Signal Transition Graphs which
are converted into equivalent Petri nets and the verification is performed on the finite
complete prefixes of their unfoldings ([
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] extends this approach to model-checking for
merged processes). [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] introduced a general study of model-checking based on Petri net
unfoldings. A similar work has been done for the verification of contextual nets in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <sec id="sec-1-1">
        <title>A complex evolving system (CES) is composed of a number of concurrently-acting</title>
        <p>
          subsystems interacting with each other and with the environment. Such systems suffer
from a very high complexity in terms of design and behaviour. The approach [
          <xref ref-type="bibr" rid="ref1 ref10 ref9">9,10,1</xref>
          ]
based on communication structured acyclic nets (CSA-nets) — and their direct
precursors communication structured occurrence nets (CSO-nets) — which employs different
types of formally-defined types of abstraction can play an important role regarding the
representation of behaviours of CESs using structure to reduce the complexity of
representations. A recently designed and implemented tool SONCRAFT [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] (based on the
WORKCRAFT platform [
          <xref ref-type="bibr" rid="ref13 ref15">13,15</xref>
          ] providing a flexible common underpinning for
graphbased models) extensive powerful support for dealing with models of CESs based on
CSO-nets, including visualization and verification. Previous work on CSO-nets provided
a framework for visualising and analysing behaviour of CESs [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], modelling
cybercrime investigation [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], provenance [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], and timed behaviours [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>A satisfactory property verification for CSA-nets is still missing. To address this,</title>
        <p>our main contribution in this paper is to fill this gap by providing SAT-encoding of the
most significant behavioural properties of CSA-nets, such as reachability. This is the
first paper to propose a model checking solution of this kind. The proposed verification
algorithms will be added as a plug-in to SONCRAFT.</p>
        <p>The paper is organised as follows. In Section 2, we provide basic definitions
concerning acyclic nets. In Section 3, we introduce formulas characterising various basic
properties of acyclic nets, such as well-formedness and scenarios (valid executions)
which can then be checked for satisfiability using SAT-solvers. In Section 4, basic
definitions concerning communication structured acyclic nets are introduced. In Section 5,
we extend the property formulas to CSA-nets. We conclude in Section 6. Due to the
page limit proofs of formal results are not included.
2</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Acyclic nets</title>
      <sec id="sec-2-1">
        <title>In this section we introduced basic notions concerning acyclic nets.</title>
        <p>Definition 1 (acyclic net). An acyclic net is a triple acnet = (P; T; F), where P and T
are finite disjoint sets of places and transitions, respectively, and F (P T ) [ (T P)
is a flow relation such that F is acyclic and, for every t 2 T , there are p; q 2 P such that
pFt and tFq.
}
For every x 2 P [ T , x = preacnet (x) , fy j yFxg and x = postacnet (x) , fy j xFyg
are the elements directly preceding and directly following x. We denote P, T , and F
by Pacnet, Tacnet, and Facnet, respectively, to indicate explicitly the net acnet. An acyclic
net can exhibit backward non-determinism (if j pj &gt; 1, for some p 2 P) and forward
non-determinism (if jp j &gt; 1, for some p 2 P).</p>
        <p>Definition 2 (step and marking). Let acnet = (P; T; F) be an acyclic net.
1. steps(acnet) , fU 2 P(T ) n f?g j 8t; u 2 U : t 6= u =)</p>
      </sec>
      <sec id="sec-2-2">
        <title>2. markings(acnet) , P(P) are the markings.</title>
        <p>3. Maincintet , fp 2 P j p = ?g is the default initial marking, and Maficnnet , fp 2 P j p =
?g is the default final marking. }
t \ u = ?g are the steps.</p>
        <p>Graphically, places are represented by circles, transitions by boxes, and arcs represent
the flow relation F. Markings are shown by placing tokens within the circles. For acyclic
nets we introduce step sequence semantics as such a semantics is used in the model of
communication structured occurrence nets.
Definition 3 (enabled and executed step). Let M be a marking of an acyclic net acnet.</p>
        <sec id="sec-2-2-1">
          <title>1. enabledacnet(M) , fU 2 steps(acnet) j U Mg are the steps enabled at M.</title>
        </sec>
        <sec id="sec-2-2-2">
          <title>2. A step U 2 enabledacnet(M) can be executed yielding a new marking given by M0 , (M [ U ) n U . This is denoted by M[U iacnet M0. }</title>
          <p>Note that markings of acyclic nets are ‘safe’ by definition. The emptiness of the
postplaces of an executed U will hold for the well-formed acyclic nets introduced later.
Definition 4 ((mixed) step sequence). Let acnet be an acyclic net and m be a sequence
M0U1M1 : : : Mk 1UkMk (k 0) such that M0; : : : ; Mk are markings and U1; : : : ;Uk are
steps.</p>
        </sec>
        <sec id="sec-2-2-3">
          <title>1. m is a mixed step sequence from M0 to Mk if Mi 1[Uiiacnet Mi, for every 1 i k.</title>
          <p>2. If m is a mixed step sequence from M0 to Mk, then s = U1 : : :Uk is a step sequence
from M0 to Mk. This is denoted by M0[s iacnet Mk.</p>
          <p>M0 U!1 M1 : : : Mk 1 U!k Mk.</p>
        </sec>
        <sec id="sec-2-2-4">
          <title>Also, M0[iacnet Mk denotes that Mk is reachable from M0.</title>
          <p>If k = 0 then m = M0 and the corresponding step sequence s is the empty sequence
denoted by l . A mixed step sequence M0U1M1 : : : Mk 1UkMk can also be denoted as
}
Definition 5 (behavioural notions). Let acnet be an acyclic net.
1. sseq(acnet) , fs j Maincintet[s iacnet Mg are the step sequences of acnet.</p>
        </sec>
        <sec id="sec-2-2-5">
          <title>2. maxsseq(acnet) , fs 2 sseq(acnet) j :9U : sU 2 sseq(acnet)g are the maximal</title>
          <p>step sequences of acnet. }
We usually treat individual transitions as singleton steps; for instance, a step sequence
ftgfugfw; vgfzg can be denoted by tufw; vgz.</p>
        </sec>
      </sec>
      <sec id="sec-2-3">
        <title>Acyclic nets allow one to define conflicts between transitions in a structural way.</title>
        <p>Definition 6 (structural notions). Let acnet = (P; T; F) be an acyclic net.
1. Two transitions t 6= u 2 T are in direct (forward) conflict, denoted t#0u, if they have
a common place in their presets, i.e., t \ u 6= ?.
2. Two transitions t 6= u 2 T are in direct backward conflict if they have a common
place in their postsets, i.e., t \ u 6= ?.</p>
        <sec id="sec-2-3-1">
          <title>3. Two nodes x; y 2 P [ T are in conflict, denoted x#y, if there are transitions t and u</title>
          <p>such that t#0u and (t; x); (u; y) 2 F .</p>
        </sec>
        <sec id="sec-2-3-2">
          <title>4. A transition t 2 T is in self-conflict if t#t. }</title>
          <p>
            Note that conflicts between transitions emerge from having a common pre-place (in the
case of forward non-determinism) or a common post-place (in the case of backward
non-determinism), while concurrency results from multiple post-places emerging from
a transition [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ].
Example 1. Figure 1 shows an acyclic net acnet, where P = fp0; p1; p2; p3; p4; p5g,
T = fa; e; f ; g; hg, and F = f(p0; a); (a; p1); (a; p2); : : : ; (h; p4)g. The initial and final
markings are fp0g and fp4; p5g, respectively. Two possible steps sequences are s1 =
afe; ggh and s2 = af f ; ggh. In this acyclic net, transitions e and f are involved both in
direct forward conflict and direct backward conflict. }
          </p>
        </sec>
      </sec>
      <sec id="sec-2-4">
        <title>If backward conflicts are not allowed, one can characterise structurally transitions which can be executed.</title>
        <p>Definition 7 (backward deterministic acyclic net). A backward deterministic acyclic
net is an acyclic net acnet = (P; T; F) such that j pj 1, for all p 2 P. }
Proposition 1. Let acnet be a backward deterministic acyclic net.
1. No step sequence contains multiple occurrences of transitions.
2. Each transition which is not in self-conflict occurs in at least one of the step
sequences.</p>
        <p>
          Occurrence nets and scenarios
An occurrence net [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] is a Petri net describing a single execution of some concurrent
system in such a way that only the details of causality and concurrency between
transitions are captured. It is deterministic and can represent an execution history of a system
with a clear interpretation of causal dependencies between transitions.
Definition 8 (occurrence net). An occurrence net is an acyclic net onet = (P; T; F)
such that j pj 1 and jp j 1, for every p 2 P. }
        </p>
      </sec>
      <sec id="sec-2-5">
        <title>We use occurrence nets embedded in an acyclic net to provide a characterisation of its potential executions.</title>
        <p>Definition 9 (scenario and maximal scenario). Let acnet be an acyclic net.
1. A scenario of acnet is an occurrence net ocnet such that:
(a) Tocnet Tacnet and Pocnet = Maincintet [ postacnet (Tocnet).</p>
        <p>(b) preocnet (t) = preacnet (t) and postocnet (t) = postacnet (t), for every t 2 Tocnet.
2. A maximal scenario of acnet is a scenario ocnet such that there is no other scenario
ocnet0 satisfying Tocnet Tocnet0 .</p>
        <p>The sets of all scenarios and maximal scenarios of acnet are scenarios(acnet) and
maxscenarios(acnet), respectively.
}</p>
        <p>Example 2. Figure 3 illustrates the last point by identifying two maximal scenarios,
ocnet1 = scenarioacnet(fa; e; g; hg) and ocnet2 = scenarioacnet(fa; f ; g; hg), of the acyclic
net acnet in Figure 1. For example, ocnet1 captures the following five executions:
a fe;gg h
fp0g ! fp1; p2g ! fp3; p5g ! fp4; p5g,</p>
        <p>a e g h
fp0g ! fp1; p2g ! fp2; p3g ! fp3; p5g ! fp4; p5g,</p>
        <p>a e fg;hg
fp0g ! fp1; p2g ! fp2; p3g ! fp4; p5g,</p>
        <p>a e h g
fp0g ! fp1; p2g ! fp2; p3g ! fp2; p4g ! fp4; p5g, and</p>
        <p>a g e h
fp0g ! fp1; p2g ! fp1; p5g ! fp3; p5g ! fp4; p5g. }</p>
      </sec>
      <sec id="sec-2-6">
        <title>Not every acyclic net can be seen as a valid representation of causal dependencies</title>
        <p>in some execution of a concurrent system. The next definition introduces the notion
of well-formedness which basically means that all the executions an acyclic net are
the executions of its scenarios. In addition, an acyclic net has no redundant transitions
whenever each of its transitions can be executed.</p>
        <p>Definition 10 (well-formedness and non-redundant transitions). An acyclic net acnet
is well-formed if sseq(acnet) = S sseq(scenarios(acnet)). Moreover, acnet has
nonredundant transitions if Tacnet = SfS s j s 2 sseq(acnet)g. }</p>
      </sec>
      <sec id="sec-2-7">
        <title>Each backward deterministic acyclic net, and so also each occurrence net, is wellformed. Moreover, each occurrence net has non-redundant transitions. As the result shows, in a given execution a well-formed acyclic net no token can be created ‘more than once’.</title>
        <p>Proposition 2. acnet is well-formed iff the following hold for every step sequence U1 : : :Uk 2
sseq(acnet):
1. t \ u = ?, for every 1
2. Ui \ U j = ?, for all 1
i
i &lt; j
k and all distinct t; u 2 Ui.</p>
        <p>k.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Verifying properties of acyclic nets</title>
      <p>The task of a SAT-solver is to find a satisfying assignment for the variables used in
a propositional boolean formula f . That is, the SAT-solver looks for an assignment
f : Var ! f0; 1g for the variables Var which occur in f that makes f true, i.e., f [ f ] = 1.
And, if such an assignment exists, f is satisfiable. The formula f is often expressed in
conjunctive normal form (CNF), i.e., a conjunction of clauses which are disjunctions of
literals (where a literal is either a variable or the negation of a variable).
3.1 Identifying scenarios
For a given acyclic net acnet = (P; T; F), a subset of transitions T 0
nario whenever the following three properties hold:</p>
      <sec id="sec-3-1">
        <title>T induces a sce</title>
        <p>– Causality: all non-initial pre-places of T 0 received tokens from T 0.
– No Forward Conflict: the transitions in T 0 are free from forward conflicts.
– No Backward Conflict: the transitions in T 0 are free from backward conflicts.
The next definition and proposition make this formal, by identifying the scenarios of an
acyclic net with occurrence net restrictions induced by subsets of transitions.
Definition 11 (restricting acyclic net). Let acnet = (P; T; F) be an acyclic net and
T 0 T . Then acnetjT 0 = (P0; T 0; Fj(P0 T 0)[(T 0 P0)), where P0 = Maincintet [ postacnet (T 0), is
the restriction of acnet to T 0.
}
Note that if acnetjT 0 is a scenario, then acnetjT 0 = scenarioacnet(T 0).</p>
        <p>Proposition 3. The following statements are equivalent for an acyclic net acnet =
(P; T; F) and T 0 T :</p>
        <sec id="sec-3-1-1">
          <title>1. acnetjT 0 2 scenarios(acnet).</title>
          <p>2. acnetjT 0 is an occurrence net and preacnet (T 0) n Maincintet
postacnet (T 0).</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>We want to obtain a propositional formula which can be used to identify all the</title>
        <p>scenarios of an acyclic net acnet, i.e., to construct a formula Scenarioacnet which
evaluates to 1 iff all the transitions assigned 1 induce a scenario of acnet (note that acnet
is not assumed to be well-formed). The following boolean variables will be used in the
construction of Scenarioacnet and the translation into SAT :</p>
        <p>– For every t 2 T , we have a variable int tracing that t belongs to a scenario.
The constraints on the above variables are defined, following Proposition 3, as follows:
– To ensure that all non-initial pre-places of T 0 received tokens from T 0:
Causalityacnet , ^ int !
t2T
^</p>
        <p>_ inu</p>
        <p>NoForwardConflictacnet , ^
^</p>
        <p>:(int ^ inu)
t2T u2( t) nftg
where Vu2( t) nftg :(int ^ inu) is omitted if ( t) = ftg.
– To ensure that scenario has no backward conflicts:</p>
        <p>NoBackwardConflictacnet , ^
^</p>
        <p>:(int ^ inu)
t2T u2 (t )nftg
where Vu2 (t )nftg :(int ^ inu) is omitted if (t ) = ftg.</p>
      </sec>
      <sec id="sec-3-3">
        <title>Then the formula which characterises all the scenarios of acnet is:</title>
        <sec id="sec-3-3-1">
          <title>Scenarioacnet , Causalityacnet ^ NoForwardConflictacnet ^ NoBackwardConflictacnet</title>
          <p>The size of the above formula (in terms of the occurrences of literals) is bounded by
jT j + 3 jT j minfjFj2; jPj jT jg.</p>
          <p>Proposition 4. Let acnet be an acyclic net.</p>
        </sec>
        <sec id="sec-3-3-2">
          <title>1. If f is a satisfying assignment for Scenarioacnet then acnetj f 1(1) is a scenario of</title>
          <p>acnet.
2. For every scenario acnet0 of the acyclic net acnet, there is a satisfying assignment
f for Scenarioacnet such that acnetj f 1(1) = acnet0.</p>
          <p>Hence, we can use Scenarioacnet to find all the subsets T 0 of transitions of acnet inducing
scenarios after translating it into CNF and feeding into a SAT-solver.
3.2
To characterise well-formed acyclic nets, we introduce formulas capturing the
enabledness of transitions, for every t 2 T :</p>
          <p>Enabledt ,</p>
          <p>^ :inu ^
u2( t)
^</p>
          <p>_ inu
Intuitively, in the above formula, Scenarioacnet ‘selects’ one of the executions of acnet
which does not violate well-formedness, and the second part means that there is a
transition which can be executed after that violating well-formedness.</p>
          <p>The size of the above formula is bounded by jT j + 6 jT j minfjFj2; jPj jT jg.
t2T
p3
p4
p5
c
0
d
1</p>
          <p>_ inu
u2 (t )
p6
p7
p0
e
1
p1
p2
a
0
b
1</p>
          <p>Fig. 4. An acyclic net which is not well-formed.
Proposition 5. An acyclic net acnet is well-formed iff NotWellFormedacnet does not
have a satisfying assignment.</p>
          <p>Hence we can use NotWellFormedacnet to find out whether acnet is well-formed after
translating it into CNF and feeding into a SAT-solver.</p>
          <p>Example 3. The acyclic net in Figure 4 is not well-formed. This is so because for the
assignment f illustrated in Figure 4 (where f (e) = f (b) = f (d) = 1 and f (a) = f (c) = 0)
we have the following: (i) Scenarioacnet evaluates to 1 inducing scenarioacnet(fe; b; dg);
(ii) Enableda[ f ] = 1; and (iii) (Wu2 (a ) inu)[ f ] = (ina _ inb)[ f ] = (0 _ 1) = 1. Hence,
NotWellFormedacnet[ f ] = 1. }
3.3</p>
          <p>Non-redundant transitions
Definition 10(2) asserts that a well-formed acnet has non-redundant transitions if each
transition is guaranteed to occur in at least one of its steps sequences. In other words, if
for each transition t there is a valid scenario in scenarios(acnet) that contains t.
p0
Example 4. Consider the backward deterministic acyclic net in Figure 5. The two
transitions g and h are in direct conflict, and so c is in a self-conflict. This means that c can
never be executed, i.e., there is no step sequence s 2 sseq(acnet) such that c 2 S s .
Therefore, c is not included in any scenario of scenarios(acnet), and can be seen as an
irrelevant part of acnet.</p>
          <p>For the example in Figure 5, we can see that the boolean formula Scenarioacnet is not
satisfiable for an assignment r such that r(inc) = 1 since</p>
          <p>Causalityacnet = (inx ! 1) ^ (ing ! inx) ^ (inh ! inx)^</p>
          <p>(in f ! inx) ^ (inc ! (ing ^ inh))</p>
          <p>NoForwardConflictacnet = :(ing ^ inh) ^ :(inh ^ ing) :
Hence, if r(inc) = 1 and Causalityacnet[r] = 1 then we have r(ing) = r(inh) = 1, and so
NoForwardConflictacnet[r] = 0. This means there is no scenario induced by transitions
whose associated variables are assigned 1 and c belongs to such a scenario. }</p>
        </sec>
      </sec>
      <sec id="sec-3-4">
        <title>Checking whether a transition t belongs to at least one scenario can be done using the following formula:</title>
        <p>NonRedundanttacnet , int ^ Scenarioacnet :</p>
      </sec>
      <sec id="sec-3-5">
        <title>As a result, a well-formed acyclic net has non-redundant transitions if NonRedundantt</title>
        <p>is satisfiable, for each t 2 T .</p>
        <p>Proposition 6. A well-formed acyclic net acnet has non-redundant transitions iff the
formula NonRedundanttacnet is satisfiable, for every t 2 T .
3.4</p>
        <p>Maximal scenarios
Maximal scenarios are complete scenarios, which means that no transitions are enabled.</p>
      </sec>
      <sec id="sec-3-6">
        <title>In this case, we assume that acnet is a well-formed acyclic net, and define:</title>
        <p>MaxScenarioacnet , Scenarioacnet ^ ^ :Enabledt
The size of MaxScenarioacnet is bounded by jT j + 5 jT j minfjFj2; jPj jT jg. Intuitively,
it is satisfiable for all the scenarios that do not enable any transitions.</p>
        <p>Proposition 7. Let acnet be a well-formed acyclic net.</p>
        <sec id="sec-3-6-1">
          <title>1. If f is a satisfying assignment for MaxScenarioacnet then acnetj f 1(1) is a maximal</title>
          <p>scenario of acnet.
2. For every maximal scenario acnet0 of acnet, there is a satisfying assignment f for
MaxScenarioacnet such that acnetj f 1(1) = acnet0.</p>
          <p>Hence we can use MaxScenarioacnet to find the subsets T 0 of transitions of acnet
inducting maximal scenarios after translating it into CNF and feeding into a SAT-solver.
p3
p4</p>
          <p>t2T
p0
1
g
0</p>
          <p>Example 5. Figure 6 shows a well-formed acyclic net that exhibits both forward and
backward conflict. Observe that all the transitions in fx; e; f ; hg satisfy the causality
condition, and have no forward nor backward conflict. They also lead to a marking
fp5g where no transitions are enabled. Therefore, the set of transitions fx; e; f ; hg
induces a maximal scenario in maxscenarios(acnet). Thus, the MaxScenarioacnet formula
is satisfied by the assignment indicated in Figure 6 (the situation is the same if g is used
instead of h). }</p>
          <p>Marked places and deadlocked scenarios
Consider a scenario of a well-formed acyclic net acnet. Then a place p 2 P is marked
when at least one transition in its preset has been executed and no transitions in its
postset have been executed. This can be captured as follows:</p>
          <p>Markp ,
_ int ^
t2 p
u2p
^ :inu
where Wt2 p is omitted if p has no input transitions, and Vu2p :inu is omitted if p has
no output transitions. The size of the above formula is bounded by 2 jT j, and it can be
used to answer questions such as: is a specific marking reachable?</p>
        </sec>
      </sec>
      <sec id="sec-3-7">
        <title>The following formula can be used to check whether there is a reachable marking in which all places in a non-empty set M P are marked:</title>
        <p>ReachaMcnet , Scenarioacnet ^
^
p2M</p>
        <p>Markp
Proposition 8. Let acnet be a well-formed acyclic net and M be a non-empty set of its
places. Then there is a reachable marking M0 satisfying M M0 iff ReachaMcnet has a
satisfying assignment.</p>
        <p>
          No execution of an acyclic net acnet = (P; T; F) can be extended indefinitely.
However, one may consider a scenario as deadlocked if it is maximal and some of the places
it marks does not belong to Maficnnet. (Verification of deadlock-freeness using SAT-solvers
has been studied in, e.g., [
          <xref ref-type="bibr" rid="ref14 ref5 ref6">14,6,5</xref>
          ]). All the deadlocked scenarios can be captured by the
following formula:
        </p>
        <sec id="sec-3-7-1">
          <title>DeadlockScenarioacnet , MaxScenarioacnet ^</title>
          <p>_
p2PnMaficnnet</p>
          <p>Markp
The size of MaxScenarioacnet is bounded by jT j + 5 jT j minfjFj2; jPj jT jg + 2 jPj jT j.
3.6</p>
          <p>Backward deterministic acyclic nets
In this case, some formulas defined earlier can be simplified:
– Causality: Causalityacnet , Vt2T int ! Vu2 ( t) inu .
– Enabling: Enabledt , Vu2( t) :inu ^ Vu2 ( t) inu.
– Scenario: Scenarioacnet , Causalityacnet ^ NoForwardConflictacnet.
– Place marking (for p 2 P and t 2 T satisfying ftg = p): Markp , int ^ Vu2p :inu.
– Checking well-formedness is not needed as acnet is well-formed.
4</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Communication structured acyclic nets</title>
      <p>
        Communication structured acyclic nets (CSA-nets) add communication to represent the
interaction among several separated subsystems [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Each CSA-net is a set of acnets
with synchronous or asynchronous communication between their transitions
implemented using extra nodes called buffer places (which provided a motivation for a/syn
connections discussed, e.g., in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]). When two transitions are subject to synchronous
communication, they are always executed together, but under asynchronous
communication they may be executed simultaneously or one of them after the other.
Definition 12 (communication structured acyclic net). A communication structured
acyclic net (or CSA-net) is a tuple csan , (acnet1; : : : ; acnetn; Q;W ) (n 1) such that:
1. acnet1; : : : ; acnetn are well-formed acyclic nets with disjoint sets of nodes (i.e.,
places and transitions). We also denote:
      </p>
      <sec id="sec-4-1">
        <title>Pcsan , Pacnet1 [</title>
      </sec>
      <sec id="sec-4-2">
        <title>Tcsan , Tacnet1 [</title>
      </sec>
      <sec id="sec-4-3">
        <title>Fcsan , Facnet1 [ [ Pacnetn [ Tacnetn [ Facnetn</title>
        <p>Qcsan , Q
Wcsan , W
netcsan;i , acneti (for 1</p>
      </sec>
      <sec id="sec-4-4">
        <title>2. Qcsan is a set of buffer places and Wcsan (Qcsan Tcsan) [ (Tcsan</title>
        <p>of arcs adjacent to the buffer places satisfying the following:
(a) Qcsan \ (Pcsan [ Tcsan) = ?.
(b) For every buffer place q:
i. There is at least one transition t such that tWcsanq.</p>
        <p>ii. If tWcsanq and qWcsanu then transitions t and u belong to different acnetis.</p>
      </sec>
      <sec id="sec-4-5">
        <title>Moreover, for every x 2 Pcsan [ Tcsan [ Qcsan:</title>
        <p>precsan (x) , fy j y Fcsan x _ yWcsan xg
postcsan (x) , fy j x Fcsan y _ xWcsan yg
denote direct predecessors and successors of x.
3. x1 2 precsan (x2); : : : ; xk 1 2 precsan (xk) and x1 = xk imply fx1; : : : ; xkg \ Pcsan = ?,
for all x1; : : : ; xk 2 Pcsan [ Tcsan [ Qcsan.</p>
        <p>The set of all CSA-nets is denoted by CSAN.
}
Note that the structure of a CSA-net may include cycles which are a means to implement
synchronous communication. Each such cycle can only involve buffer places. In what
follows, csan = (acnet1; : : : ; acnetn; Q;W ) (n 1) is a fixed CSA-net.</p>
        <p>Definition 13 (step and marking).
3. Mcinsaitn , Maincintet1 [</p>
        <p>Maficnnet1 [ [ Macnetn is the default final marking of csan.</p>
        <p>fin
1. steps(csan) , fU 2 P(Tcsan) n f?g j 8t; u 2 U : t 6= u =) precsan (t) \ precsan (u) =
?g are the steps of csan.</p>
      </sec>
      <sec id="sec-4-6">
        <title>2. markings(csan) , P(Pcsan [ Qcsan) are the markings of csan.</title>
        <p>[ Maincintetn is the default initial marking of csan, and Mcfisnan ,
}
Definition 14 (enabled and executed step). Let M be a marking of csan.</p>
      </sec>
      <sec id="sec-4-7">
        <title>1. enabledcsan(M) , fU 2 steps(csan) j precsan (U )</title>
        <p>steps enabled at M.</p>
      </sec>
      <sec id="sec-4-8">
        <title>M [ (postcsan (U ) \ Q)g are the</title>
        <p>i</p>
        <p>n) :
Qcsan) is a set</p>
      </sec>
      <sec id="sec-4-9">
        <title>2. A step U 2 enabledcsan(M) can be executed yielding a new marking given by M0 , (M [ postcsan (U )) n precsan (U ). This is denoted by M[U icsan M0. }</title>
        <sec id="sec-4-9-1">
          <title>The definition that follow introduce notion similar to those introduced earlier for acyclic nets.</title>
          <p>Definition 15 ((mixed) step sequence). Let m = M0U1M1 : : : Mk 1UkMk (k
sequence such that M0; : : : ; Mk are markings and U1; : : : ;Uk are steps of csan.
0) be a
1. m is a mixed step sequence from M0 to Mk if Mi 1[Uiicsan Mi, for every 1 i k.
2. If m is a mixed step sequence from M0 to Mk, then s = U1 : : :Uk is a step sequence
from M0 to Mk. This is denoted by M0[s icsan Mk. Also, M0[icsan Mk denotes that Mk
is reachable from M0.
3. sseq(csan) , fs j Mcinsaitn[s icsan Mg are the step sequences of csan.
4. maxsseq(csan) , fs 2 sseq(csan) j :9U : sU 2 sseq(csan)g are the maximal step
sequences of csan. }</p>
        </sec>
        <sec id="sec-4-9-2">
          <title>Thus, in csan the buffer places pass tokens between the different component acyclic</title>
          <p>nets. Note that just as acyclic nets, CSA-nets may exhibit backward and forward
nondeterminism. Moreover, they can additionally contain cycles involving buffer places.
Within such cycles tokens can be produced and consumed in a single executed step. This
provides a mechanism enabling synchronous communication, and is a feature which is
not supported by acyclic nets (and the standard Petri net models).</p>
          <p>Example 6. In Figure 7, transitions e and c communicate asynchronously, so they can
be executed together, or e then c (but not c before e). On the other hand, d and f must
be executed simultaneously as they are involved in synchronous communication. The
initial marking in this case is Mcinsaitn = fp1; p5g. The steps are:</p>
          <p>steps(csan1) = fU 2 P(fa; b; c; d; e; f g) n f?g j a 2 U =) c 2= U g ;
and all the maximal step sequences are:</p>
          <p>maxsseq(csan) = ffa; egb; afb; eg; eab; aeb; abe; ecfd; f g; fe; cgfd; f gg :
Also, for example, postacnet (e) = fp6; q1g and the firing of e will produce tokens in
those two places.
Scenarios of CSA-nets are based on CSA-nets which involve occurrence nets rather than
acyclic nets.</p>
          <p>Definition 18 (communication structured occurrence net). csan is a communication
structured occurrence net (or CSO-net) if the following hold:
1. acnet1; : : : ; acnetn are occurrence nets.
2. j precsan (q)j = 1 and j postcsan (q)j 1, for every q 2 Q.
}</p>
        </sec>
        <sec id="sec-4-9-3">
          <title>The scenarios of CSA-nets are subnets which are both backward and forward deterministic.</title>
          <p>Definition 19 (scenario and maximal scenario).
1. A scenario of csan is a CSO-net cson with n component occurrence nets such that:
(a) netcson;i 2 scenarios(netcson;i), for every 1 i n.
(b) Qcson Q and Wcson W .</p>
          <p>(c) precson (t) = precsan (t) and postcson (t) = postcsan (t), for every t 2 Tcson.
2. A maximal scenario of csan is a scenario cson such that there is no scenario cson0
satisfying Tcson Tcson0 .</p>
          <p>The set of all scenarios of csan is scenarios(csan), and the set of all maximal scenarios
of csan is maxscenarios(csan).
}
Scenarios represent possible deterministic executions (concurrent histories). Maximal
scenarios are complete in the sense that they cannot be extended any further. Note that
Definition 19(1:a) requires that each component net of cson is a scenario (and so, in
particular, an occurrence net) of the corresponding component acyclic net of csan.
Example 7. Figure 8 represents a CSO-net for csan in Figure 7 which is also one of
its maximal scenarios whose transitions are fe; c; d; f g and no other transitions can be
enabled at the final marking fp4; p7g. }
Definition 20 (well-formedness and non-redundant transitions). csan is
well-formed if sseq(csan) = S sseq(scenarios(csan)). Moreover, csan has non-redundant
transitions if Tcsan = SfS s j s 2 sseq(csan)g. }</p>
        </sec>
        <sec id="sec-4-9-4">
          <title>As shown in [9], all CSO-nets are well-formed.</title>
        </sec>
      </sec>
      <sec id="sec-4-10">
        <title>Proposition 9. csan is well-formed iff, for every U1 : : :Uk 2 sseq(csan):</title>
        <p>1. postcsan (t) \ postcsan (u) = ?, for every 1
2. postcsan (Ui) \ postcsan (U j) = ?, for all 1
i k and all distinct t; u 2 Ui.
i &lt; j k.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Verifying properties of CSA-nets</title>
      <p>The development and intuitive meaning of formulas needed to check the basic
properties of CSA-nets are similar as in the case of acyclic nets. Therefore, we will avoid
repeating some of the explanations and formal properties. Also, the sizes of formulas
introduced for CSA-nets are similar to those developed for acyclic nets with jT j being
sometimes replaced by jSCcsanj (i.e., the number of syn-cycles of csan).
Identifying scenarios</p>
      <sec id="sec-5-1">
        <title>We say that a set of transitions T 0 satisfied:</title>
        <p>– Causality: all non-initial pre-places of T 0 received tokens from T 0.
– No Forward Conflict: transitions in T 0 are free from forward conflicts.
– No Backward Conflict: transitions in T 0 are free from backward conflicts.</p>
      </sec>
      <sec id="sec-5-2">
        <title>The next definition and proposition make this more formal.</title>
      </sec>
      <sec id="sec-5-3">
        <title>Tcsan induces a scenario of csan if the following are</title>
        <p>Definition 21 (restricting communication structured acyclic net). The restriction of
csan to T 0 Tcsan is csanjT 0 , (acnet1jT 0 ; : : : ; acnetnjT 0 ; Q0jT 0 ;W j(Q0 T 0)[(T 0 Q0)), where
Q0 = Q \ postacnet (T 0). }
Proposition 10. The following are equivalent for T 0
Tcsan:</p>
        <sec id="sec-5-3-1">
          <title>1. csanjT 0 2 scenarios(csan).</title>
          <p>2. csanjT 0 is a CSO-net and precsan (T 0) n Mcinsaitn
postcsan (T 0).</p>
        </sec>
      </sec>
      <sec id="sec-5-4">
        <title>The following boolean variables will be used in the construction of Scenariocsan and</title>
        <p>the translation into SAT problem.</p>
        <p>– For every t 2 Tcsan, we have a variable int tracing that t belongs to a scenario.
The constraints on the above variables are defined, following Proposition 3, as follows:
– To ensure that all non-initial pre-places of T 0 received tokens from T 0:
Causalitycsan ,</p>
        <p>^
t2Tcsan
int !
^
_</p>
        <p>inu
p2precsan (t)nMcinsaitn u2precsan (p)
– To ensure that scenario has no forward conflicts:
– To ensure that scenario has no backward conflicts:</p>
        <p>NoForwardConflictcsan ,
NoBackwardConflictcsan ,
^
^
^</p>
        <p>: int ^ inu
t2Tcsan u2postcsan (precsan (t))nftg
^</p>
        <p>: int ^ inu
t2Tcsan u2precsan (postcsan (t))nftg
Note that sometimes parts of the above formulas may be omitted, similarly as in the
case of acyclic nets. Then the formula which characterises all the scenarios of csan is:</p>
        <sec id="sec-5-4-1">
          <title>Scenariocsan , Causalitycsan ^ NoForwardConflictcsan ^ NoBackwardConflictcsan</title>
          <p>The satisfying assignments of Scenariocsan identify precisely all the scenarios of csan
which is not necessary well-formed.</p>
          <p>Example 8. All the transitions in Figure 9 which have value 1 assigned by the indicated
assignment f represent a scenario for csan because each part of Scenariocsan is satisfied:
Causalitycsan[ f ]
= ((ind ! inA) ^ (ine ! in f ) ^ (inA ! ine)^</p>
          <p>(inB ! (ine ^ inC)) ^ ((inC ! (in f ^ inB))) ^ (in f ! 1))[ f ]
= (0 ! 0) ^ (1 ! 1) ^ (0 ! 1) ^ (1 ! (1 ^ 1)) ^ (1 ! (1 ^ 1)) ^ (1 ! 1) = 1
NoForwardConflictcsan[ f ]</p>
          <p>= (:(inA ^ inB) ^ :(inB ^ inA))[ f ] = :(0 ^ 1) ^ :(1 ^ 0) = 1
NoBackwardConflictcsan[ f ]</p>
          <p>= (:(inA ^ inB) ^ :(inB ^ inA))[ f ] = :(0 ^ 1) ^ :(1 ^ 0) = 1 :
Hence, Scenariocsan[ f ] = 1 ^ 1 ^ 1 = 1.
}
1
p2
q2
p5
q3
d
0</p>
        </sec>
      </sec>
      <sec id="sec-5-5">
        <title>The formula Scenariocsan represents a scenario in general, which not necessarily</title>
        <p>maximal. In order to evaluate the maximality of a scenario, we need to evaluate the
enabledness property as any scenario is maximal iff there are no enabled steps that can
be executed. In this case, however, sync-cycles (which include individual transitions)
rather than individual transitions need to be checked for enabledness.</p>
        <p>The following formula captures the enabledness of a syn-cycle, for every S 2 SCcsan:
EnabledS ,</p>
        <p>^
u2postcsan (precsan (S))
:inu ^
_</p>
        <p>inu :
p2precsan (S)n(Mcinsaitn[(Q\postcsan (S))) u2precsan (p)
^
^
Thus S is a set of synchronised transitions whose enabledness depends on each other.
In Figure 9, B and C are transitions involved in synchronous communication and S =
fB;Cg is a syn-cycle.</p>
      </sec>
      <sec id="sec-5-6">
        <title>Finally, the following formula represents the set of transitions that induce a maximal</title>
        <p>scenario of a well-formed csan:</p>
        <sec id="sec-5-6-1">
          <title>MaxScenariocsan , Scenariocsan ^ :EnabledS :</title>
        </sec>
      </sec>
      <sec id="sec-5-7">
        <title>Evaluating the property of well-formedness is discussed in the next section.</title>
        <p>5.1
Informally speaking, csan in not well-formed if there is a subset of transitions that
induce a scenario which does not violate well-formedness and there is an enabled
syncacnet1
p1
p4
f
0
acnet2
p5
cycle which violates well-formedness after its execution and the definition of a scenario
is violated as well. The following formula detects that a given csan is not well-formed:</p>
        <sec id="sec-5-7-1">
          <title>NotWellFormedcsan , Scenariocsan ^</title>
        </sec>
        <sec id="sec-5-7-2">
          <title>EnabledS ^</title>
          <p>_</p>
          <p>_
u2precsan (postcsan (S))
inu :</p>
          <p>Non-redundant transitions, marked places, and deadlocked scenarios
The absence of redundant transitions of csan can be verified in the same way as for an
acyclic net, by checking that, for every t 2 Tcsan, the following formula has a satisfying
assignment:</p>
          <p>NonRedundanttcsan , int ^ Scenariocsan
The formula for checking whether a place is marked by a scenario is also similar as
before:</p>
          <p>Markcpsan ,</p>
          <p>_
t2precsan (p)
int ^</p>
          <p>^
:inu</p>
        </sec>
      </sec>
      <sec id="sec-5-8">
        <title>Moreover, checking whether a set of places is marked by a scenario is achieved by:</title>
        <p>p2M
ReachcMsan ,
^ Scenariocsan ^ Markcpsan</p>
      </sec>
      <sec id="sec-5-9">
        <title>Detecting deadlocked scenarios can then be done using the following formula:</title>
        <sec id="sec-5-9-1">
          <title>DeadlockScenariocsan , MaxScenariocsan ^</title>
          <p>_
p2PcsannMcfisnan</p>
          <p>Markp
Note that it is not required that the buffer places are empty in non-deadlocked markings.
5.3</p>
          <p>Backward deterministic CSA-nets
When csan is a backward deterministic CSA-net, some formulas defined earlier can be
simplified, for example:</p>
          <p>Causalitycsan , Vt2Tcsan int ! Vp2precsan (precsan (t)) inu</p>
          <p>EnabledS , Vu2postcsan (precsan (S)):inu ^ Vu2precsan (precsan (S))nS inu</p>
        </sec>
      </sec>
      <sec id="sec-5-10">
        <title>Then, the formula of Scenariocsan is reduced to:</title>
        <sec id="sec-5-10-1">
          <title>Scenariocsan , Causalitycsan ^ NoForwardConflictcsan</title>
          <p>and the formula for marking place p with precsan (p) = ftg is:</p>
        </sec>
        <sec id="sec-5-10-2">
          <title>Markp , int ^</title>
          <p>^
:inu
6</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Concluding remarks</title>
      <p>We presented fundamentals of SAT-based verification of CSA-nets (we also intend to
discuss the acyclicity constraint later on). In the future work, we plan to extend the set of
formulas capturing behavioural properties of CSA-nets, and so enhance the applicability
of the proposed model checking method.</p>
      <p>
        The ongoing work is concerned with an implementation of formulas developed here
in the SONCRAFT tool [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. This would allow comparisons of the efficiency of the
proposed model checking technique with other approaches (note that verification problems
considered here are NP-complete; see, e.g., [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]). In particular, a comparison with model
checking based on finite prefixes of net unfoldings [
        <xref ref-type="bibr" rid="ref4 ref5">4,5</xref>
        ] after adapting it to CSA-nets
and their step sequence execution semantics. However, even the unfolding of acyclic
nets, where the forward and backward conflict are allowed, would in the worst case
generate exponential finite prefixes [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The method proposed in this paper does not
suffer from a similar problem.
      </p>
      <sec id="sec-6-1">
        <title>Finally, we expect the model checking approach presented in this paper to be amenable to further, relatively straightforward, extensions. In particular, to structured acyclic nets based on the behavioural structured occurrence nets [9], where the dynamic behaviour of a concurrent system is represented at different levels of abstraction.</title>
        <p>Acknowledgement
The authors acknowledge financial support provided by University of Hafr Al Batin.
Also, we would like to thank the reviewers for their insightful comments on the
submitted paper.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Talal</given-names>
            <surname>Alharbi</surname>
          </string-name>
          .
          <article-title>Analysing and visualizing big data sets of crime investigations using structured occurrence nets</article-title>
          (
          <source>PhD thesis)</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Anirban</given-names>
            <surname>Bhattacharyya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Bowen</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and Brian</given-names>
            <surname>Randell</surname>
          </string-name>
          .
          <article-title>Time in structured occurrence nets</article-title>
          . In Lawrence Cabac, Lars Michael Kristensen, and Heiko Rölke, editors,
          <source>Proceedings of the International Workshop on Petri Nets and Software Engineering</source>
          <year>2016</year>
          , Torun´, Poland, June 20-21,
          <year>2016</year>
          , volume
          <volume>1591</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pages
          <fpage>35</fpage>
          -
          <lpage>55</lpage>
          . CEUR-WS.org,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Javier</given-names>
            <surname>Esparza</surname>
          </string-name>
          .
          <article-title>Decidability and complexity of Petri net problems - an introduction</article-title>
          .
          <source>In Wolfgang Reisig and Grzegorz Rozenberg</source>
          , editors,
          <source>Lectures on Petri Nets I: Basic Models</source>
          ,
          <article-title>Advances in Petri Nets, the volumes are based on the Advanced Course on Petri Nets, held in Dagstuhl</article-title>
          ,
          <year>September 1996</year>
          , volume
          <volume>1491</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>374</fpage>
          -
          <lpage>428</lpage>
          . Springer,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Javier</given-names>
            <surname>Esparza</surname>
          </string-name>
          and
          <string-name>
            <given-names>Keijo</given-names>
            <surname>Heljanko</surname>
          </string-name>
          .
          <article-title>Unfoldings: A Partial-Order Approach to Model Checking (Monographs in Theoretical Computer Science</article-title>
          .
          <source>An EATCS Series)</source>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Victor</given-names>
            <surname>Khomenko</surname>
          </string-name>
          .
          <article-title>Model checking based on prefixes of Petri net unfoldings</article-title>
          (
          <source>PhD thesis)</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Victor</given-names>
            <surname>Khomenko</surname>
          </string-name>
          , Alex Kondratyev, Maciej Koutny, and
          <string-name>
            <given-names>Walter</given-names>
            <surname>Vogler</surname>
          </string-name>
          .
          <article-title>Merged processes: a new condensed representation of Petri net behaviour</article-title>
          .
          <source>Acta Informatica</source>
          ,
          <volume>43</volume>
          (
          <issue>5</issue>
          ):
          <fpage>307</fpage>
          -
          <lpage>330</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Victor</given-names>
            <surname>Khomenko</surname>
          </string-name>
          , Maciej Koutny, and
          <string-name>
            <given-names>Alexandre</given-names>
            <surname>Yakovlev</surname>
          </string-name>
          .
          <article-title>Detecting state encoding conflicts in STG unfoldings using SAT</article-title>
          .
          <source>Fundam. Informaticae</source>
          ,
          <volume>62</volume>
          (
          <issue>2</issue>
          ):
          <fpage>221</fpage>
          -
          <lpage>241</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Jetty</given-names>
            <surname>Kleijn</surname>
          </string-name>
          , Maciej Koutny, and
          <string-name>
            <surname>Marta</surname>
          </string-name>
          Pietkiewicz-Koutny.
          <article-title>Regions of Petri nets with a/sync connections</article-title>
          .
          <source>Theor. Comput. Sci.</source>
          ,
          <volume>454</volume>
          :
          <fpage>189</fpage>
          -
          <lpage>198</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Maciej</given-names>
            <surname>Koutny</surname>
          </string-name>
          and
          <string-name>
            <given-names>Brian</given-names>
            <surname>Randell</surname>
          </string-name>
          .
          <article-title>Structured occurrence nets: A formalism for aiding system failure prevention and analysis techniques</article-title>
          .
          <source>Fundam. Informaticae</source>
          ,
          <volume>97</volume>
          (
          <issue>1-2</issue>
          ):
          <fpage>41</fpage>
          -
          <lpage>91</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Bowen</given-names>
            <surname>Li</surname>
          </string-name>
          .
          <article-title>Visualisation and analysis of complex behaviours using structured occurrence nets</article-title>
          (
          <source>phd thesis)</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Bowen</surname>
            <given-names>Li</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Brian</given-names>
            <surname>Randell</surname>
          </string-name>
          , Anirban Bhattacharyya, Talal Alharbi, and
          <string-name>
            <given-names>Maciej</given-names>
            <surname>Koutny</surname>
          </string-name>
          .
          <article-title>Soncraft: A tool for construction, simulation, and analysis of structured occurrence nets</article-title>
          .
          <source>In 18th International Conference on Application of Concurrency to System Design, ACSD</source>
          <year>2018</year>
          , Bratislava, Slovakia, June 25-29,
          <year>2018</year>
          , pages
          <fpage>70</fpage>
          -
          <lpage>74</lpage>
          . IEEE Computer Society,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Paolo</surname>
            <given-names>Missier</given-names>
          </string-name>
          , Brian Randell, and
          <string-name>
            <given-names>Maciej</given-names>
            <surname>Koutny</surname>
          </string-name>
          .
          <article-title>Modelling provenance using structured occurrence networks</article-title>
          . In Paul Groth and James Frew, editors,
          <source>Provenance and Annotation of Data and Processes - 4th International Provenance and Annotation Workshop</source>
          , IPAW 2012, Santa Barbara, CA, USA, June 19-21,
          <year>2012</year>
          , Revised Selected Papers, volume
          <volume>7525</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>183</fpage>
          -
          <lpage>197</lpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Ivan</surname>
            <given-names>Poliakov</given-names>
          </string-name>
          , Victor Khomenko, and
          <string-name>
            <given-names>Alexandre</given-names>
            <surname>Yakovlev</surname>
          </string-name>
          .
          <article-title>Workcraft - A framework for interpreted graph models</article-title>
          .
          <source>In Giuliana Franceschinis and Karsten Wolf</source>
          , editors,
          <source>Applications and Theory of Petri Nets</source>
          , 30th International Conference,
          <source>PETRI NETS</source>
          <year>2009</year>
          , Paris, France, June 22-26,
          <year>2009</year>
          . Proceedings, volume
          <volume>5606</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>333</fpage>
          -
          <lpage>342</lpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>César</given-names>
            <surname>Rodríguez</surname>
          </string-name>
          and
          <string-name>
            <given-names>Stefan</given-names>
            <surname>Schwoon</surname>
          </string-name>
          .
          <article-title>Verification of Petri nets with read arcs</article-title>
          .
          <source>In Maciej Koutny and Irek Ulidowski</source>
          , editors,
          <source>CONCUR 2012 - Concurrency Theory - 23rd International Conference, CONCUR</source>
          <year>2012</year>
          ,
          <article-title>Newcastle upon Tyne</article-title>
          ,
          <source>UK, September 4-7</source>
          ,
          <year>2012</year>
          . Proceedings, volume
          <volume>7454</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>471</fpage>
          -
          <lpage>485</lpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Workcraft</surname>
          </string-name>
          . https://workcraft.org/,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>