<!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>Slicing High-level Petri Nets</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>Nicolas Guelfi</string-name>
          <email>nicolas.guelfi@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>201</fpage>
      <lpage>220</lpage>
      <abstract>
        <p>High-level Petri nets (evolutions of low-level Petri nets) are well suitable formalisms to represent complex data, which influence the behavior of distributed, concurrent systems. However, usual verification techniques such as model checking and testing remain an open challenge for both (i.e., low-level and high-level Petri nets) because of the state space explosion problem and test case selection. The contribution of this paper is to propose a technique to improve the model checking and testing of systems modeled using Algebraic Petri nets (a variant of high-level petri nets). To achieve the objective, we propose different slicing algorithms for Algebraic Petri nets. We argue that our slicing algorithms significantly improve the state of the art related to slicing APNs and can also be applied to low-level Petri nets with slight modifications. We exemplify our proposed algorithms through a case study of a car crash management system.</p>
      </abstract>
      <kwd-group>
        <kwd>High-level Petri nets</kwd>
        <kwd>Model checking</kwd>
        <kwd>Testing</kwd>
        <kwd>Slicing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Petri nets are well known low-level formalism for modeling and verifying
distributed, concurrent systems. The major drawback of low-level Petri nets
formalism is their inability to represent complex data, which influences the
behavior of a system. Various evolutions of low-level Petri nets (PNs) have been
created to raise the level of abstraction of PNs. Among others, high-level Petri
nets (HLPNs) raise the level of abstraction of PNs by using complex structured
data [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. However, HLPN can be unfolded into a behaviourally equivalent PNs.
      </p>
      <p>
        For the analysis of concurrent and distributed systems (including which are
modeled using PNs or HLPNs) model checking is a common approach, consisting
in verifying a property against all possible states of a system. However, model
checking remains an open challenge for both (PNs &amp; HLPNs) because of 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="ref11 ref2 ref20 ref4">2, 4, 11, 20</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>
        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. In recent years major advances have been made by either modularizing
the system or by reducing the states to consider (e.g., partial orders, symmetries).
The symbolic model checking partially overcomes this problem by encoding the
state space in a condensed way by using Decision Diagrams and has been
successfully applied to PNs [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ]. Among others, Petri net slicing (PN slicing) has
been successfully used to optimize model checking and testing [
        <xref ref-type="bibr" rid="ref10 ref12 ref13 ref14 ref15 ref16 ref21 ref3 ref7">3,7,10,12–16,21</xref>
        ].
PN slicing is a syntactic technique used to reduce a Petri net model based on
the given criteria. The given criteria refer to the point of interest for which the
Petri net model is analyzed. The sliced part constitutes only that part of the
Petri net model that may affect the anaylsis based on the criteria..
      </p>
      <p>
        One limitation of the proposed slicing algorithms that are designed to
improve the model checking in the literature so far is that most of them are only
applicable to low-level Petri nets. Recently, an algorithm for slicing APNs has
been proposed [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. We extend their proposal and introduced a new slicing
algorithm. By evaluating and comparing both algorithms, we showed that our slicing
algorithm significantly improves the model checking of APNs. Another
limitation of the proposed slicing algorithms that are designed to improve the testing
is that they are limited to low-level Petri nets. We define a slicing algorithm
for the first time in the context of testing for APNs. The objective is to reduce
the effort of generating large test input data by generating a smaller net. We
highlight the significant differences of different slicing constructions (designed
for improving model checking or testing) and their evaluations and applications
contexts. Our slicing algorithms can also be applied to low-level Petri nets with
some slight modifications.
      </p>
      <p>The remaining part of the paper is structured as follows: in section 2, we
give formal definitions necessary for the understanding of proposed slicing
algorithms. In section 3, different slicing algorithms are presented together with
their informal and formal descriptions. In section 4, we discuss related work and
we give a comparison with 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 algorithms in section 5. An experimental
evaluation of the proposed algorithms is performed in section 6. In section 7, we
draw conclusions and discuss future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Basic Definitions</title>
      <p>
        Algebraic Petri nets are an evolution of low-level Petri nets. APNs have two
aspects, i.e., the control aspect, which is handled by a Petri net and the data
aspect, which is handled by one or many algebraic abstract data types (AADTs) [
        <xref ref-type="bibr" rid="ref15 ref17 ref18 ref5">5,
15, 17, 18</xref>
        ] (Note: we refer the interested reader to [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] for the details on algebraic
specifications used in the formal definition of APNs for our work.) .
Definition 1. A marked Algebraic Petri Net AP N =&lt; SP EC, P, T, f, asg, cond,
, m 0 &gt; consist of
an algebraic specification SPEC = (⌃ ,E), where signature ⌃ consists of
sorts S and operation symbols OP and E is a set of ⌃ equations defining the
meaning of operations,
      </p>
      <p>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 ! P fin(⌃ 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), where TOP,asg(p) are algebraic terms (if used “closed”
(resp.free) terms to indicate if they are build with sorted variables closed or not),
an initial marking m0 assigning a finite multiset over TOP,asg(p) to every
place p.</p>
      <p>Definition 2. The preset of p 2P is •p = {t 2T |(t, p) 2f } and the postset
of p is p• = {t 2T |(p, t) 2f }. The pre and post sets of t 2T defined as: •t
= {p 2P |(p, t) 2f } and t• = {p 2P |(t, p) 2f }.</p>
      <p>Definition 3. Let m and m0 two markings of APN and t a transition in T then
&lt; m, t, m0 &gt; is a valid firing triplet (denoted by m[tim0) iff
1) 8 p 2• t | m(p) (p, t) (i.e., t is enabled by m).</p>
      <p>2)8 p 2P | m0(p) = m(p) (p, t) + (t, p).
3</p>
    </sec>
    <sec id="sec-3">
      <title>Slicing Algorithms</title>
      <p>
        PN slicing is a technique used to syntactically reduce a PN model in such a
way that at best the reduced PN model contains only those parts that may
influence the property the PN model is analyzed for. Considering a property over
a Petri net, we are interested to define a syntactically smaller net that could be
equivalent with respect to the satisfaction of the property of interest. To do so
the slicing technique starts by identifying the places directly concerned by the
property. Those places constitute the slicing criterion. The algorithm then keeps
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. Roughly, we can divide
PN slicing algorithms into two major classes, which are Static Slicing algorithms
and Dynamic Slicing algorithms. An algorithm is said to be static if the initial
markings of places are not considered for building the slice. Only a set of places
is considered as a slicing criterion. The Static Slicing algorithms starts from the
given criterion place and includes all the pre and post set of transitions together
with their incoming places. There may exist sequence of transitions in the sliced
net that are not fireable because their incoming places are initially empty and do
not get markings from any other way. An algorithm is said to be dynamic slicing
algorithm, if the initial markings of places are considered for building the slice.
The slicing criterion will utilize the available information of initial markings
and produce a smaller sliced net. For a given slicing criterion that consists of
[
        <xref ref-type="bibr" rid="ref1 ref2">1,2</xref>
        ] A
x
t1
x
[] B x
      </p>
      <p>x
t2</p>
      <p>x
C[] C y
initial markings and a set of places for a PN model, we are interested to extract
a subnet with those places and transitions of PN model that can contribute to
change the marking of criterion place in any execution starting from the initial
marking. The sliced net will exclude sequence of transitions in the resultant slice
that are not fireable because their incoming places are not initially marked and
do not get markings from any other way.</p>
      <p>One characteristic of APNs that makes them complex to slice is the use
of multiset of algebraic terms over the arcs. In principle, algebraic terms may
contain the variables. Even though, we want to reach a syntactically reduced net,
its reduction by slicing, needs to determine the possible ground substitutions of
these algebraic terms.</p>
      <p>
        We follow [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] to partially unfold the APN first and then perform the slicing
on the unfolded APN. In general, unfolding generates all possible firing sequences
from the initial marking of the APN. The AlPiNA tool (a symbolic model checker
for Algebraic Petri nets) allows user to define partial algebraic unfolding and
presumed bounds for the infinite domains [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], using some aggressive strategies
for reducing the size of large data domains. The complete description of the
partial unfolding for APNs is out of the scope, for further details and description
about the partial unfolding used in our approach, we refer the interested reader
to follow [
        <xref ref-type="bibr" rid="ref1 ref10">1, 10</xref>
        ]. The Fig. 1 shows an APN model, all the places and variables
over the arcs are of sort naturals (defined in the algebraic specification of the
model, and representing the N set). 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 an 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>
        ] 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 those are kept that satisfy the guards. Third, the computed
A 1 12
23 t12 3
t13
      </p>
      <p>
        B 1
bindings are used to instantiate a binding-specific version of the transition. The
resulting unfolded APN model of Fig.1 is shown in the Fig. 2. The transitions
arcs are indexed with the incoming and outgoing values of tokens.
Abstract slicing has been defined as a static slicing algorithm. The objective is to
improve the model checking of APNs. In the previous static algorithm proposed
for APNs, the notions of reading and non-reading transitions are applied to
generate a smaller sliced net. The basic idea of reading and no-reading transitions
was coined by Astrid Rakow in the context of PNs [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], and later adapted in
the context of APNs in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Informally, the reading transitions are transitions
that are not subject to change the marking of a place. On the other hand the
non-reading transitions change the markings of a place (see Fig.3). To identify
a transition to be a reading or non-reading in a low-level or high-level Petri
nets, we compare the arcs inscriptions attached over the incoming and outgoing
arcs. Excluding reading transitions and including only non-reading transitions
reduces the slice size.
      </p>
      <p>Definition 4. (Reading(resp.Non-reading) transitions of APN) Let t 2
T be a transition in an unfolded APN. We call t a reading-transition iff its firing
does not change the marking of any place p 2 (•t [ t•) , i.e., iff 8 p 2 (•t [
t•), (p, t) = (t, p). Conversely, we call t a non-reading transition iff (p, t) 6=
(t, p).</p>
      <p>We extend the existing slicing operators by introducing the notion of neutral
transitions and using them with the reading transitions. Informally, a neutral
transition consumes and produces the same token from its incoming place to an
outgoing place. The cardinality of incoming (resp.) outgoing arcs of a neutral
tranistion is strictly equal to one and the cardinality of outgoing arcs from an
incoming place of a neutral transition is equal to one as well.</p>
      <p>Definition 5. (Neutral transitions of APN) Let t 2T be a transition in an
unfolded APN. We call t a neutral-transition iff it consumes token from a place
p 2• t and produce the same token to p0 2t•, i.e., t 2T ^ 9 p9 p0/p 2• t ^ p0 2
t• ^ | p•| = 1 ^ | •t| = 1 ^ | t•| = 1 ^ (t, p) = (t, p0).</p>
      <p>
        P1
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
2
      </p>
      <p>2
t1
Algorithm 1: Abstract slicing algorithm</p>
      <p>AbsSlicing(hSP EC, P, T, F, asg, cond, , m 0i, Q){
T 0 { t 2T /9 p 2Q ^ t 2(•p [ p•) ^ (p, t) 6= (t, p)};
P 0 Q [ { •T 0} ;
Pdone ; ;
while ((9 p 2(P 0 \ Pdone)) do
while (9 t 2((•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
Pdone</p>
      <p>Pdone [ { p};
end
while (9 t9 p9 p0/t 2T 0 ^ p 2• t ^ p0 2t• ^ | •t| = 1 ^ | t•| = 1 ^ | p•| = 1
^ p 62Q ^ p0 62Q ^ (p, t) = (t, p0)) do
m(p0) m(p0) [ m(p);
while (9 t0 2• p/t0 2T 0 ) do</p>
      <p>(p0•, p) (p0•, p0) [ (t0, p);
end
T 0</p>
      <p>P 0
end</p>
      <p>T 0 \ {t 2T 0/t 2p• ^ t 2• p0};</p>
      <p>P 0 \ {p};
return hSP EC, P 0, T 0, F|P0,T0 , asg|P0 , cond|T0 , |P0,T0 , m0|P0 i;
}</p>
      <p>In the Abstract slicing algorithm, initially T 0 (representing transitions set of
the slice) contains a set of all the pre and post transitions of the given criterion
places. Only the non-reading transitions are added to T 0. P0(representing the
places set of the slice) contains all the preset places of the transitions in T 0.
The algorithm then iteratively adds other preset transitions together with their
preset places in the T 0 and P 0. Then the neutral transitions are identified and
their pre and post places are merged to one place together with their markings.</p>
      <p>Considering the APN-Model shown in fig. 1, let us now apply our proposed
algorithm on two example properties (i.e., one from the class of safety properties
and one from liveness properties). Informally, we can define the properties:
' 1 : “The values of tokens inside place D are always smaller than 5”.
' 2 : “Eventually place D is not empty”.</p>
      <p>Formally, we can specify both properties in the CTL as:
' 1 = AG(8 token 2m(D)/token &lt; 5).
' 2 = AF(|m(D)| =6 ; ).</p>
      <p>For both properties, the slicing criterion Q = {D}, as D is the only place
concerned by the properties. The resultant sliced net can be observed in fig.4,
which is smaller than the original unfolded net (shown in fig.2).</p>
      <p>
        [
        <xref ref-type="bibr" rid="ref1 ref2">1,2</xref>
        ]
      </p>
      <p>B
1</p>
      <p>Sliced net for Property ' 1 and ' 2</p>
      <p>Let us compare the number of states required to verify the given property
without slicing and after applying abstract slicing. In the first column of Table.1,
number of states are given that are required to verify the property without slicing
and in the second column number of states are given to verify the property by
slicing.</p>
      <p>
        The abstract slicing can be applied to low-level Petri nets with slight
modifications. The criteria to build abstract slice for both formalisms (i.e., Algebraic
Petri nets and low-level Petri nets) remain the same. In case of low-level Petri
nets, we do not unfold the net and the slice is built directly. The idea of including
non-reading transitions together with merging of places by identifying neutral
transitions remains the same for both formalisms. (Note: we refer the interested
reader to [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] for the proof of preservation of properties by applying the Abstract
slicing algorithm.)
Abstract Slicing on APN without unfolding : Abstract slicing extends
the previous proposal of APNs slicing by unfolding the APN and then slicing
the unfolded APN. One major criticism on abstract slicing and previous slicing
construction is the complexity of unfolding APNs. As discussed in the
previous section, APNs are unfolded to identify the reading transitions(resp. neutral
transitions) such that a smaller sliced net can be obtained. We can avoid the
complexity of unfolding APNs and can perform slicing directly on APNs with a
slight trade-off. It is important to note that by applying abstract slicing directly
on APNs, the sliced net may end up with some reading transitions (resp.neutral
transitions) included. This is due to he fact that the arc inscriptions are
syntactically compared to identify reading transitions(resp. neutral transitions) in
slicing algorithm. In Fig.5, two reading transitions(resp. neutral transitions) can
be observed, abstract slicing will not consider the transition (shown in the right
side of the figure 5) as a reading transition(resp. neutral transitions). This is a
slight trade off to avoid the complexity of unfolding. It is a rare situation to
have syntactically non-reading transitions(resp. non-neutral transitions) which
are semantically reading transitions(resp. neutral transitions). The Abstract
slicing algorithm can be directly appliled to APNs without any change in the syntax.
3.2
      </p>
      <p>Concerned Slicing
Concerned slicing algorithm has been defined as a dynamic slicing algorithm. The
objective is to extract a subnet with those places and transitions of the APN
model that can contribute to change the markings of a given criterion place in
any execution starting from the initial markings. Concerned slicing can be useful
in debugging. Consider for instance that the user is analyzing a particular trace
of the marked APN model (using a simulation tool) so that erroneous state is
reached.</p>
      <p>The slicing criterion to build the concerned slice is different as compared
to the abstract slicing algorithm. In the concerned slicing algorithm, available
P1</p>
      <p>
        [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
P1
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
x
x
t1
t1
x P2
information about the initial markings is utilized and it is directly applied to
APNs instead of their unfoldings.
      </p>
      <p>Algorithm 2: Concerned slicing algorithm</p>
      <p>ConcernedSlicing(hSP EC, P, T, F, asg, cond, , m 0i, Q){
T 0 ; ;
P 0 Q ;
while (•P 6= T 0) do</p>
      <p>P 0 P 0 [ • T 0 ;</p>
      <p>T 0 T 0 [ • P 0;
end
T 00
P 00</p>
      <p>Starting from the criterion place the algorithm iteratively include all the
incoming transitions together with their input places until reaching a fix point.
Then starting from the set of initially marked places set the algorithm proceeds
further by checking the enabled transitions. Then the post set of places are
included in the slice. The algorithm computes the paths that may be followed
by the tokens of the initial marking.</p>
      <p>
        Considering the APN-Model shown in fig. 1, let us now take the place D
as criterion and apply our proposed algorithm on it. The resultant sliced
APNModel is shown in the fig. 6. The test input data can be generated for the sliced
APN-model to observe which tokens are coming to the criterion place.
[
        <xref ref-type="bibr" rid="ref1 ref2">1,2</xref>
        ] E
z
t3
The term slicing was coined by M.Weiser for the first time in the context of
program debugging [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. According to Wieser proposal a program slice (ps) is a
reduced, executable program that can be obtained from a program p based on
the variables of interest and line number by removing statements such that ps
replicates part of the behavior of a program.
      </p>
      <p>
        To explain the basic idea of program slicing according to Wieser [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], let us
consider an example program shown in the Fig.7. The Fig.7(a) shows a program
which requests a positive integer number n and computes the sum and the
product of the first n positive integer numbers. We take as slicing criterion a
line number and a set of variables, C = (line10, {product}).
      </p>
      <p>
        The Fig.7(b) shows the sliced program that is obtained by tracing backwards
possible influences on the variables: In the line 7, product is multiplied by i, and
in the line 8, i is incremented too, so we need to keep all the instructions that
impact the value of i. As a result all the computations that do not contribute to
the final value of product have been sliced away (The interested reader can find
more details about the program slicing from [
        <xref ref-type="bibr" rid="ref19 ref23">19, 23</xref>
        ]).
      </p>
      <p>
        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 a Petri nets slicing approach to
partition huge place/transition net models into manageable modules such that
the partitioned model can be analyzed by compositional reachability analysis
technique [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Llorens et al. introduced two different techniques for dynamic
slicing of Petri nets [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. In the first technique, 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. Wangyang et al presented a backward dynamic
slicing algorithm [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. The basic idea of the proposed algorithm is similar to the
algorithm proposed by Lloren et al, [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. At first for both algorithms, a static
backward slice is computed for a given criterion place(s). Secondly, in the case
of Llorens et al a forward slice is computed for the complete Petri net model
whereas in the case of Wangyang et al, a forward slice is computed for the
resultant Petri net model obtained from the static backward slice.
      </p>
      <p>
        Astrid Rakow developed two algorithms for slicing Petri nets i.e., CTL⇤ X
slicing and Safety slicing in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. The key idea behind the construction is to
distinguish between reading and non-reading transitions. A reading transition
t 2T can not change the token count of a place p 2P while other transitions are
called non-reading transitions as they change the token acount. For the CTL⇤ X
slicing, a subnet is built iteratively by taking all non-reading transitions of a place
P together with their input places, starting with the given criterion place. For
the Safety slicing a subnet is built by taking only transitions that increase token
count on the places in P and their input places. The CTL⇤ 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
the CTL⇤ X properties and for the safety slicing focus is on the preservation of
stutter-invariant linear safety properties only.
      </p>
      <p>
        Khan et al presented a slicing technique for algebraic Petri nets [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. They
argued that all the slicing constructions are limited to low-level Petri nets and
cannot be applied as it is to the high-level Petri nets. In order to be applied to
high-level Petri nets they need to be adapted to take into account the data types.
In algebraic Petri nets (APNs), terms may contain the variables over the arcs
from place to transitions (or transitions to places) or guard conditions. Authors
proposed to unfold the APN to know the ground substitutions of the variables.
They used a particular unfolding approach developed by the SMV group i.e.,
a partial unfolding [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Perhaps, the proposed approach is independent of any
unfolding approach. The algorithm proposed for slicing APNs starts by taking
an unfolded APN and the criterion places. We use the same strategy for defining
static slicing for algebraic Petri nets as proposed by khan et al in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The major
difference between their and our slicing construction is that we use the neutral
transition together with reading transition to reduce the slice size (as discussed
in the section 3). We also introduce a notion of dynamic slicing for the first time
in the context of APNs.
5
      </p>
    </sec>
    <sec id="sec-4">
      <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
slicing algorithms. 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>
        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 in the place Recording
Crisis Data that are Fire and Blockage. 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) of sort sys (It is important to note
that for better readability, we omit $ symbol from the terms over the arcs). The
sendcrisis transition passes a recorded crisis to system for further operations.
All the recorded crises are sent for validation through sendcrisisforvalidation
transitions. Initially, every recoded crisis is set to false. The output arc of validat
ecrisis contains the system(getcrisistype(vcs),true) term which sends
validated crisis to system. The transition assigncrisis has two guards, the 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="ref6">6</xref>
        ] for the algebraic specification of a
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
execution of a crisis mission based on the wrong reporting can waste both human
and physical resources. In principle, it is essential to validate a crisis that it
is reported correctly. Another, important threat could be to see the number of
superobservers should not exceed from a certain limit. Informally, we can define
the properties:</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 = AF(8 crisis 2System|isvalid(crisis) = true).
' 2 = AG(|SuperobserverReady|  2).</p>
      <p>In contrast to generate the full state space for the verification of the properties
' 1 and ' 2, we alleviate the state space by applying our proposed algorithm i.e.,
abstract slicing algorithm. For ' 1and' 2, the criterion places are System and
Superobserver Ready. The unfolded car crash APN model is shown in the Fig.
9. The abstract slicing algorithm takes an unfolded car crash APN model and
System (an input criterion place) as an input and iteratively builds the sliced net
for ' 1. Respectively for ' 2, the algorithm starts from Superobserver Ready(as
input criterion place) and builds the slice. The sliced unfolded car crash APN
models are shown in the Fig. 10, for the both prperties i.e., ' 1 and ' 2.</p>
      <p>Let us compare the number of states required to verify the given property
without slicing and after applying abstract slicing. In the first column of Table.2,
the number of states are given that are required to verify the property without
slicing and in the second column the number of states are given to verify the
property by slicing.</p>
      <p>Let us take a criterion place (i.e, System) from the car crash APN model
and apply our proposed concerned slicing algorithm to find which transitions
and places can contribute tokens to that place. It is important to note that, we
perform concerned slicing directly on the car crash APN model instead of the
unfolded car crash APN model (as discussed in the section 3). The sliced car
crash APN-model can be observed in the Fig.11.</p>
      <p>Recording Crisis Data</p>
      <p>Fire</p>
      <p>Fire
sendcrisisforvalidationFire</p>
      <p>(Fire,false)
Fig. 9. The unfolded car crash APN model</p>
      <p>sendcrisisforvalidationBlockage</p>
      <sec id="sec-4-1">
        <title>Sliced unfolded car crash APN model for ' 2</title>
        <p>Recording Crisis Data
Fire,Fire,Blockage,</p>
        <p>Blockage
Blockage
Fire
sendcrisisBlockage
sendcrisisFire
Blockage
Fire</p>
        <p>System
Superobserver Ready
(YK,Fire)
(Blockage,true)
sendcrisisforvalidationBlockage
sobs(Yk,Fire), (NG,Blockage)
sobs(NG,Bloc
kage)
assigncrisis(Blockage,true),
(NG,Blockage),((Blockage,true),
(NG,Bloackage))</p>
      </sec>
      <sec id="sec-4-2">
        <title>Sliced unfolded car crash APN model for ' 1</title>
        <p>sendcrisisforvalidationFire
Fire</p>
        <p>Recording Crisis Data
In this section, we evaluate our abstract slicing algorithm and compare with
existing slicing construction for APNs (Note: We do not include concerned slicing
algorithm in the evaluation. As discussed in section 3, concerned slicing algorithm
is designed to improve the testing of APN for the first time. We only include
slicing algorithm that are designed to improve the model checking). We measure
the effect of slicing in terms of savings of the reachable state space, as the size of
the state space usually has a strong impact on time and space needed for model
checking.</p>
        <p>
          To show that state space could be reduced for practically relevant properties.
We took some specific examples of temporal properties from the different case
studies. Instead of presenting properties for which our method the best one, it is
interesting to see where it gives an average or worst case results. Let us specify
the temporal properties that we are interested to verify on the given APN model.
(Note: we refer the interested reader to [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] for APN models of case studies used
in the evaluation).
        </p>
        <p>For the Daily Routine of two Employees and Boss APN model, for example,
we are interested to verify that: “Boss has always meeting”. Formally, we can
specify the property:
' 1 = AG(N M 6= ; ), where “NM" represents a place not meeting.</p>
        <p>For Simple Protocol, for example, we are interested to verify that: “All the
packets are transmitted eventually”. Formally, we can specify the property:
' 2 = AF(|P ackT orec| = |P ackT osend|), where “PackTosend and
PackTorec" represents places.</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 = AG(RecComp ) AFCompReg), where “RecComp" (resp. CompReg)
means “place RecComp (resp. CompReg) is not empty".</p>
        <p>For an Insurance claim APN model an interesting property could be to verify
that: “Every accepted claim is settled”. Formally, we can specify the property:
' 4 = AG(AC ) AFCS), where “AC" (resp. CS) means “place AC (resp.
CS) is not empty".</p>
        <p>For a Customer support production system an interesting property could be
to verify that: “Number of requests are always less than 10 ”. Formally, we can
specify the property:
' 5 = AG(|Requests| &lt; 10).</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:
' 6 = AG(|Buf f er| &gt; 0).</p>
        <p>Let us study the results summarized in the table shown in Table. 2, the first
column represents the system under observation whereas the second column
refers to the property that we are interested to verify. In the third column,
total number of states is given based on the initial markings of places. In the
fourth column, number of states are given that are required to verify the given
property by applying APNslicing. In the fourth column, number of states that
are required to verify the given property by applying abstract slicing. The last
column represents the number of states that are reduced (in percentage) after
applying Abstract slicing algorithm.</p>
        <p>
          We can draw the following conclusions from the evaluation results:
– Abstract slicing often reduces the slice size as compared to APNslicing slice
size. This is due to the inclusion of neutral transition together with
reading transitions. As a result number of states are reduced to verify the given
property, which is an improvement towards model checking. We can observe
Table. 2, a part for property ' 2, there is always an improvement in the
reduction of states. It is important to note that at worst the slice size obtained
after applying abstract slicing is equal to the slice size obtained by applying
APNslicing.
– Reduction can vary with respect to the net structure and markings of the
places (this is true for both abstract slicing and APNslicing). 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.
– It has been empirically proved that in general slicing produces best results
for work-flow nets in [
          <xref ref-type="bibr" rid="ref10 ref16">10, 16</xref>
          ]. Our experiments also prove that for work-flow
nets abstract slicing produces better results.
        </p>
        <p>– Abstract slicing algorithm is a linear time complex.
7</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Future Work</title>
      <p>In this work, we have presented two slicing algorithms (i.e., Abstract slicing and
Concerned slicing) to improve the verification of systems modeled in the
Algebraic Petri nets. The Abstract slicing algorithm has been designed to improve the
model checking whereas the Concerned slicing has been designed to improve the
testing of APNs. Both the algorithms are linear time complex and significantly
improves the model checking and testing of APNs.</p>
      <p>As a future work, we are targeting to define more refined slicing
constructions in the context of APNs and to implement a tool named SLAPn (i.e., slicing
algebraic Petri nets). The objective of SLAPn is to show the practical usability
of slicing by implementing the proposed slicing algorithms. The initial strategy
to implement SLAPn is to extend the AlPiNA (Algebraic Petri net analyzer) a
symbolic model checker. As discussed in the section 3, we are using the same
unfolding approach as AlPiNA. Certainly, this will help to reduce the
implementation effort.
8</p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgement</title>
      <p>This work has been supported by the National Research Fund, Luxembourg,
Project RESIsTANT, ref.PHD-MARP-10.</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>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Risoldi</surname>
          </string-name>
          .
          <article-title>Alpina: A symbolic model checker</article-title>
          . In J. Lilius and W. Penczek, editors,
          <source>Applications and Theory of Petri Nets</source>
          , volume
          <volume>6128</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>287</fpage>
          -
          <lpage>296</lpage>
          . Springer Berlin Heidelberg,
          <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>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="ref6">
        <mixed-citation>
          6.
          <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="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Y. I. Khan.</surname>
          </string-name>
          <article-title>Optimizing verification of structurally evolving algebraic petri nets</article-title>
          . In V. K. A.
          <string-name>
            <surname>Gorbenko</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Romanovsky, editor,
          <source>Software Engineering for Resilient Systems</source>
          , volume
          <volume>8166</volume>
          of Lecture Notes in Computer Science. Springer Berlin Heidelberg,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Y. I. Khan.</surname>
          </string-name>
          <article-title>Optmizing algebraic petri net model checking by slicing</article-title>
          .
          <source>Technical Report TR-LASSY-13-02</source>
          , University of Luxembourg,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Y. I. Khan.</surname>
          </string-name>
          <article-title>Slicing high-level petri nets</article-title>
          .
          <source>Technical Report TR-LASSY-14-03</source>
          , University of Luxembourg,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Y. I.</given-names>
            <surname>Khan</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Risoldi</surname>
          </string-name>
          .
          <article-title>Optimizing algebraic petri net model checking by slicing</article-title>
          .
          <source>International Workshop on Modeling and Business Environments (ModBE'13, associated with Petri Nets'13)</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <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="ref12">
        <mixed-citation>
          12.
          <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="ref13">
        <mixed-citation>
          13.
          <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="ref14">
        <mixed-citation>
          14.
          <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>436</fpage>
          -
          <lpage>447</lpage>
          , Berlin, Heidelberg,
          <year>2008</year>
          . SpringerVerlag.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <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="ref16">
        <mixed-citation>
          16.
          <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="ref17">
        <mixed-citation>
          17.
          <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="ref18">
        <mixed-citation>
          18.
          <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="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>F.</given-names>
            <surname>Tip</surname>
          </string-name>
          .
          <article-title>A survey of program slicing techniques</article-title>
          .
          <source>JOURNAL OF PROGRAMMING LANGUAGES</source>
          ,
          <volume>3</volume>
          :
          <fpage>121</fpage>
          -
          <lpage>189</lpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <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="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wangyang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Chungang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Zhijun</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Xianwen</surname>
          </string-name>
          .
          <article-title>Extended and improved slicing technologies for petri nets</article-title>
          .
          <source>High Technology Letters</source>
          ,
          <volume>19</volume>
          (
          <issue>1</issue>
          ),
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <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.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23. B.
          <string-name>
            <surname>Xu</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Qian</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Wu</surname>
            , and
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Chen</surname>
          </string-name>
          .
          <article-title>A brief survey of program slicing</article-title>
          .
          <source>SIGSOFT Softw. Eng. Notes</source>
          ,
          <volume>30</volume>
          (
          <issue>2</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>36</lpage>
          , Mar.
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>