<!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>Coloured Petri Nets Refinements</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>C. Choppy</string-name>
          <email>Christine.Choppy@lipn.univ-paris13.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>L. Petrucci</string-name>
          <email>Laure.Petrucci@lipn.univ-paris13.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A. Sanogo</string-name>
          <email>Alfred.Sanogo@lipn.univ-paris13.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>LIPN, CNRS UMR 7030, Université Paris XIII 99</institution>
          ,
          <addr-line>avenue Jean-Baptiste Clément, F-93430 Villetaneuse</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <fpage>187</fpage>
      <lpage>202</lpage>
      <abstract>
        <p>Coloured Petri nets allow for modelling complex concurrent systems, but the specification of such systems remains a challenging task. Two approaches are generally used to lessen these difficulties: decomposition and refinement. Charles Lakos proposed three kinds of refinements for coloured Petri nets: type refinement, subnet refinement, and node (place or transition) refinement. This paper proposes new rules widening the scope of both type and transition refinements.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Coloured Petri nets are a specification language which presents the
advantages of both a graphical description, giving an easy understanding of the model,
and a formal semantics allowing for formal analysis techniques. However, as is
the case for many specification languages, the specification of a system remains
a difficult task. A way to alleviate these difficulties consists in using refinement
techniques.</p>
      <p>First, a rather simple model of the system is built, at a high level of
abstraction, with few details. This abstract model constitutes a general description of
the system. An incremental process of successive refinements is then applied,
adding new details in a stepwise manner. The model is thus enhanced until all
the expected behaviour and properties are taken into account. At each step, the
abstract model is replaced by a refined one.</p>
      <p>For defining refinements, the following questions should be addressed:</p>
      <p>Since a model is characterised by its observed behaviour, the comparison
between abstract and refined model will rely on it. Several notions of
equivalence and order have been proposed in the literature. In particular, Lakos and</p>
      <sec id="sec-1-1">
        <title>Lewis [6, 8, 5, 7] propose that “ a model R is a refinement of a model A if all</title>
        <p>behaviour in R has a corresponding behaviour in A” (thus a refinement, while it
may introduce further details, cannot introduce behaviours that would be new
to the abstract model; this is useful to be able to explore the state space in a
modular and still meaningful way). They express this relation between coloured
Petri nets as a system morphism (behavioural morphism) from the refined model
to the abstract one. Three kinds of refinements were proposed, and the system
morphisms defined accordingly: type refinement, subnet refinement and node
(place or transition) refinement. Transformation rules on the net structure, the
colours and firing modes, that respect these morphisms, complete their work by
providing practical refinement mechanisms.</p>
        <p>
          This paper extends these coloured Petri nets refinements, and more
specifically the type and transition refinements. Type refinement includes two
constraints: the subtype relation defined by Liskov and Wing [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] as well as Lakos’
refinement condition. Four operations on types are now permitted: addition of a
component in a tuple, constraining a component value, addition and
modification of functions. The conditions for these operations to satisfy the refinement
constraints are checked. For node refinement, a new refinement rule satisfying
Lakos’s constraints is introduced: alternate transitions.
        </p>
        <p>The paper is organised as follows. In Section 2 definitions of coloured Petri
nets and system morphisms are recalled. Then, Section 3 recalls the refinements
defined by Lakos and Section 4 the subtyping relation of Liskov and Wing. Our
new refinement rules are then defined and proven correct in Sections 5 and 6.
They are implemented in a tool for Petri net design, described in Section 7.
2</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Coloured Petri Nets and Morphisms</title>
      <p>
        In this section, we recall the necessary definitions and notations from [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
2.1
      </p>
      <sec id="sec-2-1">
        <title>Coloured Petri Nets</title>
        <p>For a type universe Σ, we denote the set of functions from one type of Σ
to another by ΦΣ = {X → Y | X, Y ∈ Σ} and by μX = {X → N} the set of
multisets over a type X ∈ Σ.</p>
      </sec>
      <sec id="sec-2-2">
        <title>Definition 1.</title>
        <p>where:</p>
        <p>A coloured Petri net is a tuple N = hP, T, A, C, E, M, Y, M0i</p>
        <sec id="sec-2-2-1">
          <title>1. P is a set of places;</title>
          <p>2. T is a set of transitions such that P ∩ T = ∅;
3. A is a set of arcs such that A ⊆ P × T ∪ T × P ;</p>
        </sec>
        <sec id="sec-2-2-2">
          <title>4. C is a colour function which associates a type with each place and transition:</title>
          <p>C : P ∪ T → Σ;
5. E is a function associating an expression with each arc: E : A → ΦΣ with</p>
          <p>E(p, t), E(t, p) : C(t) → μC(p);
6. M is the set of markings: M = μ{(p, c) | p ∈ P, c ∈ C(p)};
7. Y is the set of steps: Y = μ{(t, c) | t ∈ T, c ∈ C(t)}
8. M0 ∈ M is the initial marking.</p>
          <p>For a node x ∈ P ∪ T , we denote by
– •x the preset of x, i.e. •x = {y ∈ P ∪ T |(y, x) ∈ A};
– x• the postset of x, i.e. x• = {y ∈ P ∪ T |(x, y) ∈ A}.</p>
          <p>In the following, E− denotes the expressions of arcs from places to transitions
and E+ from transitions to places. The firing rule of a coloured Petri net is now
defined.</p>
          <p>Definition 2. Let N be a coloured Petri net. A step Y ∈ Y is firable from a
marking M ∈ M, denoted M [Y i iff M ≥ E−(Y ).</p>
          <p>
            In order to replace a node of a Petri net by a subnet during the refinement
process, the connections between these and their environment must be
considered. Therefore, we now define the border nodes on each side, adapted from [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ].
Definition 3. Let N be a Petri net, and N 0 a subnet of N .
1. The input border of N 0 is inpbdr (N 0) = {x ∈ P 0 ∪T 0|∃y ∈ (P ∪T )\(P 0 ∪T 0) :
y ∈ •x};
2. The output border of N 0 is outbdr (N 0) = {x ∈ P 0∪T 0|∃y ∈ (P ∪T )\(P 0∪T 0) :
y ∈ x•};
3. The border of N 0 is bdr (N 0) = inpbdr (N 0) ∪ outbdr (N 0);
4. The set of input environment nodes of N 0 is inpenv (N 0) = {y ∈ (P ∪ T ) \
(P 0 ∪ T 0)|∃x ∈ P 0 ∪ T 0 : y ∈ •x};
5. The set of output environment nodes of N 0 is outenv (N 0) = {y ∈ (P ∪ T ) \
(P 0 ∪ T 0)|∃x ∈ P 0 ∪ T 0 : y ∈ x•};
6. The set of environment nodes of N 0 is env (N 0) = inpenv (N 0) ∪ outenv (N 0).
Example: Let us consider the net in Figure 1, with the subnet in the large circle.
Its border sets are:
– inpbdr (N 0) = {inp1, inp2};
– outbdr (N 0) = {out1, out2};
– bdr (N 0) = {inp1, inp2, out1, out2};
– inpenv (N 0) = {te1, te2};
– outenv (N 0) = {ts1, ts2};
– env (N 0) = {te1, te2, ts1, ts2}.
2.2
          </p>
        </sec>
      </sec>
      <sec id="sec-2-3">
        <title>System Morphisms</title>
        <p>
          System morphisms were defined in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] in order to capture behaviour
compatibility between nets. In such a scheme, firing several transitions of Nr can
correspond to the firing of a single transition in Na. A step is then said to be
complete if all border transitions of Nr \ Na, i.e. the subset that remains after
Na has been removed from Nr, are fired with the same firing mode.
Definition 4. Let φ : Nr → Na. φ is a system (behavioural) morphism if:
buf
        </p>
        <p>c
c
c
c
out1
offer 1
offer 2
c
out2
ts1
ts2
1. φ is surjective on Pa, Ta, Aa;
2. φ is linear and total on the set of markings Mr and the set of steps Yr;
3. ∀Mr ∈ [M0ir, ∀Yr ∈ Yr: if Yr is complete, can be decomposed into Y1, Y2 ...</p>
        <p>Yn, and is realisable from marking Mr, then φ(Yr) can be decomposed into
φ(Y1), φ(Y2) ...φ(Yn), and is realisable from marking φ(Mr).
4. ∀Mr ∈ [M0ir, ∀Yr ∈ Yr : Yr is complete ⇒ φ(Mr + Er+(Yr) − Er−(Yr)) =
φ(Mr) + φ(Er+)(φ(Yr)) − φ(Er−)(φ(Yr)).</p>
        <p>In Definition 4, (3) indicates that when a step in Nr is decomposable, the
corresponding step can be obtained by projection on Na, while (4) states that
only the effect of a step can be projected as well.</p>
        <p>Definition 5. Let φ : Nr → Na be a system morphism. A step Yr in Nr is said
to be complete if ∀ta ∈ Ta : ∀tr ∈ bdr (Tr \ Ta) : Yr(tr) = φ(Yr)(ta)
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Existing Coloured Petri Nets Refinements</title>
      <p>
        Three types of coloured Petri nets refinements are defined by Lakos in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]:
type refinement, node refinement, and subnet refinement.
3.1
      </p>
      <sec id="sec-3-1">
        <title>Type Refinement</title>
        <p>Type refinement is used when it is necessary to detail further the description
of the information carried by tokens, and the transitions’ firing modes.
Refinement then consists in replacing an abstract token type by another one, more
detailed, called the refined type. The net structure remains unchanged. The
type modification addressed by Lakos is the addition of a component.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Subnet Refinement</title>
        <p>Subnet refinement consists in adding new elements (places, transitions and
arcs) to the net.</p>
        <p>
          [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] also considers extending type domains for places and transitions in the
abstract net, as a subnet refinement.
3.3
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Node Refinement</title>
        <p>Node refinement is used when the modeller wishes to give additional
information about one of the net elements (place or transition) by expliciting it further.
It can thus be a place refinement if details concern a place (superplace) or
transition refinement if a transition is concerned (supertransition). Lakos defined
canonical refinements for both of these cases.</p>
        <p>In its canonical form, a place refinement replaces a place by a place-bordered
subnet, whereas a transition refinement replaces a transition by a
transitionbordered subnet.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>The Sub-typing Relation</title>
      <p>
        A subtype relation was defined in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] by Barbara Liskov and Jeannette Wing
so that the supertype properties should be preserved by the subtype. The
properties considered are invariants (that should be true for any object state) and
“historical” properties (true on a state sequence). The substitutability principle
states that a subtype object could substitute a supertype object.
      </p>
      <p>Types are denoted by a triple hO, V, M i where O is a set of objects, V is a
set of values, and M is a set of methods.</p>
      <p>The type specification should contain the following information:
– the description of the set of authorised values;
– for each method, the description of (i) its signature (number and types of
arguments, result type and exceptions list), (ii) its behaviour in terms of
preand post-conditions.</p>
      <p>B. Liskov and J. M. Wing distinguish three kinds of methods, constructors that
return a new object of the type, observers that return values of other types, and
mutators that modify object values.</p>
      <p>They also identify two kinds of subtyping relations:
– Extension subtype where the subtype extends the supertype by introducing
new methods and adding new states (or values).
– Constrained subtype where the subtype constrains the supertype with more
details on the methods or on the supertype values. When the supertype
specification keeps open several possibilities, subtyping may reduce or eliminate
some of them.</p>
      <p>Considering the two kinds of subtyping relations above, we consider here the
following operations on types:
– add a component to a record
– fix a component value
– add a method
– modify a method.</p>
      <p>These operations on types appear in the subtype relations as follows.
1. Extension Subtype The operations on types considered are the introduction
of new methods and/or the addition of new states.</p>
      <p>– New method introduction
• if the method introduced is a constructor, it should take into account
the invariant preservation;
• if the method introduced is an observer, this has no consequence on
the fact that the subtype preserves the supertype properties;
• if the method introduced is a mutator, this may have consequences on
the fact that the subtype should preserve the supertype properties. After
a mutator is invoked, the new object value should belong to the set of
authorized type values (according to invariants and historical properties).
– Addition of new object states (or adding a new variable in records): this
has no effect on properties preservation, and the abstraction function
forgets the added variable.
2. Constrained Subtype The operations considered here are constraints on the
object values and/or method modification with the aim to add more
precision.</p>
      <p>
        – Constraints on the object values (this may correspond to fixing a variable
value in a record). This may be achieved by defining the set of values for
the subtype objects as a subset of the supertype values and this preserves
the supertype properties.
– Method modification. This modification must comply with the
subtyping rules defined in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], that are a rule on the signature (same number
of arguments, contravariance of arguments, covariance of result and
exception rule), and a rule on methods.
      </p>
      <p>Let us recall that if σ is a subtype of τ and mτ is the τ method corresponding
to method mσ of σ :
– arguments contravariance states that mτ and mσ should have the same
number of arguments, and type αi of the ith argument in mτ should be a subtype
of type βi of the corresponding argument in mσ.
– either mτ and mσ return a result or do not return a result. If both
methods return a result, the result covariance states that the type of the result
returned by mσ should be a subtype of the type of the result returned by
mτ .</p>
    </sec>
    <sec id="sec-5">
      <title>New Rules for Type Refinement</title>
      <p>
        An initial definition of type refinement was proposed by Lakos in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] requiring
that all behaviours of the refined type correspond to an abstract behaviour.
This constraint will be referred to as LC in the following (Lakos’s constraint).
The only operation allowed by Lakos for type refinement is the addition of a
component in a tuple. Although this kind of refinement is often used, it is still
restrictive in practical cases which allow for more substantial type modifications
and introduction of new operators on existing types.
      </p>
      <p>
        Therefore, in this section, we extend the relation between the refined type
and the abstract type by considering the sub-typing relation defined by Liskov
and Wing in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], as well as type modifications.
5.1
      </p>
      <sec id="sec-5-1">
        <title>Type modifications and behaviour preserving</title>
        <p>Data types modified
[arc expressions or methods used
in arc expressions modified]</p>
        <p>Net behaviour may be
changed ⇒ check LC</p>
        <p>When performing type refinement, the net structure remains unchanged.
Hence the only elements which may change the net behaviour are the values
of arc expressions, and transitions guards.</p>
        <p>Arc expressions Subsequently to a type refinement, an arc expression function
might be modified. Figure 2 summarises the impact of type modification on arc
expressions.</p>
        <p>In the following, Er denotes arc expressions in the refined net, and
corresponding arc expression in the abstract net.</p>
        <p>Ea the
Unchanged arc expressions If the arc expression is the same, i.e. Er = Ea, the
following cases may occur:
1. adding a component to a tuple, setting the value of a component, adding a
method, are changes that respect LC;
2. modification of a method leads to the following situations:
– Ea does not refer to a method modified by the refinement. The values
returned by Er and Ea are thus the same, and the net behaviour remains
unchanged ;
– Ea refers to methods changed by the refinement. Hence, although the
expressions are the same, the values returned by Er and Ea may differ.
Therefore the behaviour can be different as well, and we need to check
that the effect of firing for each firing mode in the refined net is the same,
once abstracted, as for the corresponding firing in the abstract net.
Modified arc expressions When an arc expression is modified due to the
refinement process, values of Er and Ea may differ, whatever the refinement operation.
Hence, adding a component, setting the value of a component, adding a method
may all modify the net behaviour. The expression modification should be
performed so that it satisfies LC.</p>
      </sec>
      <sec id="sec-5-2">
        <title>Guards associated with transitions Type refinement does not change the</title>
        <p>expression associated with a guard. However, two cases may occur (see Fig. 3):
– the guard does not refer to a method modified by the type refinement: it has
thus no influence on the transition behaviour;
– the guard refers to methods modified by the type refinement. Hence the
values returned by the refined and abstract guard expressions may differ.
If the guard returns true in the refined net, it must also return true in the
abstract net.
5.2</p>
      </sec>
      <sec id="sec-5-3">
        <title>Example: request for material purchase</title>
        <p>The net in Fig. 4(a) models a request for material issued from e.g. a
service to the accountant. When material is needed, a request is issued. After the
accountants check the request, they order the articles.</p>
        <p>In a first approach to modelling the problem, the net describing the overall
process can de considered. It uses a neutral colour, as shown in Fig. 4(a).</p>
        <p>Then additional detail can be introduced, giving characteristics of the article
to order, i.e. its number, its designation (name), its origin, the quantity required
(qty) and the unitary price. The new type is thus obtained by adding
components, as shown in the declarations below and Fig. 4(b). In this case, no arc or
guard expression is changed, therefore LC is satisfied. It is also consistent with
the subtyping conditions.</p>
        <p>In order to take into account calls for offers when the price is above a
certain level, a method is added which returns the total amount of the purchase
Type modification
[Type methods changed in guards]</p>
        <p>Check that a guard
returning true for a refined marking
also returns true for the
corresponding abstract marking
x
y
z</p>
        <p>Buy
Buy
x
y
z</p>
        <p>DOT
Delivered
ARTICLE
Delivered
ARTICLE_1
Delivered
price ∗qty (see type ART ICLE_1) in the declarations and Fig. 4(c)). This
modification adds an observer method which returns a value, and is consistent with
the subtyping relation. It is not used in arc or guard expressions, and therefore
LC holds.</p>
        <p>Declarations:
DOT is a predefined neutral type
Colset ARTICLE = record number:NAT * origin:STRING *</p>
        <p>name:STRING * price:Rat * qty:Rat;
Colset ARTICLE_1 = record number:NAT * origin:STRING *
name:STRING * price:Rat * qty:Rat;
fun amount = (#price ARTICLE_1 * #qty ARTICLE_1)::Rat;
var x : DOT;
var y : ARTICLE;
var z : ARTICLE_1;
var name : STRING;
var price : Rat;
var qty : Rat;
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>New Rules for Transition Refinement: Alternate</title>
    </sec>
    <sec id="sec-7">
      <title>Transitions</title>
      <p>The canonical transition refinement proposed by Lakos, firing an abstract
transition features firing a set of sequences of refined transitions, starting with
transitions from the input border and ending with transitions from the output
border of the refined part.</p>
      <p>The underlying idea of the new refinement we propose here is to replace an
abstract transition by a subnet containing alternative transitions plus internal
places and transitions. Each of the alternative transitions is abstracted as the
original abstract transition. This refinement aims at splitting a transition
describing a general behaviour into several exclusive cases which then handle in
more detail specific situations. For example, the net in Fig. 5(b) is a refinement
of the one in Fig. 5(a): transition ta is replaced by a subnet Nta . To improve
readability, ta has a single input place and a single output place (but this is not
a constraint in the general case).</p>
      <p>Definition 6. Let Nta = (Pta , Tta , Ata , Cta , Eta , Mta , Yta , Mta0 ) be a subnet.
A morphism
φ : Nr = (Pr, Tr, Ar, Cr, Er, Mr, Yr, Mr0)</p>
      <p>→ Na = (Pa, Ta, Aa, Ca, Ea, Ma, Ya, Ma0)
is a refinement with alternative transitions of ta ∈ Ta, where Nr is the refined
net obtained by replacing abstract transition ta by Nta ) in the abstract net Na if:
1. ∀pr ∈ Pr \ Pta : ∀tr ∈ Tr \ Tta :
φ(pr) = pr ∧ φ(tr) = tr ∧
(pr, tr) ∈ Ar ⇒ ((pr, tr) ∈ Aa ∧ Er(pr, tr) = Ea(pr, tr)) ∧
(tr, pr) ∈ Ar ⇒ ((tr, pr) ∈ Aa ∧ Er(tr, pr) = Ea(tr, pr)). Apart from
transition ta the abstract net remains unchanged.
2. Tta = Talternative ∪ Tother The transitions replacing ta are of two kinds: the
alternatives, and the others.
3. ∀t ∈ Talternative , •ta = •t \ Pta ∧ ∀p ∈ •ta : Ea(p, ta) = Er(p, t)
All input places of ta are also input places of all alternative transitions, and
are the only such abstract places.
4. ∀t ∈ Talternative , t•a = t• \ Pta ∧ ∀p ∈ t•a : Ea(ta, p) = Er(t, p)</p>
      <p>All output places of ta are also output places of all alternative transitions,
and are the only such abstract places.
5. ∀M ∈ Mr : ∀t0 ∈ Talternative :
φ(M )[ta &gt; ∧ M [t0 &gt; ⇒ ∀t ∈ Talternative \ {t0}, ¬(M [ t &gt;)</p>
      <sec id="sec-7-1">
        <title>There is at most one alternative transition that is firable in a given mark</title>
        <p>ing (so that the token flow is preserved). This can be ensured by guards or
internal places of the Nta subnet.</p>
        <p>E1</p>
        <p>T</p>
        <p>E2</p>
        <p>pout
(a) Abstract transition to be refined
[guard1]
talter1
taltern
[guardn]
pin
1</p>
        <p>E
E
1</p>
        <p>E
2
2
E</p>
        <p>pout
(b) Refinement of transition ta
6. ∀t ∈ Talternative ∧ ∀c ∈ Cr(t) : φ(1 ‘(t, c)) = 1 ‘(ta, φ(c))</p>
        <p>Firing an alternative transition has the same effect as firing ta. Firing a step
in the refined net has the same effect as in the abstract net.
7. ∀p ∈ Pr : ∀c ∈ Cr(p) : φ(1 ‘(p, c)) = 1 ‘(p, c) if pr ∈ Pr \ Pta , φ(1 ‘(p, c)) = ∅
otherwise.</p>
        <p>The internal marking of Nta is ignored by the refinement.</p>
      </sec>
      <sec id="sec-7-2">
        <title>Proposition 1. A refinement with alternative transitions systems morphism.</title>
      </sec>
      <sec id="sec-7-3">
        <title>Proof.</title>
        <p>According to definition 6(1) φ is surjective over Pa, Ta, Aa.
φ :Nr →</p>
        <p>Na is a
From (8), the abstract marking is obtained by ignoring the subnet marking.
Hence, φ is linear and total over Mr.</p>
        <p>From (6), the firing of an alternative transition corresponds to firing the abstract
transition. Hence, φ is linear and total over Yr.</p>
        <p>From (6) ∀Yr ∈ Yr, Yr is complete since only one of the alternative transitions
can be fired in a given marking.</p>
        <p>From (3), (4) and (7), ∀Yr ∈ Yr, ∀Mr ∈ Mr si Mr ≥ Er−(Yr) then
φ(Mr) ≥ φ(Er−)(φ(Yr)) and
φ(Mr + Er+(Yr) − Er−(Yr)) = φ(Mr) + φ(Er+)(φ(Yr)) − φ(Er−)(φ(Yr)).
φ(Mr +Er+(Yr)−Er−(Yr)) is the effect after abstraction of the firing of the refined
step Yr from the refined marking Mr and φ(Mr) + φ(Er+)(φ(Yr)) − φ(Er−)(φ(Yr))
the effect of the firing of the abstract step φ(Ya) from the abstract marking
φ(Ma).</p>
        <p>Let us consider again the example of Sect. 5.2, with the abstract net in
Fig. 6(a). We now want to explicit the accounting rules: if the amount of the
purchase is greater than some limit, a call for offers must be issued (see Fig. 6(b)).</p>
        <p>Transition Buy has been replaced by two alternative transitions: Direct
purchase et Ask offer.</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>CPN Refiner: Tool Support for Modelling</title>
      <p>
        We designed CPN Refiner so as to support the development of coloured Petri
nets following the approach proposed in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and the refinement techniques
proposed in this paper.
      </p>
      <p>
        Let us recall that the Petri net development method presented in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] proposes
the following steps: (i) analyse the text describing the problem and extract the
events (yielding a state change), state observers, data types, and possibly the
modules, (ii) establish the system properties (in particular pre and
postconditions of events), (iii) build the coloured Petri net, (iv) check the resulting net
properties (some are built-in, but others can be model checked), and update it
if necessary.
      </p>
      <p>CPN Refiner supports both the coloured Petri net development given the
(typed) state observers and the events (together with their pre and
postconditions), and its refinement. CPN Refiner supports node refinement and subnet
refinement according to the principles stated in this paper. Type refinement is
supported via a mere type modification.</p>
      <p>Figure 7 shows the screen where the user entered the state observers and the
events for a workshop example, and the generated Petri net is shown in Figure 8.
A refined Petri net obtained through alternate transition refinement is shown in
Figure 9.</p>
      <p>CPN Refiner is build using Java Swing (Eclipse), API JDOM to handle the
XML resulting file, library JGraph for the graphical presentation Petri nets.
8</p>
    </sec>
    <sec id="sec-9">
      <title>Conclusion and Perspectives</title>
      <p>Refinement is used to build a more detailed model (the refined model) from an
abstract model. Several refinement notions have been proposed for different aims
and various languages, and the work of Lakos deals with refinement for coloured
Petri nets. An important point he states is that a model R is a refinement of
a model A if for each behaviour of R there is a corresponding behaviour of A.
More specifically, he defines three kinds of refinement, type refinement, node</p>
      <p>Fig. 9. Workshop example: refined Petri net
refinement (for places or transitions), and subnet refinement, so as to insure this
behaviour correspondence.</p>
      <p>In this paper, we extend the type refinement and the node refinement
proposed by Lakos. For type refinement, we propose two constraints. The subtype
relation as defined by Liskov and Wing that should exist between the refined and
the abstract type, and Lakos’ refinement relation between the refined and the
abstract model. We consider four operations on types, that are to add a
component, to fix a component value, to add a method, and to modify a method. We
studied the conditions that ensure that these operations guarantee both Liskov
and Wing subtyping relation and Lakos refinement relation. We also extend the
node refinement with a new rule for transitions refined by alternate transitions.
This new rule complies with Lakos’ refinement principle.</p>
      <p>
        A model development method was proposed for coloured Petri nets in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
We developed a tool, CPN-Refiner, for model development of coloured Petri
nets following this method, and integrated in this tool the refinement techniques
presented here [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. In the future, we plan to develop large case studies using our
method and our tool. We also plan to work on property refinement. Interface
with other tools like CPN Tools [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] or CosyVerif [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is also subject of future
work, which should be eased since CPN Refiner uses PNML [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>CPN</given-names>
            <surname>Tools</surname>
          </string-name>
          <article-title>Homepage</article-title>
          . http://cpntools.org/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>2. PNML reference site</article-title>
          . http://pnml.org/.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>C.</given-names>
            <surname>Choppy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Petrucci</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Reggio</surname>
          </string-name>
          .
          <article-title>Designing coloured Petri net models: a method</article-title>
          .
          <source>In Proc. Workshop on Practical Use of Coloured Petri Nets</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. CosyVerif group, The.
          <article-title>CosyVerif home page</article-title>
          . http://cosyverif.org.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Charles</given-names>
            <surname>Lakos</surname>
          </string-name>
          .
          <article-title>On the abstraction of coloured Petri nets</article-title>
          .
          <source>In 18th Int. Conference on Application and Theory of Petri Nets ICATPN '97</source>
          , volume
          <volume>1248</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>42</fpage>
          -
          <lpage>61</lpage>
          . Springer-Verlag,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Charles</given-names>
            <surname>Lakos</surname>
          </string-name>
          .
          <article-title>Composing abstractions of coloured Petri nets</article-title>
          . In Nielsen, M. and
          <string-name>
            <surname>Simpson</surname>
          </string-name>
          , D., editors,
          <source>21st Int. Conf. on Application and Theory of Petri Nets (ICATPN)</source>
          ,
          <source>volume 1825 of Lecture Notes in Computer Science</source>
          , pages
          <fpage>323</fpage>
          -
          <lpage>345</lpage>
          . Springer-Verlag,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Charles</given-names>
            <surname>Lakos</surname>
          </string-name>
          and
          <string-name>
            <given-names>Glenn</given-names>
            <surname>Lewis</surname>
          </string-name>
          .
          <article-title>A catalogue of incremental changes for coloured Petri nets</article-title>
          .
          <source>Technical report</source>
          , Department of Computer Science, University of Adelaide,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Glenn</given-names>
            <surname>Lewis</surname>
          </string-name>
          .
          <article-title>Incremental specification and analysis in the context of coloured Petri nets</article-title>
          .
          <source>PhD thesis</source>
          , University of Hobart, Tasmania,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Barbara</given-names>
            <surname>Liskov and Jeannette M. Wing</surname>
          </string-name>
          .
          <article-title>Family values: A semantic notion of subtyping</article-title>
          .
          <source>Technical report</source>
          , Pittsburgh, PA, USA,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Barbara</given-names>
            <surname>Liskov and Jeannette M. Wing</surname>
          </string-name>
          .
          <article-title>A new definition of the subtype relation</article-title>
          .
          <source>In Proceedings of the 7th European Conference on Object-Oriented Programming, ECOOP '93</source>
          , pages
          <fpage>118</fpage>
          -
          <lpage>141</lpage>
          , London, UK,
          <year>1993</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Barbara</surname>
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Liskov</surname>
          </string-name>
          and
          <string-name>
            <surname>Jeannette M. Wing</surname>
          </string-name>
          .
          <article-title>A behavioral notion of subtyping</article-title>
          .
          <source>ACM Trans. on Programming Languages and Systems</source>
          ,
          <volume>16</volume>
          (
          <issue>6</issue>
          ):
          <fpage>1811</fpage>
          -
          <lpage>1841</lpage>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>Alfred</given-names>
            <surname>Sanogo</surname>
          </string-name>
          .
          <article-title>Raffinement des réseaux de Petri colorés</article-title>
          .
          <source>PhD thesis</source>
          , Université Paris 13,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>