<!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>Optimizing Algebraic Petri Net Model Checking by Slicing</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Yasir Imtiaz Khan</string-name>
          <email>yasir.khan@uni.lu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matteo Risoldi</string-name>
          <email>matteo.risoldi@uni.lu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Luxembourg, Laboratory of Advanced Software Systems 6</institution>
          ,
          <addr-line>rue R. Coudenhove-Kalergi</addr-line>
          ,
          <country country="LU">Luxembourg</country>
        </aff>
      </contrib-group>
      <fpage>275</fpage>
      <lpage>294</lpage>
      <abstract>
        <p>High-level Petri nets make models more concise and readable as compared to low-level Petri nets. However, usual verification techniques such as state space analysis remain an open challenge for both because of state space explosion. The contribution of this paper is to propose an approach for property based reduction of the state space of Algebraic Petri nets (a variant of high-level Petri nets). To achieve the objective, we propose a slicing algorithm for Algebraic Petri nets (APNSlicing). The proposed algorithm can alleviate state space even for certain strongly connected nets. By construction, it is guaranteed that the state space of sliced net is at most as big as the original net. We exemplify our technique through the running case study of car crash management system.</p>
      </abstract>
      <kwd-group>
        <kwd>High-level Petri nets</kwd>
        <kwd>Model checking</kwd>
        <kwd>Slicing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Petri nets (PNs) are a well-known low-level formalism for modeling concurrent
and distributed systems. Various evolutions of PNs have been created, among
others High-level Petri nets (HLPNs), that raise the level of abstraction of PNs
by using complex structured data [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. However, HLPN can be unfolded (i.e.,
translated) into a behaviourally-equivalent low-level PN.
      </p>
      <p>
        For the analysis of concurrent and distributed systems (including those
modeled using PNs or HLPNs) model checking is a common approach, consisting in
verifying a property against all possible states of a system. A typical drawback of
model checking is its limits with respect to the state space explosion problem: as
systems get moderately complex, completely enumerating their states demands
a growing amount of resources, which in some cases makes model checking
impractical both in terms of time and memory consumption [
        <xref ref-type="bibr" rid="ref16 ref2 ref4 ref8">2, 4, 8, 16</xref>
        ]. This is
particularly true for HLPN models, as the use of complex data (with possibly
large associated data domains) makes the number of states grow very quickly.
      </p>
      <p>As a result, an intense field of research is targeting to find ways to
optimize model checking, either by reducing the state space or by improving the
performance of model checkers. A technique called PN slicing falls into the first
category. It proposes to reduce the state space size by syntactically reducing a
PN model, taking only the portion of the model that impacts the properties to
be verified. The resultant model will typically have a smaller state space, thus
reducing the cost of model checking.</p>
      <p>
        Slicing was defined for the first time in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] in the context of program
debugging. The proposition was aimed at using program slicing for isolating the
program statements that may contain a bug, so that finding this bug becomes
simpler for the programmer. The first algorithm about PN slicing presented by
Chang et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] slices out all sets of paths in the PN graph, called concurrency
sets, such that all paths within the same set should be executed concurrently.
Some further refined PN slicing algorithms are proposed in [
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref13">10–13</xref>
        ].
      </p>
      <p>One limitation of the cited approaches is that they only apply to low-level
PNs. In order to be applied to HLPNs they need to be adapted to take into
account data types.</p>
      <p>In this work, we propose a slicing algorithm that is adapted to Algebraic Petri
nets (APNs, a variant of HLPNs). To the best of our knowledge, there does not
exist any algorithm for slicing APNs. The proposed algorithm iteratively builds
a subnet from a given APN, according to a slicing criterion that is derived from
the property to be verified. The resulting subnet preserves LT L−X properties
under weak fairness assumptions.</p>
      <p>APN-MODEL
REFINING
APN-MODEL</p>
      <p>UNFOLDING
APN-MODEL
SLICING
UNFOLDED
APN-MODEL
Fig.1, gives an overview of the proposed approach for slicing based
verification of APNs using Process Flowchart. At first, APN-model is unfolded and
then by taking property into an account criterion places are extracted.
Afterwards, slicing is performed for the criterion places. Subsequently, verification is
performed on the sliced unfolded APNs. The user may use the counterexample
to refine the APN-model to correct the property.</p>
      <p>The rest of the work is structured as follows: we give basic definitions and
concepts of the Algebraic Petri nets (APNs) in section 2. Section 3, illustrates the
steps of slicing based verification of APN-models shown in Fig.1. Details about
the underlying theory and techniques are given for each activity of the process.
In the section 4, we discuss related work and a comparison with the existing
approaches. A small case study from the domain of crisis management system
(a car crash management system) is taken to exemplify the proposed slicing
algorithm in section 5. An experimental evaluation of the proposed algorithm is
performed in section 6. In the section 7, we draw conclusions and discuss future
work concerning to the proposed work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Basic Definitions</title>
      <p>
        In this section, we give basic formal definitions of algebraic specifications used
in this paper. Formal definitions, propositions, lemmas and theorems are taken
as is or with slight modifications from [
        <xref ref-type="bibr" rid="ref12 ref14 ref15 ref6">6, 12, 14, 15</xref>
        ].
      </p>
      <p>Definition 1. A signature Σ = (S,OP) consists of a set S of sorts, OP =
(OPw,s)w∈S∗,s∈S is a (S∗ × S)−sorted set of operation names of OP. For being
the empty word, we call OP ,s the set of constant symbols.</p>
      <sec id="sec-2-1">
        <title>Definition 2.</title>
        <p>disjoint to OP.</p>
        <p>A set X of Σ-variables is a family X = (Xs)s∈S of variables set,</p>
      </sec>
      <sec id="sec-2-2">
        <title>Definition 3.</title>
        <p>The set of terms TOP,s(X) of sort s is inductively defined by:
1. Xs ∪ OP ,s ⊆ TOP,s(X);
2. op(t1, . . . , tn) ∈ TOP,s(X) for op ∈ OPs1,...,sn,s, n ≥ 1 and ti ∈ TOP,si (X)
(for i = 1, . . . , n).</p>
        <p>The set TOP,s ≡ TOP,s(∅) contains the ground terms of sort s, TOP (X) ≡
Ss∈S TOP,s(X) is the set of Σ-terms over X and TOP ≡ TOP (∅) is the set of
Σ-ground terms.</p>
      </sec>
      <sec id="sec-2-3">
        <title>Definition 4.</title>
        <p>TOP,s(X).</p>
        <p>A Σ-equation of sort s over X is a pair (l,r) of terms l, r ∈
Definition 5. An algebraic specification SPEC = ( Σ,E) consists of a signature
Σ = (S,OP) and a set E of Σ-equations.</p>
        <p>Definition 6. A Σ-algebra A = (SA, OPA) consist of a family SA = (As)s∈S of
domains and a family OPA = (Nop)op∈OP of operations Nop : As1 ×. . . Asn → As
for op ∈ OPs1...sn,s if op ∈ OP ,s, Nop congruent to an element of As.
Definition 7. An assignment of Σ-variables X to a Σ-algebra A is a mapping
ass : X → A,with ass(x) ∈ Asiff x ∈ Xs. ass is canonically extended to ass :
TOP (X) → A, inductively defined by
1. ass(x) ≡ ass(x) for x ∈ X;
2. ass(c) ≡ Nc for c ∈ OP ,s;
3. ass(op(t1, . . . , tn)) ≡ Nop(ass(t1)), . . . , ass(tn)) for op(t1, . . . , tn) ∈ TOP (X).
Definition 8. Let SPEC-algebra is SPEC = (Σ,E) in which all equations in E
are valid. Two terms t1 and t2 in TOP (X) are equivalent (t1 ≡E t2) iff for all
assignments ass : X → A, ass(t1) = ass(t2).</p>
        <p>Definition 9. Let B be a set. A multiset over B is a mapping msB: B → N. B
is the empty multiset with msB(x) = 0 for all x ∈ B. A multiset is finite iff
{∀b ∈ B | msB(b) 6= 0} is finite.</p>
        <p>Definition 10. Let M SB = {msB: B → N} be a set of multisets. The addition
function of multisets is denoted by + : M SB × M SB → M SB. Let ms1B, ms2B
and ms3B ∈ M SB. (ms1B + ms2B) = ms3B ⇐⇒ ∀b ∈ B, ms3B(b) =
ms1B(b) + ms2B(b).</p>
        <p>The subtraction function of multisets is denoted by − : M SB ×M SB → M SB.
Let ms1B, ms2B and ms3B ∈ M SB. (ms1B − ms2B) = ms3B ⇐⇒ ∀b ∈
B, ms1B(b) ≥ ms2B(b) ⇒ ∀b ∈ B, ms3B(b) = ms1B(b) − ms2B(b).
Definition 11. Let M SB = {msB: B → N} be a set of multisets. Let ms1B,
ms2B ∈ M SB . We say that ms1B is smaller than or equal to ms2B (denoted
by ms1B ≤ ms2B) iff
∀b ∈ B, ms1B(b) ≤ ms2B(b). Further, we say that ms1B 6= ms2B iff
∃b ∈ B, ms1B(b) 6= ms2B(b). Otherwise, ms1B = ms2B.</p>
        <p>Definition 12. A marked Algebraic Petri Net AP N =&lt; SP EC, P, T, F, asg,
cond, λ, m0 &gt; consist of
◦ an algebraic specification SPEC = ( Σ,E),
◦ P and T are finite and disjoint sets, called places and transitions, resp.,
◦ F ⊆ (P × T ) ∪ (T × P ), the elements of which are called arcs,
◦ a sort assignment asg : P → S,
◦ a function, cond : T → Pfin(Σ − equation), assigning to each transition a
finite set of equational conditions.</p>
        <p>◦ an arc inscription function λ assigning to every (p,t) or (t,p) in F a finite
multiset over TOP,asg(p),</p>
        <p>◦ an initial marking m0 assigning a finite multiset over TOP,asg(p) to every
place p.</p>
        <p>Definition 13. The preset of p ∈ P is •p = {t ∈ T |(t, p) ∈ F } and the postset
of p is p• = {t ∈ T |(p, t) ∈ F }. The pre and post sets of t ∈ T defined as: •t
= {p ∈ P |(p, t) ∈ F } and t• = {p ∈ P |(t, p) ∈ F }.</p>
      </sec>
      <sec id="sec-2-4">
        <title>Definition 14.</title>
        <p>over TOP,asg(p).</p>
        <p>A marking m of an APN assigns to every place p ∈ P a multiset
Definition 15. An occurrence mode is a ground substitution of cond(t), m(p),
λ(p, t) and λ(t, p) where p ∈ P, t ∈ T . Obviously, ground substitutions are the
syntactical representations of assignments.</p>
        <p>Definition 16. A transition t ∈ T of an APN is enabled in an occurrence mode
at a marking m iff for all p in P with (p,t) ∈ F, λ(p, t) ≤ m(p). If a transition
t is enabled in an occurrence mode at a marking m, then t may occur returning
the marking m0, where for all p ∈ P, m0(p) = m(p) − λ(p, t) + λ(t, p). We write
m[tim0 in this case.</p>
        <p>Definition 17. A firing sequence σ of a marked APN is maximal iff either σ is
of infinite length or 6 ∃t ∈ T : m0([σti), where |σ| ∈ (N ∪ {∞}).</p>
        <p>Definition 18. Let σ = t1, t2 . . . be an infinite firing sequence of APN with
mi[ti+1imi+1, ∀i, 0 ≤ i. σ permanently enables t ∈ T iff ∃i, 0 ≤ i : ∀j, i ≤ j :
mj [ti.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Unfolding and Slicing APNs</title>
      <p>
        One characteristic of APNs that makes them complex to model check is the use
of variables on arcs. Computing variable bindings at runtime is extremely costly.
AlPiNA (a symbolic model checker for Algebraic Petri nets) allows the user to
define partial algebraic unfolding and presumed bounds for infinite domains [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ],
using some aggressive strategies for reducing the size of large data domains.
Unfolding generates all possible firing sequences from the initial marking of the
APN, though maintaining a partial order of events based on the causal relation
induced by the net. Concurrency is preserved.
      </p>
      <p>The basic idea of the slicing algorithm is to start by identifying which places
in the unfolded APN model are directly concerned by a property. These places
constitute the slicing criterion. The algorithm will then take all the transitions
that create or consume tokens from the criterion places, plus all the places that
are pre-condition for those transitions. This step is iteratively repeated for the
latter places, until reaching a fixed point.</p>
      <p>
        We refine the slicing construction by distinguishing between reading and
non-reading transitions. The conception of reading and non-reading transitions
is some what similar notion introduced in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. The principle difference is that
we adapt the notion of reading and non-reading transitions in the context of
APNs. Informally, reading transitions are not supposed to change the marking
of a place. On the other hand non-reading transitions are supposed to change
the markings of a place. In our proposed slicing construction, we discard reading
transitions and include only non-reading transitions. Formally, we can define the
conception of reading and non-reading transitions such as:
Definition 19. Let N be an unfolded APN and t ∈ T be a transition. We call
t a reading-transition iff its firing does not change the marking of any place
p ∈ (•t ∪ t•) , i.e., iff ∀p ∈ (•t ∪ t•), λ(p, t) = λ(t, p). Conversely, we call t a
non-reading transition iff λ(p, t) 6= λ(t, p).
      </p>
      <p>Due to partial unfolding, there could be some domains that are not unfolded.
For some cases, we are still able to identify non-reading transitions even if
domains are not unfolded. If for example, we have a case where the multiplicities
or cardinalities of terms in λ(p, t), λ(t, p)are different then we can immediately
state λ(p, t) 6= λ(t, p). But for some cases, we don’t have such a clear indication
of the inequality between λ(p, t) and λ(t, p), for example, in the Fig.2, we see
that λ(p, t) = 1 + y and λ(t, p) = 2 + x (defined over naturals). Both terms has
the same multiplicity and cardinality, so we need to know for which values of
the variables it would be a non-reading transition. In general, the evaluation of
terms to check their equality for all the values is undecidable. For this
particular case, we would like to have a set of constraints from the user. Informally,
a constraints set denoted by CS, is a set of propositional formulas, predicate
formulas or any other logical formulas for certain specific values of variable
assignements, describing the conditions under which we can evaluate terms to be
equal or not. Consequently, constrains set CS will help to identify under which
cases the transitions can be treated as non-reading.</p>
      <p>A function eval : TOP,s(X) × TOP,s(X) × CS → Bool is used to evaluate the
equivalence of terms based on the constraint set. Let us take the same terms
shown over the arcs in Fig.2, term1 = 1 + y, term2 = 2 + x and a constraint set
CS = {∃y, x ∈ (0, . . . , 2)|y = x + 1} . It is important to note that we are not
unfolding the domain but evaluating the terms for some specific values provided
by user to identify reading and non-reading transitions. Of course, the user can
provide sparse values too. Let us evaluate the terms term1 and term2 based on
the constraints set CS provided. For all those values of x, y for which we get eval
function result true are considered to be reading transitions and rest of them are
non-reading transitions. It is also important to note that we include this step
during the unfolding. The resulting unfolded AP N will contain only non-reading
transitions for the unfolded domains as shown in Fig.3.</p>
      <p>The algorithm proposed in this article assumes that such an unfolding takes
place before the slicing. Since this is a step that is involved in the model
checking activity anyway, we do not consider this assumption to be adding to the
complexity of the algorithm. In this section, we will make an extremely simple
example of how the slicing algorithm works, starting from an APN, unfolding it
and slicing it.
0…10</p>
      <p>P
1+1 1+0 1+1 1+2 1+0 1+1 1+2 1+0 1+2 1+1
2+1
t1,1
2+0
t0,0
2+0
t0,1
2+0
t0,2
2+1
2+1</p>
      <p>2+1 2+2 2+2 2+2
t1,0
t1,1
t1,2
t2,0
t2,2
t2,1
Fig. 4 shows an APN model. All places and all variables over the arcs are of sort
naturals (defined in the algebraic specification of the model, and representing
the N set).</p>
      <p>
        Since the N domain is infinite (or anyway extremely large even in its finite
computer implementations), it is clear that it is impractical to unfold this net
by considering all possible bindings of the variables to all possible values in N.
However, given the initial marking of the APN and its structure it is easy to
see that none of the terms on the arcs (and none of the tokens in the places)
will ever assume any natural value above 3. For this reason, following [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], we
can set a presumed bound of 3 for the naturals data type, greatly reducing the
size of the data domain. By assuming this bound, the unfolding technique in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
[
        <xref ref-type="bibr" rid="ref1 ref2">1,2</xref>
        ]
x
t1
x
[]
      </p>
      <p>
        A
B x
y
z
proceeds in three steps. First, the data domains of the variables are unfolded up
to the presumed bound. Second, variable bindings are computed, and only that
satisfy the transition guards are kept. Third, the computed bindings are used
to instantiate a binding-specific version of the transition. The resulting unfolded
APN for this APN model is shown in Fig. 5. The transitions arcs are indexed
with the incoming and outgoing values of tokens. A complete explanation of
the unfolding algorithm, and in particular the existence of the tokens 4 and 5
between transition t23, t42, t43 and place C, F is rather complex and out of the
scope of this article. The interested reader can find details about the partial
unfolding in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
3.2
      </p>
      <sec id="sec-3-1">
        <title>The slicing algorithm</title>
        <p>The slicing algorithm starts with an unfolded APN and a slicing criterion Q ⊆ P .</p>
        <p>Let Q ⊆ P a non empty set called slicing criterion. We can build a slice for
an unfolded APN based on Q, using following algorithm:</p>
        <p>end
Algorithm 1: APN slicing algorithm</p>
        <p>APNSlicing(hSP EC, P, T, F, asg, cond, λ, m0i, Q){
T 0 = {t ∈ T | ∃p ∈ Q : t ∈ (•p ∪ p•) : λ(p, t) 6= λ(t, p)};
P 0 = Q ∪ {•T 0} ;
Pdone = ∅ ;
while ((∃p ∈ (P 0 \ Pdone)) do
while (∃t ∈ (•p ∪ p•) \ T 0) : λ(p, t) 6= λ(t, p)) do</p>
        <p>P 0 = P 0 ∪ {•t};</p>
        <p>T 0 = T 0 ∪ {t};
end</p>
        <p>Pdone = Pdone ∪ {p};
return hSP EC, P 0, T 0, F|P0,T0 , asg|P0 , cond|T0 , λ|P0,T0 , m0|P0 i;
}</p>
        <p>Initially, T 0 (representing transitions set of the slice) contains set of all pre
and post transitions of the given criterion place. Only non-reading transitions
are added to T 0 set. And P0(representing places set of the slice) contains all
preset places of transitions in T 0. The algorithm then iteratively adds other
preset transitions together with their preset places in T 0 and P 0. Remark that
the APNSlicing algorithm has linear time complexity.</p>
        <p>Considering the APN-Model shown in fig. 4, let us now take an example
property and apply our proposed algorithm on it. Informally, we can define the
property:
“The values of tokens inside place D are always smaller than 5”.</p>
        <p>
          Formally, we can specify the property in LTL as G(∀tokens ∈ D|tokens &lt; 5).
For this property, the slicing criterion Q = {D}, as D is the only place concerned
by the property. Therefore, the application of APNSlicing(UnfoldedAPN, D)
returns SlicedUnfoldedAPN (shown in Fig. 6), which is smaller than the original
UnfoldedAPN shown in Fig. 5).
[
          <xref ref-type="bibr" rid="ref1 ref2">1,2</xref>
          ]
        </p>
        <p>A 1 t11
23 t12
t13</p>
        <p>Transitions t31,1, t31,2, t31,3, t31,3, t32,1, t32,2, t32,3, t33,1, t33,2, t33,3, t51,1, t51,2,
t51,3, t52,1, t52,2, t52,3, t53,1, t53,2, t53,3, and places C, E, F, G has been sliced away.
The proposed algorithm determines a slice for any given criterion Q ⊆ P and
always terminates. It is important to note that the reduction of net size depends
on the structure of the net and on the size and position of the slicing criterion
within the net.</p>
        <p>
          [
          <xref ref-type="bibr" rid="ref1 ref2">1,2</xref>
          ]
To allow the verification by slice, we have to make restrictions on the formulas
and on admissible firing sequences in terms of fairness assumptions. The original
Algebraic Petri net has more behaviors than the sliced APN, as we intentionally
do not capture all the behaviors.
Definition 20. Let A be the set of atomic propositions. Let ϕ, ϕ1, ϕ2 be LTL
formulas. The function scope associates with an LTL formula ϕ the set of atomic
propositions used in ϕ i.e. scope : ϕ → PA.
        </p>
        <p>scope(a) = {a} for a ∈ A;
scope(⊗ϕ) = scope(ϕ) with ⊗ ∈ {¬, X};
scope(ϕ1 ⊗ ϕ2) = scope(ϕ1) ∪ scope(ϕ2) with ⊗ ∈ {∧, U }.</p>
        <p>Definition 21. Let N be a marked APN. Let N 0 be its sliced net for a slicing
criterion Q ⊆ P . Let σ = t1t2t3 . . .be a firing sequence of N and m i the markings
with mi[ti+1imi+1, ∀i, 0 ≤ i &lt; |σ|. σ is slice-fair w.r.t N 0 iff either σ is finite
and m|σ| does not enable any transition t ∈ T 0;</p>
        <p>or σ is infinite and if it permanently enables some t ∈ T 0, it then fires
infinitely often some transition of T 0 (which may or may not be the same as t).
Slice-fairness is a very weak fairness notion. Weak fairness determines that every
transition t ∈ T of a system, if permanently enabled, has to be fired infinitely
often, slice-fairness concerns only the transitions of the slice, not of the entire
system net and if a transition t ∈ T of the slice is permanently enabled, some
transitions of the slice are required to fire infinitely often but not necessarily t.
Definition 22. Let N be a marked APN and ϕ an LTL formula. N |= ϕ
slicefairly iff every slice-fair (not necessarily maximal) firing sequence of σ |= ϕ.
Definition 23. Let N and N 0 be two marked Algebraic Petri nets with T 0 ⊆ T
and P 0 ⊆ P . We define the function: slice (N,N0) ∈ [(T ∗ ∪ T w) → (T 0∗ ∪ T 0w)] ∪
[N|P | → N|P 0|] such that a finite or infinite sequence of transitions σ is mapped
onto the transition sequence σ0 with σ0 being derived from σ by omitting every
transition t ∈ T \ T 0. A marking m of N is projected onto the marking m0 of
N 0 with m0 = m |p0 .</p>
        <p>The function slice is used to project markings and firing sequences of a net N
onto the markings and firing sequences of its slices.</p>
        <p>Proposition 1. Let N be a marked APN. Let N 0 be its sliced net for a slicing
criterion Q ⊆ P . Let σ be a weakly fair firing sequence of N. σ is slice fair with
respect to N 0.</p>
        <p>Proof. Let us assume, σ is not slice-fair. In case σ is finite this means that
m|σ|[ti for a transition t ∈ T 0. In case σ is infinite, there is permanently enabled
transition t ∈ T 0 but all transitions of T 0 are fired finitely often including t. So
both cases contradict the assumption that σ is weakly fair.</p>
        <p>Lemma 1. Let N be a marked APN and let N 0 be its sliced net for a slicing
criterion Q ⊆ P . The coefficients cij of the incidence matrix equal to zero for
all places pi ∈ P 0 and transitions tj ∈ T \ T 0.</p>
        <p>Proof. Let N 0 be its sliced net for a slicing criterion Q ⊆ P . A transition t ∈ T
is also an element of T 0 ⊆ T , if it is a non-reading transition of a place p ∈ P 0.
Thus a transition t ∈ T \ T 0 either is not connected to a place p ∈ P 0 or it is a
reading transition.
Lemma 2. Let N be a marked APN and let N 0 be its sliced net for a slicing
criterion Q ⊆ P . Let m be a marking of N and m0 be a marking of N 0 with
m0 = m |p0 . m[ti ⇔ m0[ti, ∀t ∈ T 0.</p>
        <p>Proof. Let N 0 be its sliced net for a slicing criterion Q ⊆ P . Since a transition t ∈
T 0 has the same preset places in N and N 0 by the slicing algorithm AP N Slicing,
m0 = m |p0 implies m[ti ⇐⇒ m0[ti.</p>
        <p>Every firing sequence σ of N projected onto the transitions of T 0 is also a firing
sequence of slice net N 0. The resulting markings m and m0 assign the same
number of tokens to places p0 ⊆ P .
mll+1|P0 = m0l |P 0 .</p>
        <p>Proposition 2. Let N be a marked APN and let N 0 be its sliced net for a slicing
criterion Q ⊆ P . Let σ be a firing sequence of N and let m be a marking of N .
m0[σim ⇒ m0 |p0 [slice(σ)im |p0 .</p>
        <p>Proof. We prove this Proposition by induction over the length l of σ. Let N be
a marked APN, σ be a firing sequence of N .</p>
        <p>l = 0: In this case slice(σ) equals . Thus the initial marking of N and N 0
is generated by firing . By defintion 23 and the slicing algorithm AP N Slicing,
m00 = m0 |p0</p>
        <p>l → l + 1 : Let σ be a firing sequence of length l and ml be a
marking of N with m0[σiml. Let tl+1 be a transition in T and ml+1 a marking
of N such that ml[tl+1iml+1. By induction hypothesis, m00[slice(σ)im0k with
ml |p0 = m0k. If tl+1 is an element of T 0, it follows by Lemma 2, that m0k
enables tl+1, since ml enables tl+1. The resulting marking m0k+1 is determined by
m0k+1(Pi0) = m0k(Pi0) + ci l+1, ∀pi ∈ P 0 and ml+1 is determined by ml+1(i) =
ml(i) + ci l+1, ∀pi ∈ P 0.</p>
        <p>Since ml|P0 = m0k, it thus follows that mll+1|P0 = m0k+1. If tl+1 is an element
of t ∈ T \ T 0, then it must be a reading transition for all p ∈ P ; slice(σ) =
slice(σtl+1) and thus m00[slice(σtl+1)im0k a transition t ∈ T \ T 0 can not change
the marking of on any place p ∈ P 0. By Lemma 1 and the resultant markings,
A firing sequence σ0 of the slice net N 0 is also a firing sequence of N . The
resulting markings of σ0 on N and N 0, respectively assigns the same markings
to places p ∈ P 0.</p>
        <p>Proposition 3. Let N be a marked APN and let N 0 be its sliced net for a slicing
criterion Q ⊆ P . Let σ0 be a firing sequence of N 0 and let m0 be a marking of
N 0.</p>
        <p>m00[σ0im0 ⇒ ∃m ∈ N|P | : m0 = ml|P0 ∧ m0[σ0im.</p>
        <p>Proof. We prove this Proposition by induction over the length l of σ0.</p>
        <p>l = 0: The empty firing sequence generates the marking m0 on N and the
marking m00, which is defined as m0|P0 , on N 0, by definition 23.</p>
        <p>l → l + 1: Let σ0 = t1 . . . tl+1 be firing sequence of N 0 with length l + 1. Let
m0l and m0l+1 be markings of N 0 such that m00[t1 . . . tlim0l[tl+1im0l+1. Let ml be
the marking of N with m0[t1 . . . tliml and ml|P0 = m0l, which exists according to
the induction hypothesis. Lemma 2, ml enables tl+1. The marking ml+1 satisfies
ml+1(Pi) = ml(Pi) + ci l+1, ∀pi ∈ P 0 and m0l+1 satisfies m0l+1(Pi) = m0l(Pi) +
ci l+1, ∀si ∈ P 0. With ml|P0 = m0l, it follows that (ml+1 |P 0 ) is equal to m0l+1.
Proposition 4. Let N be a marked APN and let φ be an LT Lx formula such
that scope(φ) ⊆ P . Let N 0 be its sliced net for a slicing criterion Q ⊆ P where
Q = scope(φ). Let σ be a firing sequence of N . Let us denote the sequence of
markings by M(σ). Then, M(σ) |= φ ⇔ M(slice(σ)) |= φ.</p>
        <p>Proof. We prove this Proposition by induction on the structure of φ. Let σ =
t1t2 . . . and slice(σ) be σ0 = t01t02 . . .. Let M(σ) = m0m1 . . . and M(σ0) =
m00m01 . . ..</p>
        <p>φ = true: In this case nothing needs to be shown. φ = ¬ψ, φ = ψ1 ∧ ψ2:
Since the satisfiability of φ depends on the initial marking of scope(φ) only and
scope(φ) ⊆ P 0 ⊆ P , both directions hold.</p>
        <p>φ = ψ1U ψ2: We assume that M(σ0) |= ψ1U ψ2. We can divide up σ0 such
that σ0 = σ10σ20 with m0|σ10|m0|σ10|+1 . . . |= ψ2 and ∀i, 0 ≤ i &lt; |σ10| : m0im0i+1 . . . |=
ψ1. There are transition sequences σ1 and σ2 such that σ = σ1σ2, slice(σ1) =
σ10, slice(σ2) = σ20 and σ1 does not end with a transition t ∈ T \ T 0.</p>
        <p>By proposition 2, it follows that m0|σ10| = (m|σ1| |P 0 ). Since m0|σ10|m0|σ10|+1 . . . |=
ψ2, m|σ1|m|σ1|+1 . . . |= ψ2 by induction hypothesis. Let % be a prefix of σ1
such that |%| &lt; |σ1|. Let %0 be slice(%). The firing sequence % truncates at
least one transition t ∈ T 0, consequently |%0| &lt; |σ10|. Since m0|%01|m0|%01|+1 . . . |=
ψ1, m % m|%|+1 . . . |= ψ1 by the induction hypothesis. Analogously, it can be
| |
shown that M(σ) |= ψ1U ψ2 implies M(σ0) |= ψ1U ψ2.</p>
        <p>Proposition 5. Let N be a marked APN and let N 0 be its sliced net for a slicing
criterion Q ⊆ P . Let σ0 be a maximal firing sequence of N 0. σ0 is a slice-fair
firing sequence of N .</p>
        <p>Proof. Let σ0 = t1t2 . . .. Let m0i be the marking of N 0, such that m0i[ti+1im0i+1, ∀i,
0 ≤ i &lt; |σ0|. By Proposition 3 σ0 is a firing sequence of N . Let mi be the marking
of N , such that mi[ti+1imi+1, ∀i, 0 ≤ i &lt; |σ0|. In case σ0 is finite, m0|σ0| does not
enable any transitions t0 ∈ T 0.</p>
        <p>By Lemma 2, m|σ0| does not enable any transition T 0 ∈ T 0 , If σ0 is infinite
it obviously fires infinitely often a transition t0 ∈ T 0 and thus is slice-fair.
Proposition 6. Let N be a marked APN and let N 0 be its sliced net for a slicing
criterion Q ⊆ P . Slice(σ) is maximal firing sequence of N 0.</p>
        <p>Proof. Let σ = t1t2 . . . with mi[ti+1imi+1, ∀i, 0 ≤ i &lt; |σ|. By Proposition 2,
slice(σ) is a firing sequence of N 0. Let slice(σ) be σ0 = t01t02 . . . with m0i[t0i+1im0i+1,
∀i, 0 ≤ i &lt; |σ|. Let us assume σ0 is not a maximal firing sequence of N 0. Thus
σ0 is finite and there is a transition t0 ∈ T 0 with m0|σ0|[t0i. Let σ1 be the smallest
prefix of σ such that slice(σ1) equals σ0.</p>
        <p>By Proposition 2 (m|σ1| |P 0 = m0|σ0|. By Lemma 2, and the state equation it
follows, that (m|σ1| |P 0 = m0|σ0|+1 = . . .. So t0 stays enabled for all markings mj
with |σ1| ≤ j ≤ |σ| but is fired finitely many times only. This is a contradiction
to the assumption that σ is slice-fair.</p>
        <p>Theorem 1. Let N be a marked APN and let φ be an LTL formula such that
scope(φ) ⊆ P . Let N 0 be its sliced net for a slicing criterion Q ⊆ P . Let Ψ be an
LT L−X formula with scope(Ψ ) ⊆ P .</p>
        <p>N |= φ slice-fairly ⇒ N 0 |= φ, for an LTL formula φ.</p>
        <p>N |= Ψ slice-fairly ⇐ N 0 |= Ψ , for an LT L−X formula Ψ .</p>
        <p>Proof. We first show “ N |= φ slice-fairly ⇒ N 0 |= φ ”. Let us assume that
N |= φ slice-fairly holds. Let σ0 be a maximal firing sequence of N 0. Since σ0 is a
slice-fair firing sequence of N by Proposition 5 M(σ0) |= φ. Let us now assume
N 0 |= Ψ . Let σ be a slice-fair firing sequence of N . By Proposition 6, slice(σ) is
maximal firing sequence of N 0 and thus satisfies Ψ . By Proposition 4, it follows
that σ satisfies Ψ.</p>
        <p>Verification is possible under interleaving semantics if we assume slice-fairness.
A firing sequence σ is fair w.r.t T 0 , if σ is either maximal and if σ eventually
permanently enables a t0 ∈ T 0, a transition t ∈ T 0 will be fired infinitely often,
t may not equal t0. Unfolded APN |= ϕ fairly w.r.t. T 0 holds if all fair firings
sequences of N, more precisely, their corresponding traces satisfy ϕ.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>
        Slicing is a technique used to reduce a model syntactically. The reduced model
contains only those parts that may affect the property the model is analyzed for.
Slicing Petri nets is gaining much attention in the recent years [
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref13 ref3">3, 10–13</xref>
        ]. Mark
Weiser introduced the slicing term in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], and presented slicing as a
formalization of an abstraction technique that experienced programmers (unconsciously)
use during debugging to minimize the program. The first algorithm about Petri
net slicing was presented by chang et al [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. They proposed an algorithm on
Petri nets testing that slices out all sets of paths, called concurrency sets, such
that all paths within the same set should be executed concurrently. Lee et al.
proposed the Petri nets slice approach in order to partition huge place
transition net models into manageable modules, so that the partitioned model can
be analyzed by compositional reachability analysis technique [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Llorens et al.
introduced two different techniques for dynamic slicing of Petri nets [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. A slice
is said to be static if the input of the program is unknown (this is the case of
Weiser’s approach). On the other hand, it is said to be dynamic if a particular
input for the program is provided, i.e., a particular computation is considered.
In the first technique of Llorens et al. the Petri net and an initial marking is
taken into account, but produces a slice w.r.t. any possibly firing sequence. The
second approach further reduces the computed slice by fixing a particular firing
sequence.
      </p>
      <p>
        Astrid Rakow developed two flavors of Petri net slicing, CT L∗−X slicing and
Safety slicing in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. The key idea behind the construction is to distinguish
between reading and non-reading transitions. A reading transition t ∈ T can
not change the token count of place p ∈ P while other transitions are
nonreading transitions. For CT L∗−X slicing, a subnet is built iteratively by taking
all non-reading transitions of a place P together with their input places,
starting with given criterion place. And for the Safety slicing a subnet is built by
taking only transitions that increase token count on places in P and their input
places. CT L∗−X slicing algorithm is fairly conservative. By assuming a very weak
fairness assumption on Petri net it approximates the temporal behavior quite
accurately by preserving all CT L∗−X properties and for safety slicing focus is on
the preservation of stutter-invariant linear safety properties only.
      </p>
      <p>
        We notice that all the constructions are limited to low-level Petri nets. The
main difference between High-level and low-level Petri net is that in high-level
Petri nets tokens are no longer black dots, but complex structured data. Whereas
in case of low-level Petri nets, all (black) tokens correspond to the same data
object. The idea of reading and non-reading transitions introduced in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] deals
only with the token count of places in low-level Petri nets. In Algebraic Petri
nets there are properties that may concern to the values of tokens. The main
difference between the existing slicing constructions such as, CT L∗−X , Safety
slicing and our is that in CT L∗−X , Safety slicing only transitions are included
that change the token count whereas in APNSlicing, we include transitions that
change the token values together with the transitions that change the token
count. A comparison between APNSlicing, CT L∗−X and safety slicing algorithms
is shown in Fig. 7.
      </p>
      <p>Slice CTL*-X</p>
      <sec id="sec-4-1">
        <title>Safety Slicing</title>
      </sec>
      <sec id="sec-4-2">
        <title>APNSlicing</title>
        <p>Preserving all CTL*-X
properties assuming a weak Properties are about token
fairness assumption count only
Designed for Low-level</p>
        <p>Petri net
Preserving safety properties Properties are about token
only count only</p>
        <p>Designed for Low-level</p>
        <p>Petri net</p>
        <p>Preserving all LTL-X
properties assuming a weak Properties are about token
fairness assumption count and token values
Designed for High-level</p>
        <p>Petri net (APNs)</p>
        <p>Fig. 7. A comparison between APNSlicing, CT L∗−X and Safety slicing
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Case Study</title>
      <p>We took a small case study from the domain of crisis management systems (car
crash management system) for the experimental investigation of the proposed
approach. In a car crash management system (CCMS); reports on a car crash are
received and validated, and a Superobserver (i.e., an emergency response team)
is assigned to manage each crash.</p>
      <p>Recording Crisis Data
[system($cd,false)]</p>
      <p>
        The APN Model can be observed in Fig. 8, it represents the semantics of the
operation of a car crash management system. This behavioral model contains
labeled places and transitions. There are two tokens of type Fire and Blockage in
place Recording Crisis Data. These tokens are used to mention which type of data
has been recorded. The input arc of transition sendcrisis takes the cd variable
as an input from the place Recording Crisis Data and the output arc contains
term system(cd,false) of sort sys. Initially, every recoded crisis is set to false. The
sendcrisis transition passes recorded crisis to system for further operations. The
output arc of validatecrisis contains system(getcrisistype(sy),true) term which
sends validated crisis to system. The transition assigncrisis has two guards, first
one is isvalid(sy)=true that enables to block invalid crisis reporting to be
executed for the mission and the second one is isvalid(sob,getcrisestype(sy))=true
which is used to block invalid Superobserver (a skilled person for handling crisis
situation) to execute the crisis mission. The Superobserver YK will be assigned
to handle Fire situation only. The transition assigncrisis contains two input arcs
with sob and sy variables and the output arc contains term assigncrisis(sob,sy)
of sort crisis. The output arc of transition sendreport contains term rp(ec). This
enables to send a report about the executed crisis mission. We refer the interested
reader to [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] for the algebraic specification of car crash management system.
      </p>
      <p>An important safety threat, which we will take into an account in this case
study is that the invalid crisis reporting can be hazardous. The invalid crisis
reporting is the situation that results from a wrongly reported crisis. The
exsendcrisisFire,(Fire,false)</p>
      <p>Fire
Recording Crisis Data</p>
      <p>Fire,Blockage
ecution of crisis mission based on the wrong reporting can waste both human
and physical resources. In principle, it is essential to validate the crisis that it
is reported correctly. Another, important threat could be to see the number of
crisis that can be sent to place System should not exceed from a certain limit.
Informally, we can define the properties:
ϕ1 : All the crisis inside place System are validated eventually.
ϕ2 : Place System never contains more than two crisis.</p>
      <p>Formally we can specify the properties as, let Crises be a set representing
recorded crisis in car crash management system. Let isvalid : Crises → BOOL,
is a function used to validate the recorded crisis.</p>
      <p>ϕ1 = F(∀crisis ∈ Crises|isvalid(crisis) = true)
ϕ2 = G(|Crises| ≤ 2)</p>
      <p>In contrast to generate the complete state space for the verification of ϕ1
and ϕ2, we alleviate the state space by applying our proposed algorithm. For
both ϕ1, ϕ2 LTL formulas, scope(ϕ1 ∧ ϕ2) ⊆ Q. The criterion place(s) for both
properties is System.</p>
      <p>The unfolded car crash APN model is shown in Fig. 9. The slicing algorithm
APNSlicing(Unfolded car crash APN model,System) takes the unfolded car crash
APN model and System (an input criterion place) as an input and iteratively
builds a sliced net. The sliced unfolded car crash APN model is shown in Fig. 10,
places named ExecutedCrisis and ExecutedCrisisreporting together with
transition named sendreport are sliced away. From the initial marking of Car Crash
APN Model 36 states are reachable, whereas sliced car crash APN model has
27 reachable states. The resultant sub net is sufficient to verify both properties
(see proof in Theorem 1).
6</p>
    </sec>
    <sec id="sec-6">
      <title>Evaluation</title>
      <p>In this section, we evaluate our slicing algorithm with the existing benchmark
case studies. We measure the effect of slicing in terms of savings of the reachable
sendcrisisFire,(Fire,false)</p>
      <p>Fire
state space, as the size of the state space usually has a strong impact on time
and space needed for model checking. Instead of presenting case studies where
our methods work best, it is equally interesting to see where it gives an average
or worst case results, so that we will present a comparative evaluation on the
benchmark case studies.</p>
      <p>To evaluate our approach, we made the follwing assumptions:
– Evaluation procedure is independent of the temporal properties. In general,
it is not feasible to determine which places correspond to the interesting
properties. Therefore, we generated slices for each place in the given APN
model (later, we take some specific temporal properties about the APN
models under observation) .
–</p>
      <p>
        We abandoned the initially marked places (we follow [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] to assume that
there are not interesting properties concerning to those places).
      </p>
      <p>Let us study the results summarized in the table.1, the first column shows
different APNs models under observation. Based on the initial markings, total
number of states is shown in the second column. Best reduction and average
reduction (shown in the third and fourth column) refers to the biggest and an
average achievable reduction in the state space among all possible properties.
In the fifth column total number of places is given, for the properties related
to these places, our slicing does not reduce the number of states. Finally, the
structure of APN models under observation is given. Results clearly indicate the
significance of slicing; the proposed APNSlicing algorithm can alleviate the state
space even for some strongly connected nets.</p>
      <p>To show that the state space could be reduced for the practically relevant
properties. Let us take some specific examples of the temporal properties from
the APN models shown in table.2 and compare the reduction in terms of states by
applying the APNSlicing algorithm. For the Daily Routine of two Employees and
Boss APN model, for an example, we are interested to verify that: “Every time
the boss does not schedule a meeting, he will be at home eventually” . Formally,
we can specify the property:</p>
      <p>ϕ1 = G(N M ⇒ FB1), where “NM" (resp. B1) means “place NM (resp. B1)
is not empty".</p>
      <p>For a Producer Consumer APN model an interesting property could be to
verify that: “Buffer place is never empty” . Formally, we can specify the property:
ϕ2 = G(|Buf f er| &gt; 0).</p>
      <p>And for a Complaint Handling APN model, we are interested to verify: “All
the registered complaints are collected eventually” . Formally, we can specify the
property:</p>
      <p>ϕ3 = G(RecComp ⇒ FCompReg), where “RecComp" (resp. CompReg)
means “place RecComp (resp. CompReg) is not empty".</p>
      <p>Let us study the results summarized in the table shown in table. 2, the first
column represents the system under observation whereas in the second column
total number of states are given based on the initially marked places. The third
column refers the property that we are looking for the verification. In the fourth
column, places are given that are considered as criterion places, and for those
places slices are generated. The fifth column represents the number of states that
are reduced (in percentage) after applying APNSlicing algorithm.</p>
      <p>We can draw the following conclusions from the evaluation results such as:
– The choice of the place can have an important influence on the reduction
effects (As the basic idea of slicing is to start from the criterion place and
iteratively include all the non-reading transitions together with their input
places. The less non-reading transitions attached to the criterion place, the
more reduction is possible).
– Reduction can vary with respect to the net structure and markings of the
places (The slicing refers to the part of a net that concerns to the property,
remaining part may have more places and transitions that increase the
overall number of states. If slicing removes parts of the net that expose highly
concurrent behavior, the savings may be huge and if the slicing removes dead
parts of the net, in which transitions are never enabled then there is no effect
on the state space).
– For certain strongly connected nets slicing may produce a reduced number
of states (For all the strongly connected nets that contain reading transitions
slicing can produce noteworthy reductions).
– Slicing produces best results for not strongly connected nets (By definition
work-flow nets are not strongly connected and since they model work flows,
slicing can effectively reduce such nets).
7</p>
    </sec>
    <sec id="sec-7">
      <title>Conclusion and Future Work</title>
      <p>In this work, we developed an Algebraic Petri net reduction approach to alleviate
the state space explosion problem for model checking. The proposed work is
based on slicing. The presented slicing algorithm (APNSlicing ) for Algebraic
Petri net guarantees that by construction the state space of sliced net is at
most as big as the original net. We showed that the slice allow verification and
falsification if Algebraic Petri net is slice fair. Our results show that slicing can
help to alleviate the state space explosion problem of Algebraic Petri net model
checking.</p>
      <p>
        The future work has twofold objectives; first to implement the proposed
slicing construction in AlPiNA (Algebraic Petri net analyzer) a symbolic model
checker [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. As discussed in the section 3.1, we are using the same unfolding
approach for APNs as AlPiNA. Obviously, this will reduce the effort in terms
of implementation. Secondly, we aim to utilize the sliced net when verifying the
evolutions of the net. Slicing can serve as a base step to identify those evolutions
that do not require re-verification.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D.</given-names>
            <surname>Buchs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Hostettler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Marechal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Linard</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Risoldi</surname>
          </string-name>
          .
          <article-title>Alpina: A symbolic model checker</article-title>
          . Springer Berlin Heidelberg, pages
          <fpage>287</fpage>
          -
          <lpage>296</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Burch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Clarke</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. L. McMillan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Dill</surname>
            , and
            <given-names>L. J.</given-names>
          </string-name>
          <string-name>
            <surname>Hwang</surname>
          </string-name>
          .
          <article-title>Symbolic model checking: 1020 states and beyond</article-title>
          .
          <source>In Logic in Computer Science</source>
          ,
          <year>1990</year>
          . LICS '
          <volume>90</volume>
          ,
          <string-name>
            <surname>Proceedings</surname>
            <given-names>.</given-names>
          </string-name>
          , Fifth Annual IEEE Symposium on e, pages
          <fpage>428</fpage>
          -
          <lpage>439</lpage>
          ,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>J.</given-names>
            <surname>Chang</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. J.</given-names>
            <surname>Richardson</surname>
          </string-name>
          .
          <article-title>Static and dynamic specification slicing</article-title>
          .
          <source>In In Proceedings of the Fourth Irvine Software Symposium</source>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>E. M.</given-names>
            <surname>Clarke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. A.</given-names>
            <surname>Emerson</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. P.</given-names>
            <surname>Sistla</surname>
          </string-name>
          .
          <article-title>Automatic verification of finitestate concurrent systems using temporal logic specifications</article-title>
          .
          <source>ACM Transactions on Programming Languages and Systems</source>
          ,
          <volume>8</volume>
          :
          <fpage>244</fpage>
          -
          <lpage>263</lpage>
          ,
          <year>1986</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>S.</given-names>
            <surname>Hostettler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Marechal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Linard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Risoldi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Buchs</surname>
          </string-name>
          .
          <article-title>High-level petri net model checking with alpina</article-title>
          .
          <source>Fundamenta Informaticae</source>
          ,
          <volume>113</volume>
          (
          <issue>3-4</issue>
          ):
          <fpage>229</fpage>
          -
          <lpage>264</lpage>
          , Aug.
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>K.</given-names>
            <surname>Jensen</surname>
          </string-name>
          .
          <article-title>Coloured petri nets</article-title>
          . In W. Brauer,
          <string-name>
            <given-names>W.</given-names>
            <surname>Reisig</surname>
          </string-name>
          , and G. Rozenberg, editors,
          <source>Petri Nets: Central Models and Their Properties</source>
          , volume
          <volume>254</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>248</fpage>
          -
          <lpage>299</lpage>
          . Springer Berlin Heidelberg,
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Y. I.</given-names>
            <surname>Khan</surname>
          </string-name>
          .
          <article-title>A formal approach for engineering resilient car crash management system</article-title>
          .
          <source>Technical Report TR-LASSY-12-05</source>
          , University of Luxembourg,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>L.</given-names>
            <surname>Lamport</surname>
          </string-name>
          .
          <article-title>What good is temporal logic</article-title>
          .
          <source>Information processing</source>
          ,
          <volume>83</volume>
          :
          <fpage>657</fpage>
          -
          <lpage>668</lpage>
          ,
          <year>1983</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>W. J.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. N.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. D.</given-names>
            <surname>Cha</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y. R.</given-names>
            <surname>Kwon</surname>
          </string-name>
          .
          <article-title>A slicing-based approach to enhance petri net reachability analysis</article-title>
          .
          <source>Journal of Research Practices and Information Technology</source>
          ,
          <volume>32</volume>
          :
          <fpage>131</fpage>
          -
          <lpage>143</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>M. Llorens</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Oliver</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Tamarit</surname>
            , and
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Vidal</surname>
          </string-name>
          .
          <article-title>Dynamic slicing techniques for petri nets</article-title>
          .
          <source>Electron. Notes Theor. Comput. Sci.</source>
          ,
          <volume>223</volume>
          :
          <fpage>153</fpage>
          -
          <lpage>165</lpage>
          , Dec.
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>A.</given-names>
            <surname>Rakow</surname>
          </string-name>
          .
          <article-title>Slicing petri nets with an application to workflow verification</article-title>
          .
          <source>In Proceedings of the 34th conference on Current trends in theory and practice of computer science</source>
          ,
          <source>SOFSEM'08</source>
          , pages
          <fpage>4364</fpage>
          -
          <lpage>47</lpage>
          , Berlin, Heidelberg,
          <year>2008</year>
          . SpringerVerlag.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>A.</given-names>
            <surname>Rakow</surname>
          </string-name>
          .
          <article-title>Slicing and Reduction Techniques for Model Checking Petri Nets</article-title>
          .
          <source>PhD thesis</source>
          , University of Oldenburg,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>A.</given-names>
            <surname>Rakow</surname>
          </string-name>
          .
          <article-title>Safety slicing petri nets</article-title>
          . In S. Haddad and L. Pomello, editors,
          <source>Application and Theory of Petri Nets</source>
          , volume
          <volume>7347</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>268</fpage>
          -
          <lpage>287</lpage>
          . Springer Berlin Heidelberg,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>W.</given-names>
            <surname>Reisig</surname>
          </string-name>
          .
          <article-title>Petri nets and algebraic specifications</article-title>
          .
          <source>Theor. Comput. Sci.</source>
          ,
          <volume>80</volume>
          (
          <issue>1</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>34</lpage>
          ,
          <year>1991</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>K.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          .
          <article-title>T-invariants of algebraic petri nets</article-title>
          .
          <source>Informatik- Bericht</source>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>A.</given-names>
            <surname>Valmari</surname>
          </string-name>
          .
          <article-title>The state explosion problem</article-title>
          .
          <source>In Lectures on Petri Nets I: Basic Models, Advances in Petri Nets, the volumes are based on the Advanced Course on Petri Nets</source>
          , pages
          <fpage>429</fpage>
          -
          <lpage>528</lpage>
          , London, UK, UK,
          <year>1998</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>M.</given-names>
            <surname>Weiser</surname>
          </string-name>
          .
          <article-title>Program slicing</article-title>
          .
          <source>In Proceedings of the 5th international conference on Software engineering, ICSE '81</source>
          , pages
          <fpage>439</fpage>
          -
          <lpage>449</lpage>
          , Piscataway, NJ, USA,
          <year>1981</year>
          . IEEE Press.
          <article-title>This work has been supported by the National Research Fund, Luxembourg, Project MOVERE, ref</article-title>
          .C09/IS/02.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>