<!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>Methods of translation of Petri nets to NuSMV language</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Marcin Szpyrka</string-name>
          <email>mszpyrka@agh.edu.pl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Agnieszka Biernacka</string-name>
          <email>agnieszkazelezik@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jerzy Biernacki</string-name>
          <email>jerzyjanbiernacki@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>AGH University of Science and Technology Department of Applied Computer Science Al. Mickiewicza 30</institution>
          ,
          <addr-line>30-059 Kraków</addr-line>
          ,
          <country country="PL">Poland</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The paper deals with the problem of translation of reachability graphs for place-transition and coloured Petri nets into the NuSMV language. The translation algorithms presented in the paper have been implemented as a part of the PetriNet2NuSMV tool so the translation is made automatically. The PetriNet2NuSMV tool works with reachability graphs generated by the TINA and CPN Tools software. Thus, it provides the possibility of formal verification of Petri nets designed with these environments using model checking techniques and a mainstream model checker for LTL and CTL temporal logics.</p>
      </abstract>
      <kwd-group>
        <kwd>place-transition nets</kwd>
        <kwd>coloured Petri nets</kwd>
        <kwd>NuSMV</kwd>
        <kwd>translation</kwd>
        <kwd>model checking</kwd>
        <kwd>PetriNet2NuSMV translator</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        The most widely used software verification techniques are peer reviewing and testing.
In case of concurrent systems, these techniques can cover only a limited portion of
possible behaviours. Formal methods can be used to establish a concurrent system
correctness with mathematical rigour. Model checking [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is one of the most promising
techniques for automatic software analysis and Petri nets [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] are one of
the most widespread formalisms used in software engineering. Unfortunately, software
tools for Petri nets are rarely equipped with model checking algorithms. The presented
approach combines two popular Petri nets modelling environments (TINA [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and CPN
Tools [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]) with a mainstream model checker for temporal logic (NuSMV [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]).
      </p>
      <p>
        There are some similar tools described in the literature such as PEP [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and
ModelChecking Kit [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Among other features they allow to verify Petri net models using
CMU SMV tool. Nevertheless, development of these tools was stopped in 2004. Petri
net model checking is also possible in LoLA [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and PROD [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] software tools that
provide LTL and CTL formulae verification. Alas, none of these tools supports NuSMV
model checker or popular coloured Petri nets. The only existing solution for model
checking of CP-nets is CPN Tools library. It allows to verify formulae expressed in
the ASK-CTL temporal logic which is an extension of the CTL logic. One of
inconveniences of this solution is that knowledge of ML functional language is required.
Another disadvantage is the lack of support for formulae written in the LTL logic.
      </p>
      <p>The aim of this work was to create a tool for translation of reachability graphs of
both place-transition and coloured Petri nets into a description of the system in the</p>
      <p>NuSMV language. As a result, the tool provides for the automatic model checking of
nets created in the TINA and CPN Tools environments. The presented solution is the
only one that allows verification of formulae in both LTL and CTL temporal logics for
coloured Petri nets as well as for PT-nets.</p>
      <p>The paper is organised as follows. Section 2 provides a short introduction to the
NuSNV language and tool. Section 3 deals with reachability/coverability graphs for
place-transition nets and the algorithm of transformation of such graphs into the NuSMV
language. The algorithm of transformation of reachability graphs for coloured Petri nets
into the NuSMV language is presented in Section 4. Section 5 provides some test results
for the presented algorithms. A short summary is given in the final section.
2</p>
    </sec>
    <sec id="sec-2">
      <title>NuSMV</title>
      <p>
        NuSMV [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is one of the most popular model checkers for temporal logic. Given a
finite state model and a formula, NuSMV can be used to check automatically whether
or not the model satisfies the formula. Formulae can be treated as a specification of
requirements for a given model and can be expressed using LTL [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] or CTL [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
temporal logics.
      </p>
      <p>
        In the NuSMV approach, the verified system is modelled as a finite state transition
system [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Such a system is described as a tuple TS = (S; I; !; L), where S is a finite
set of states, I S is the set of initial states, ! S S is the transition relation,
specifying the possible transitions from state to state, and L is the labelling function
that labels states with atomic propositions that hold for the given state. Such a tuple is
also called Kripke structure [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>MODULE main
VAR
s : {s0, s1, s2};
a : boolean;
b : 0 .. 2;
ASSIGN
init(s) := {s0, s2};
next(s) := case
s = s0 : s1;
s = s1 : {s1, s2};
s = s2 : s2;
esac;
a := case
s = s0 : TRUE;
s = s2 : TRUE;</p>
      <p>TRUE : FALSE;
esac;
b := case
s = s0 : 1;
s = s1 : 2;</p>
      <p>TRUE : 0;
esac;
} set of states</p>
      <p>atomic propositions given implicitly
} initial states

 transition relation









 labelling function









</p>
      <p>
        NuSMV is equipped with a dedicated modelling language (the SMV language),
which is used to define finite state transition systems [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. An example of such a model
is given in Fig. 1. A NuSMV model consists of two sections: VAR and ASSIGN. The
VAR section contains definitions of variables, including set of states and atomic
propositions variables. The ASSIGN section is composed of three main parts. The first one
is the initialisation of the state variable. The second part is responsible for defining
transitions between the states. The last part assigns values to the atomic propositions
for specific states. The set of atomic propositions is given implicitly using variables
and their domains. For example, the following expressions can be considered as atomic
propositions: a (i.e. a = TRUE ), !a, b = 0, b &gt; 1 etc.
      </p>
      <p>A finite state transition systems is stored as a text file. NuSMV statements LTLSPEC
and CTLSPEC can be used to include LTL and CTL formulae respectively into the file.
In case of the LTL logic, the temporal operators G (globally), F (finally), X (next),
U (until) can be used. Moreover, the propositional logic operators are represented by:
! (not), &amp; (and), | (or), xor (exclusive or), -&gt; (implies) and &lt;-&gt; (equivalence). In case
of CTL following temporal logic operators can be used: EG (exists globally), EX (exists
next state), EF (exists finally), AG (forall globally), AX (forall next state), AF (forall
finally), E[ U ] (exists until), A[ U ] (forall until). Satisfaction of each specified formula
is verified with the NuSMV tool automatically. If a modelled system does not satisfy a
given formula, a proper counterexample is presented. It is finally worth mentioning that
NuSMV can verify systems of high complexity, i.e. containing more than 1020 states.
These features make NuSMV useful and convenient tool for finite automata verification.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Place-transition nets</title>
      <p>
        Place-transition nets (PT-nets) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] are the most popular class of Petri nets. A PT-net
is defined as a tuple N = (P; T ; A; W; M0), where P and T are non-empty finite sets
of places and transitions (P \ T = ;), A (P T ) [ (T P ) is a set of arcs (flow
relation), W : A ! N n f0g is a weight function (N = f0; 1; 2; : : : g), and M0 : P ! N
is the initial marking.
      </p>
      <p>A state of a PT-net is called marking and is a distribution of tokens among places
of the net. Tokens are indistinguishable one from another so a marking of a place is
represented by the number of tokens stored in the place. If P = fp1; : : : ; png, then
a marking M is represented by the vector M = (M (p1); : : : ; M (pn)). A firing of a
transition may change the current marking. A transition t is enabled if each input place
p of t contains at least W (p; t) tokens, where W (p; t) is the weight of the arc from p to
t. A firing of an enabled transition t removes W (p; t) tokens from each input place p of
t, and adds W (t; p) tokens to each output place p of t. We write M !t M 0 to indicate
that a firing of a transition t transforms M to M 0.</p>
      <p>A sequence of firings results in a sequence of markings. A marking M 0 is said to
be reachable from a marking M if there exists a sequence of firings that transforms
M to M 0, i.e. there exist markings M1; : : : ; Mn and transitions t1; : : : ; tn such that
M t!1 M1 t!2 : : : t!n Mn = M 0. The firing sequence t1; : : : ; tn is said to be feasible
from the marking M . The set of all markings reachable from a marking M is denoted
by R(M ) and the set of all firing sequences feasible from M is denoted by L(M ).</p>
      <p>A reachability graph of a PT-net N = (P; T; A; W; M0) is the directed graph G =
(V; A), such that the set of nodes V = R(M0), and the set of arcs A = f(M; t; M 0) 2
V T V : M !t M 0g. The arcs are labelled with transition names and there may
exist more than one arc between the same pair of nodes. An example of a PT-net and its
reachability graph are shown in Fig. 2.</p>
      <p>p0
2
t3
2</p>
      <p>t0
t1
2
p1
t2
p2
t0</p>
      <p>(2, 0, 0)M0
(1, 1, 0)M1</p>
      <p>t0
t3 (0, 2, 0)M3 t1</p>
      <p>t3
t2 (0, 1, 1)M5
(1, 0, 1)M4
t2
t2
t3
t0 (0, 0, 2)M2</p>
      <p>
        Let us consider the PT-net from Fig. 2 but with W (t1; p2) = 3, W (p2; t3) =
W (t3; p0) = 2. In such a case the number of tokens in places of the net can grow
infinitely, so the reachability graph is infinite. Then, the coverability graph [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] can be
used to represent the PT-net reachable markings. To keep the graph finite, the infinity
symbol is used to represent the unbounded number of tokens. The coverability graph
for the considered net is given in Fig. 3.
      </p>
      <p>
        The approach presented in the paper uses TINA [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] modelling environment for the
design and generation of reachability/coverability graphs for PT-nets. The graphs can
be stored using a few different formats. The PetriNet2NuSMV tool uses the kts (Kripke
transition system) format. To generate a coverability graph for a PT-net choose Tools!
reachability analysis and choose options coverability graph and kts (ktz). Then, the
generated graph can be stored in a file and finally read by the PetriNet2NuSMV translator.
A part of the kts file for the reachability graph from Fig. 2 is given below.
      </p>
      <p>Kts files contain sections starting with the word state and the order number of
the state it represents. There is one section for each node of the reachability graph. The
second line of each section contains information about the state marking. In the given
example, line props p0*2 indicates that there are two tokens in place p2 (M (p2) =
2) and other places are empty. The third line of a section describes the active transitions
in the given state. For example, line trans t0/1 t1/2 means that there are two
active transitions in the state – t0 and t1. The former leads to state s1, and the latter
to state s2. The letter w denotes the infinity. If a coverability graph does not contain the
infinity symbol, then the coverability and reachability graphs are identical.</p>
      <p>The PetriNet2NuSMV tool parses an input kts file and generates the system model
in the SMV language. To this end the tool uses the designed translation algorithm. The
algorithm is presented in Figure 4. A fragment of the SMV file generated for
reachability graph from Fig. 2 is given below.</p>
      <p>Listing 1.1. A fragment of SMV file generated for reachability graph from Fig. 2.</p>
      <p>. pi : 0..k; where 8pi2P;Mj2R(M0)Mj(pi) 6 k
1: add MODULE main statement
2: add VAR keyword
3: for all Mi 2 R(M0) do
4: add si to the set of states s
5: end for
6: for all pi 2 P do
7: if 8Mj2R(M0)Mj(pi) 6 1 then
8: add Boolean variable pi
9: else
10: add bounded Integer variable pi</p>
      <p>Listing 1.2. Examples of LTL and CTL formulae for the model from Listing 1.1.
CTLSPEC AG EF (p0 = 2 &amp; p1 = 0 &amp; p2 = 0)
LTLSPEC G (p0 &lt;= 2 &amp; p1 &lt;= 2 &amp; p2 &lt;= 2)
LTLSPEC G (p0 + p1 + p2 = 2)
LTLSPEC G (p0 = 2 -&gt; X (p0 != 2))
CTLSPEC AG (p1 = 2 -&gt; AX (EF (p1 = 2)))
. s : {s0, s1, ...};
. pi : boolean;</p>
      <p>Examples of LTL and CTL formulae for the model from Listing 1.1 are shown
in Listing 1.2. For example, the first one denotes that the corresponding PT-net is
reversible, the second one denotes that the net is 2-bounded, the third denotes that the net
is conservative etc. It is easy to check that all these formulae hold for the model. It is
not so obvious if a reachability graph contains thousands of nodes and arcs.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Coloured Petri nets</title>
      <p>
        Coloured Petri nets (CP-nets) combines the capabilities of PT nets with the capabilities
of a high-level programming language [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. CP-nets provide graphical notation typical
for Petri nets, but net elements are described using CPN ML programming language,
which is based on the functional programming language Standard ML [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
      </p>
      <p>A non-hierarchical CP-net is a nine-tuple N = (P; T; A; ; V; C; G; E; I ), where
P , T and A have meaning as for PT-nets, is a finite set of non-empty colour sets
(types of tokens), V is a finite set of variables of types from , C : P ! is a colour
set function that assigns to each place the type of its tokens; G is a guard function that
assigns a guard (Boolean condition) to each transition (the default value is true); E
is an arc expression function that assigns to each arc an expression that evaluates to a
multi-set of tokens of the type assigned to the arc place node; and I is an initialization
function that assigns to each place an expression that evaluates to a multi-set of tokens
of the type assigned to the place.</p>
      <p>
        A marking of a place p 2 P of a CP-net is multi-set of tokens of type C(p) 2
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The initial marking is obtained by evaluating the initialization expressions. Due
to the fact that arc expressions and guards may contain variables, it is necessary to
assign (bind) some values to the variables to check if a transition is enabled. Let Var (t)
denote the set of variables occurring in arc expressions on the arcs connected to the
transition and in the transition guard. A binding b of a transition t is a function that
maps each variable v 2 Var (t) into a value of its type. A transition t is enabled if it is
possible to construct such binding b that the guard G(t) evaluates to true and each of
the arc expressions evaluates to tokens, which are present on the corresponding input
places. A pair (t; b) is called binding element. A firing of an enabled transition t removes
E(p; t)hbi tokens from each input place p of t, and adds E(t; p)hbi tokens to each output
place p of t, where E(a)hbi denotes the result of evaluating the arc expression E(a) of
an arc a in the binding b.
      </p>
      <p>Sets R(M ) and L(M ) are defined as for PT-nets, but binding elements are taken
into consideration instead of transitions. A reachability graph of a CP-net has a node
for each reachable marking and an arc for each occurring binding element. An example
of a CP-net is presented in Fig. 5. Its reachability graph is shown in Fig. 6.</p>
      <p>
        For an effective modelling CP-nets enable to distribute parts of the net across
multiple subnets called modules. The result of such an approach is a hierarchical CP-net [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
A description of hierarchical CP-nets is out of the scope of the paper. From the
presented algorithm point of view, it does not matter whether a reachability graph was
generated for a hierarchical or non-hierarchical CP-net.
      </p>
      <p>
        The most popular software for CP-nets modelling and reachability graphs
generation is CPN Tools [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and therefore, it was used in the approach presented in the paper.
1`x++1`y
      </p>
      <p>(x,y,p)
1`2++3`7</p>
      <p>p0
I</p>
      <p>It is a powerful and efficient tool for editing, simulation and analysis of coloured Petri
nets. CPN Tools provides for the automatic reachability graph generation by taking
advantage of its state space toolbox. In order to do this, few steps are required. The first
step is to make use of Calculate state space feature followed by Calculate SCC graph
operation. To actually generate nodes and arcs of a reachability graph, Display partial
state space feature must be called on auxiliary text element containing short ML code:
EvalAllArcs(fn arc =&gt; arc). Nodes in the list option must be unchecked for
this feature to work properly. Generated graph is saved with the model in a cpn file.
Parsing process of a cpn file is relatively simple due to its XML structure. After parsing
of a cpn file, PetriNet2NuSMV tool generates SMV output. The translation algorithm
for CP-nets is presented in Figure 7. Illustrative parts of the generated SMV file for the
reachability graph from Fig. 6 are presented in Listing 1.3.
1: add MODULE main statement
2: add VAR keyword
3: for all Mi 2 R(M0) do
4: add si to the set of states s . s : {s0, s1, ...};
5: end for
6: L = ; . the set of defined variables’ labels
7: for all pi 2 P do
8: for all colour cj 2 Mk(pi), where Mk 2 R(M0) do
9: create marking label ltemp by concatenating pi and cj
10: if @l2Ll = ltemp then
11: add bounded Integer variable l_temp</p>
      <p>. l_temp : 0..k; where 8pi2P;Mj 2R(M0) jMj (pi)j 6 k</p>
      <p>Listing 1.3. Selected fragments of SMV file generated for reachability graph from Fig. 6.
MODULE main
VAR
s: {s1, s2, s3, s4, s5, s6, s7, s8, s9};
p0_7 : 0..3;
...</p>
      <p>ASSIGN
init(s) := s1;
next(s) := case
s = s1 : {s5, s4, s3, s2};
s = s2 : s6;
...
esac;
p0_7 := case
s = s5 : 2;
s = s1 : 3;
s = s6 : 2;
...</p>
      <p>TRUE : 0;
esac;</p>
      <p>In order to make this notation clear, the meaning of labels will be shortly explained.
The value of p0_7 variable denotes the number of tokens of value 7 in place p0.
Bearing this in mind, s = s5 : 2 denotes: There are 2 tokens of value 7 in place p_0 in
state s5.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Usability studies</title>
      <p>Along with the presented algorithm, fully functional tool called PetriNet2NuSMV has
been developed. In accordance with original ideas this tool allows to translate both kts
and cpn files into smv files. As a result, users can easily validate the modelled system
using LTL and CTL temporal logic formulae.</p>
      <p>In order to facilitate the usage of the tool it was developed with simple graphical
user interface (see Fig. 8). It allows to configure the parser, load an input file and save
the generated output to the smv file. The application is written in Java using Swing
library so it can serve both Linux and Windows users.</p>
      <p>A summary of translation results for illustrative systems modelled in Tina and CPN
Tools is presented in Table 1. The table contains translation times for four Petri net
models with varying complexity and size of their reachability graphs. The measured
times proved to be entirely satisfactory. NuSMV code is generated visibly faster for
PT-nets. Nonetheless, even complex graph of CP-net model consisting of more than
2000 nodes and 20 000 arcs is translated in approximately 20 seconds. Considering the
large size of the CPN Tools file that needs to be parsed, which is more then 20 MB, the
result can be considered as adequate. Manual approach to NuSMV code creation for the
mentioned Petri net model is practically impossible.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Summary</title>
      <p>Algorithm for translation of reachability graphs for place-transition and coloured Petri
nets into the NuSMV language has been presented in the paper. Both of these algorithms
have been implemented as the core of PetriNet2NuSMV software. The tool has been
tested against reachability graphs of different sizes and complexity and proved to be
quite swift and efficient. PetriNet2NuSMV enables users to translate reachability graphs
generated with TINA and CPN Tools environments into a NuSMV model automatically.
Thus, a Petri model can be verified using model checking techniques without necessity
of learning any additional language for the specification of requirements. Moreover, the
presented algorithms for low and high level Petri nets can be adapt to other classes of
Petri nets.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. PROD tool home page (
          <year>2007</year>
          ), http://www.tcs.hut.fi/Software/prod/
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Baier</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Katoen</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          : Principles of Model Checking. The MIT Press, London, UK (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Berthomieu</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ribet</surname>
            ,
            <given-names>P.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vernadat</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>The tool TINA - construction of abstract state spaces for Petri nets and time Petri nets</article-title>
          .
          <source>International Journal of Production Research</source>
          <volume>42</volume>
          (
          <issue>14</issue>
          ),
          <fpage>2741</fpage>
          -
          <lpage>2756</lpage>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Cimatti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giunchiglia</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giunchiglia</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pistore</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roveri</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sebastiani</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tacchella</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>NuSMV version 2: An opensource tool for symbolic model checking</article-title>
          .
          <source>In: Proceedings of International Conference on Computer-Aided Verification (CAV</source>
          <year>2002</year>
          ). LNCS, vol.
          <volume>2404</volume>
          . Springer-Verlag, Copenhagen, Denmark (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Cimatti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giunchiglia</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roveri</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>NUSMV: a new symbolic model checker</article-title>
          .
          <source>International Journal on Software Tools for Technology Transfer</source>
          <volume>2</volume>
          (
          <issue>4</issue>
          ),
          <fpage>410</fpage>
          -
          <lpage>425</lpage>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grumberg</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peled</surname>
            ,
            <given-names>D.: Model</given-names>
          </string-name>
          <string-name>
            <surname>Checking</surname>
          </string-name>
          . The MIT Press, Cambridge, Massachusetts (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Emerson</surname>
          </string-name>
          , E.:
          <article-title>Temporal and modal logic</article-title>
          . In: van Leeuwen,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (ed.)
          <source>Handbook of Theoretical Computer Science</source>
          , vol. B, pp.
          <fpage>995</fpage>
          -
          <lpage>1072</lpage>
          . Elsevier Science (
          <year>1990</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Jensen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kristensen</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Coloured Petri nets</article-title>
          .
          <source>Modelling and Validation of Concurrent Systems</source>
          . Springer, Heidelberg (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Jensen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kristensen</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wells</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Coloured Petri nets and CPN Tools for modelling and validation of concurrent systems</article-title>
          .
          <source>International Journal on Software Tools for Technology Transfer</source>
          <volume>9</volume>
          (
          <issue>3-4</issue>
          ),
          <fpage>213</fpage>
          -
          <lpage>254</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Kripke</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>A semantical analysis of modal logic I: normal modal propositional calculi</article-title>
          .
          <source>Zeitschrift für Mathematische Logik und Grundlagen der Mathematik</source>
          <volume>9</volume>
          ,
          <fpage>67</fpage>
          -
          <lpage>96</lpage>
          (
          <year>1963</year>
          ), announced in
          <source>Journal of Symbolic Logic</source>
          ,
          <volume>24</volume>
          ,
          <year>1959</year>
          , p.
          <fpage>323</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Murata</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Petri nets: Properties, analysis and applications</article-title>
          .
          <source>Proceedings of the IEEE</source>
          <volume>77</volume>
          (
          <issue>4</issue>
          ),
          <fpage>541</fpage>
          -
          <lpage>580</lpage>
          (
          <year>1989</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Schröter</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwoon</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Esparza</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>The model-checking kit</article-title>
          .
          <source>In: Applications and Theory of Petri Nets 2003, Lecture Notes in Computer Science</source>
          , vol.
          <volume>2679</volume>
          , pp.
          <fpage>463</fpage>
          -
          <lpage>472</lpage>
          . Springer (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Stehno</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <source>PEP Version 2.0. In: Tool demonstration ICATPN</source>
          <year>2001</year>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Szpyrka</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>Analysis of RTCP-nets with reachability graphs</article-title>
          .
          <source>Fundamenta Informaticae</source>
          <volume>74</volume>
          (
          <issue>2-3</issue>
          ),
          <fpage>375</fpage>
          -
          <lpage>390</lpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Szpyrka</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>Analysis of VME-Bus communication protocol - RTCP-net approach</article-title>
          .
          <source>RealTime Systems</source>
          <volume>35</volume>
          (
          <issue>1</issue>
          ),
          <fpage>91</fpage>
          -
          <lpage>108</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Ullman</surname>
          </string-name>
          , J.:
          <article-title>Elements of ML programming (ML97 ed</article-title>
          .). Prentice-Hall, Inc., Upper Saddle River, NJ, USA (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Wolf</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Generating Petri net state spaces</article-title>
          .
          <source>In: Petri Nets and Other Models of Concurrency - ICATPN 2007, Lecture Notes in Computer Science</source>
          , vol.
          <volume>4546</volume>
          , pp.
          <fpage>29</fpage>
          -
          <lpage>42</lpage>
          . Springer (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>