<!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>A Multivalued, Spatialized, and Timed Modelling Language for Social-Ecological Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Franck Pommereau</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cédric Gaucherel</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>AMAP-INRAE, CIRAD, CNRS, IRD, Univ. Montpellier</institution>
          ,
          <addr-line>34398 Montpellier</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>IBISC, Univ. Évry, Univ. Paris-Saclay</institution>
          ,
          <addr-line>91020 Évry-Courcouronne</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <fpage>13</fpage>
      <lpage>32</lpage>
      <abstract>
        <p>The eden framework provides tools for the formal modelling and analysis of social-ecological systems and their dynamics. In particular, it features the rr modelling language (for reaction rules) that allows defining systems as Boolean variables and guarded actions to update them. This language is equipped with a compact semantics in terms of Petri nets extended with read-arcs, inhibitor arcs, reset arcs, and transition priorities. Apart from the last one, these extensions can be implemented in standard Petri nets at the price of building bigger nets. In this paper, we extend the rr language with multivalued variables, spatial information inspired by membrane computing, and timing. The resulting language, called mrr (for multivalued rr), is equipped with a compact colored Petri nets semantics extended with only transition priorities.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;formal modelling and analysis</kwd>
        <kwd>social-ecological systems</kwd>
        <kwd>multivalued variables</kwd>
        <kwd>spatialized systems</kwd>
        <kwd>timed systems</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        The eden framework has been developed and used in the field of ecology for years [
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5 ref6">1, 2, 3, 4, 5, 6</xref>
        ].
It provides a formal language called rr that can be used to model social-ecological systems, and the
tool ecco that allows for analyzing their properties [
        <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
        ]. From the beginning, eden has promoted
abstraction as a path to generalization [
        <xref ref-type="bibr" rid="ref4 ref7 ref9">4, 7, 9</xref>
        ]. Indeed, data about ecosystems are often very sparse and
trying to model precisely partially known systems leaves gaps that are hard to fill without “forging” new
data. By staying with abstract models, it is possible to render available knowledge with an adequate
precision, leaving details blur where data is lacking. A typical example is the rendering of a population
of animals through a single Boolean variable that can be interpreted as “enough” or “not enough”
individuals, according to some threshold, for having an observable efect on the system [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        However, having only Boolean variables sometimes requires awkward modelling tricks, which
leads to the need for multivalued variables. For instance, a population of animals may have distinct
efects on the system depending on distinct thresholds that are known to exist even if not precisely
quantified. In such a case, we would like to move from “not enough”/“enough” to, for instance, “not
enough”/“low”/“high” [
        <xref ref-type="bibr" rid="ref10 ref9">9, 10</xref>
        ]. Another example where multivalued variables is desired is the modelling
of seasons. Having four Boolean variables for the four seasons requires strong modelling discipline
in order to ensure that exactly one is on at every state, and at the same time, it makes states more
convoluted as four variables have to be examined to read the season [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        This paper extends the rr language [
        <xref ref-type="bibr" rid="ref11 ref4 ref7">4, 7, 11</xref>
        ] by adding multivalued variables. Doing so, we are able
to introduce a representation of time borrowed from [
        <xref ref-type="bibr" rid="ref12 ref13">12, 13</xref>
        ]. It consists in modelling clocks as counters
equipped with ticks that increment them, which has been called causal time because clock ticks may
causally depend on other events. Having time is crucial to represent loosely coupled phenomena, for
instance one may want to specify that a process always evolves faster than another one, or that two
processes have speeds in the same order of magnitude, which is dificult if not impossible without a
model of time.
      </p>
      <p>
        Finally, we further extend rr with a representation of spatial information inspired from membrane
systems [
        <xref ref-type="bibr" rid="ref14 ref15">14, 15</xref>
        ] (also called P-systems). This feature has been requested by many users over the years
as ecosystems generally present strongly spatialized structures. While this can be rendered with tricks
such as prefixing the variables names with the locations they belong to, it quickly leads to awkward
and convoluted models. Having this information in the modelling language leads to simpler models
that express more naturally and more accurately the ecological knowledge.
      </p>
      <p>
        In this paper, we thus present the mrr language that extends rr with these three aspects. Both
languages use discrete variables, with actions to model their changes. Actions are split into rules and
constraints, the latter having a higher priority. Actions are composed of a guard on the variables, and a
series of assignments to update them. An mrr system consists of as a set of nested locations in which
the variables and actions are declared. Each action may refer only to the variables in the same location
where it was defined, or those in the location that immediately contains it, or those in the locations
immediately contained in it. Variables in mrr are allowed to have several initial states, which means
that the system itself is analyzed starting from several initial states [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. But at any state the system can
reach, every variable has only a single value. Variables are either single-valuated or array-valuated and
may range over Boolean or ranges of integers. Clocks may be defined in the top location, each being a
time reference responsible for incrementing a set of variables as it ticks. The mrr language is equipped
with an operational semantics as well as with a consistent Petri nets semantics. The tool ecco [
        <xref ref-type="bibr" rid="ref7 ref8">8, 7</xref>
        ],
that implements rr analysis, has been extended to support mrr while preserving its approach and
spirit.
      </p>
      <p>The next section describes the syntax and semantics of mrr, with an example to illustrate the
operational semantics. Since mrr is an extension of rr, references to the latter will point out where
the languages coincide. The Petri nets semantics is defined in Section 3. Section 4 describes the
implementation of mrr in ecco, and shows a second example that is quickly analyzed within ecco.
Before the conclusion, related works are presented and discussed.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Syntax and operational semantics</title>
      <p>We start with a presentation of the concrete mrr language, from a modeller’s perspective. The concrete
syntax is given for reference in Figure 1, but it is presented more intuitively below. The end of the
section will define the language from a more abstract perspective, which will allow giving its formal
semantics.</p>
      <p>The structure of an mrr file is as follows:
1 clocks:
2 # here: clocks declarations
3 variables:
4 # here: variables declarations
5 # here: locations declarations
6 constraints:
7 # here: constraints declarations
8 rules:
9 # here: rules declarations
Above, #... are comments that start with # and end at the end of the line. Every part above is
optional and may be skipped, but if a section (e.g. variables: ) is used, then it must not be empty,
and its whole content should be indented. mrr is using indentation as blocks delimitation like in the
Python programming language.</p>
      <sec id="sec-2-1">
        <title>2.1. Clocks</title>
        <p>Every clock is declared as NAME: description on a single line. NAME must start with a letter and
may continue with letters or digits. The name given to each clock will be used later on to link variables
to this clock, in order to indicate that the linked variables have to be incremented when the clock ticks.
system
clocks
clockdecl</p>
        <p>model
variables
constraints</p>
        <p>rules
location
vardecl</p>
        <p>type
scalar</p>
        <p>init
simpleinit</p>
        <p>var
index
quantifier</p>
        <p>NAME</p>
        <p>NAT
INT</p>
        <p>CMP
DESC
∣
∣
actdecl ∶∶=
condition ∶∶=</p>
        <p>∣
assignment ∶∶=
∶∶=
∶∶=
∶∶=
∶∶=
∶∶=
∶∶=
∶∶=
∶∶=
∶∶=</p>
        <p>∣
∶∶=
∶∶=</p>
        <p>∣
∶∶=
∶∶=</p>
        <p>∣
∶∶=
∶∶=</p>
        <p>
          ∣
∶∶=
∶∶=
∶∶=
∶∶=
∶∶=
∶∶=
[clocks] model
“clocks:” ↲ →∣ clockdecl+ ∣ ←
NAME “:” DESC ↲
[variables] location∗ [constraints] [rules]
“variables:” ↲ →∣ vardecl+ ∣ ←
“constraints:” ↲ →∣ actdecl+ ∣ ←
“rules:” ↲ →∣ actdecl+ ∣ ←
“location” NAME [“[” NAT “]”] “:” ↲ →∣ model ∣ ←
type NAME “=” init “:” DESC ↲
NAME /[+*-]/ “:” DESC ↲
scalar [“[” NAT “]”]
“bool”
“{” [NAME “:”] INT “..” INT “}”
simpleinit (“|” simpleinit)∗
INT [“..” INT]
“(” simpleinit (“,” simpleinit)∗ “)”
“*”
[“[” /[^\]]+/ “]”] condition (“,” condition)∗
“&gt;&gt;” assignment (“,” assignment)∗ [quantifier] ↲
(var ∣ INT) CMP (var ∣ INT)
var /[+-]/
var /[+-]?=/ (var ∣ INT)
var /[+*-]|\+\+|--/
NAME [“[” index “]”] [“@@” ∣ “@” NAME [“[” index “]”]]
NAT
NAME [(“+” ∣ “-”) NAT]
“for” (“any” ∣ “all”) NAME (“,” NAME)∗ (“,” quantifier)∗
/[a-z][a-z0-9]*/
/[
          <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5 ref6 ref7 ref8 ref9">0-9</xref>
          ]+/
/[+-]?[
          <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5 ref6 ref7 ref8 ref9">0-9</xref>
          ]+/
/==|&lt;=|&lt;|&gt;=|&gt;|!=/
/[^\n\r]+/
        </p>
        <p>
          mrr is using the so-called causal time model of time in which a time reference is just a tick event in
the system that increments variables used to measure the passing of time by counting the ticks [
          <xref ref-type="bibr" rid="ref12 ref13">12, 13</xref>
          ].
In this perspective, one builds chronometers as simple counters that get automatically incremented as
time passes, that is, when tick events occur. These chronometers then become the time reference used
throughout the model. It has been proved that this approach is a valid representation of time, measured
discretely [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. In mrr, chronometers are built in two steps; first we declare a clock as presented above,
then we link a counter to it in order to have it incremented upon clock ticks.
        </p>
        <p>
          In mrr, clocked variables (i.e. integer variables linked to clocks) are necessarily bounded as mrr only
allows finite ranges for every variable. This ensures that every state-space (often called state-transition
graph [18, Sec. 1.1] in ecology) is finite, even if it may be so huge that it cannot be computed. This has a
consequence that is well known in causal time approaches: when a clocked variable has reached its
maximal value, the corresponding tick cannot occur anymore as it would overcome the variable range.
So time progression is blocked, but only in appearance. Indeed, when using causal time, two situations
become logically equivalent:
• an action will always be taken before the next tick;
• no tick can occur until the action has been taken.
This is also called the deadline paradox that disappears when time is treated in a strictly causal way [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ].
So, giving a bound to variables is a way to specify structural deadlines, or hard deadlines, which are
deadlines that the system cannot violate in any situation. This difers from soft deadlines, or alarms,
that are deadlines the system can violate, in which case it will start special behavior in reaction to the
violation, like raising an alarm. mrr has provisions to avoid having to manage the structural deadlines
that every clocked variable creates. It is possible in mrr to reset a clock variable to a special value *
that lets time pass and ticks occur without changing the clocked variable. So, when a clocked variable
is not used to measure anything, it can be set to * , but when one needs to measure the time between
two actions, it can be assigned to 0 in one action and tested in a later action. Structural deadline are
directly implemented by the maximum value of clocked variables, and alarms can be implemented as
constraints whose priorities guarantee that every violated deadline is detected immediately.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Variables</title>
        <p>The simplest form of a variable declaration in mrr is, like in rr, one of:
• NAME+: description to declare a Boolean variable initialized on;
• NAME-: description to declare a Boolean variable initialized off;
• NAME*: description to declare a Boolean variable with two initial states on and off.
More generally, a variable is declared as TYPE NAME = INIT: description where:
• TYPE is the type of the variable, i.e. the range of values it can hold, which can be:
– bool for a Boolean variable,
– {MIN..MAX} for an integer variable ranging from MIN to MAX ,
– {CLOCK: MIN..MAX} for an integer variable that is incremented when CLOCK ticks;
• NAME is the name of the variable that is used to refer to it within actions, this name must be
unique at the level of the location where it is declared;
• INIT is the set of initial values for the variables:
– INT specifies a single value,
– INT..INT specifies a full range of values,
– INIT|INIT specifies the union of two sets of values,
– * specifies the full range of possible values for the variable.</p>
        <p>For instance, declaration {0..1} var = 0: my variable is equivalent to the shorter declaration
bool var = 0: my variable (because Boolean are implemented as 0/1-valuated integers), or the even
shorter var-: my variable . Declaration {0..4} level = 2: a description is a declaration of
a variable called level that ranges between 0 and 4 and is initially set to 2.</p>
        <p>Note that, when a variable is clocked, initial value * has the special meaning that time can pass
without changing the variable.</p>
        <p>
          Finally, variables may be declared as arrays by adding [SIZE] after their type, where SIZE is
a positive integer value. In such a case, INIT may be a single initialization as above to set all the
array to the same initial value, or a sequence of initialization to set diferent initial values for each cell.
For instance bool[
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] vec = (0, 1, 0, 0): my array is a declaration of a Boolean array of size 4
whose cells are all initialized to 0 except for the second one that is initialized to 1.
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Nested locations</title>
        <sec id="sec-2-3-1">
          <title>A nested location is declared as follows:</title>
          <p>1 location NAME:
2 variables:
3 # ...
4 # here: further nested locations
5 constraints:
6 # ...
7 rules:
8 # ...
location NAME: introduces the new location, and its content is indented and corresponds exactly to
the structure described above for the top location, except that clocks are not allowed here. Contrasting
with the top location that has no name, a nested location is always named, and its name must be unique
at the level of the location where it is declared. It is also possible to declare an array of locations by
adding [SIZE] after its name, where SIZE is a positive integer value:
1 location NAME[SIZE]:
2 # as previously
Arrays of locations are convenient for declaring several identical locations that will evolve independently
during the execution.</p>
        </sec>
      </sec>
      <sec id="sec-2-4">
        <title>2.4. Actions: constraints and rules</title>
        <p>Actions are all declared the same way, but in two separate sections to distinguish between constraints
and rules. The only diference is that constraints execute with a higher priority. Every action is declared
following the same structure [TAG, ...] COND, ... &gt;&gt; ASSIGN, ... QUANT where:
• [TAG, ...] is an optional comma-separated sequence of arbitrary tags that decorate the action,
at the level of mrr they have no special meaning, but they may be used during the analysis;
• COND, ... is a mandatory comma-separated sequence of conditions, all of which must be
validated to allow the execution of the action;
• ASSIGN, ... is a mandatory comma-separated sequence of assignments, all of which is
performed upon the execution of the action;
• QUANT is a quantification of the free variables used in each COND or ASSIGN (see below).
A COND must be one of:
• VAR OP VAL or VAL OP VAR to compare a variable to a value;
• VAR OP VAR to compare two variables;
• VAR+ like in rr, that is here a shorthand for VAR==1 ;
• VAR- like in rr, that is here a shorthand for VAR==0 ;
where OP is one of == , != , &lt; , &gt; , &lt;= , &gt;= . Every VAR must be either:
• NAME to refer to a variable declared in the same location as the action;
• NAME[IDX] to refer to a cell of an array declared in the same location;
• NAME@LOC to refer to a variable declared in a location named LOC nested immediately inside
that where the action is defined;
• NAME[IDX]@LOC to refer to an array in nested location LOC ;
• NAME@LOC[IDX] to refer to a variable declared in a nested array of locations;
• NAME[IDX]@LOC[IDX] to refer to an array declared in a nested array of locations;
• NAME@@ to refer to a variable declared in the enclosing location;
• NAME[IDX]@@ to refer to an array declared in the enclosing location.
Then, every IDX must be either an integer literal, a free variable (a name that does not refer to a known
variable, clock, or location), or a simple expression as i+1 or i-2 involving a free variable, plus or
minus operator, and a constant. We will come back to free variables below.</p>
        <p>On the right-hand side of an action, following &gt;&gt; , every ASSIGN must be one of:
• VAR = EXPR to assign a new value expressed by EXPR to TARGET ;
• VAR += EXPR or VAR -= EXPR to perform so-called augmented assignment;
• VAR++ , VAR-- as shorthands for the longer forms above;
• VAR+ like in rr, that is here a shorthand for VAR=1 ;
• VAR- like in rr, that is here a shorthand for VAR=0 ;
• VAR* that is a special form reserved to clocked variables that lets time pass (i.e. ticks occur)
without changing the variable.</p>
        <p>Here VAR is as described for conditions, and EXPR must be either another VAR or an integer.</p>
        <p>As presented above, an IDX may refer to free variables, e.g. we could have an action such as
array[i]&lt;2 &gt;&gt; array[i]++ . Such an action needs to be completed by a quantifier for i in order to
specify its semantics.</p>
        <p>
          First, array[i]&lt;2 &gt;&gt; array[i]++ for all i means that the condition and assignment will be
evaluated for all the possible values of i , which depends on the declaration of the array and on its
size in particular. Assuming, for instance, that array was declared with size 2, the action above
is equivalent to array[0]&lt;2, array[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]&lt;2 &gt;&gt; array[0]++, array[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]++ which indeed checks the
condition and perform the assignment for all possible i .
        </p>
        <p>
          Then, array[i]&lt;2 &gt;&gt; array[i]++ for any i means that the condition and assignment will be
evaluated using any but only one of the possible values of i . Assuming the same size, this is equivalent
to having actually two actions: array[0]&lt;2 &gt;&gt; array[0]++ and array[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]&lt;2 &gt;&gt; array[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]++ .
        </p>
        <p>In general, quantifiers may be combined arbitrarily when there is more than one free variable. For
instance, arr[i]&gt;vec[j] &gt;&gt; tab[k]++ for all i, j, for any k is a valid action assuming arr ,
vec , and tab are arrays.</p>
        <p>To conclude on arrays within actions, one special free variable self needs no quantification and
can be used only from within an array of locations, in which case it refers to the index within the array
of the location that executes the action. This is illustrated just below.</p>
      </sec>
      <sec id="sec-2-5">
        <title>2.5. Example</title>
        <p>This model has a static number of nests and animals in each nest, but this can be changed easily thanks
to the #define directives at the beginning. An mrr model is always passed to the C preprocessor
before it is parsed, so mrr supports the full range of C preprocessor directives even if not all are
meaningful in this context.</p>
      </sec>
      <sec id="sec-2-6">
        <title>2.6. Abstract syntax and flattening</title>
        <p>An mrr system and its constituting elements will be formally defined in terms of structures with typed
ifelds, like in programming languages, and we will use the dot notation to access these fields. For
instance, if  is a structure ⟨clocks∣ top⟩ then .clocks and .top are its two fields. We implement
value * used to assign clocked variables as −1, thus, we assume that the domain of every clocked
variable, is augmented with value −1 that does not need to be declared in the concrete syntax but will
be present in the abstract syntax so that variables are valued in Z instead of in N. Then, we consider a
set I of identifiers, i.e. arbitrary names including forms like nest[0] that is considered as an identifier.
Names can be combined with dots, to form new names, for instance, if nest[0] and in are identifiers,
then nest[0].in is also an identifier.</p>
        <p>Definition 1 ( mrr abstract syntax). A variable is a structure ⟨name∣ dom∣ init∣ clock⟩ where:
• name ∈ I;
• dom ⊂ Z is its domain;
• init ⊆ dom is its set of initial values;
• clock ∈ I ∪ {⊥} is its clock, if any.</p>
        <p>A condition is a structure ⟨left∣ op∣ right⟩ where:
• target ∈ I;
• value is an expression or a value in Z, the augmented assignments allowed by the concrete syntax
are thus here translated to regular assignments.
• left ∈ I;
• op ∈ { == , != , &lt; , &gt; , &lt;= , &gt;= };
• right ∈ I ∪ Z.</p>
        <p>An expression is a structure ⟨left∣ op∣ right⟩ where:
• left ∈ I;
• op ∈ { + , - , * , / };
• right ∈ I ∪ Z.</p>
        <p>An assignment is a structure ⟨target∣ value⟩ where:
An action is a structure ⟨left∣ right∣ tag⟩ where:
• left is a set of conditions;
• right is a set of assignments;
• tag is arbitrary text.
• name ∈ I;
• vars is a set of variables;
• locs is a set of locations;
• cons is a set of actions;
• rules is a set of actions.</p>
        <p>A location is a structure ⟨name∣ vars∣ locs∣ cons∣ rules⟩ where:
An mrr system is a structure ⟨clocks∣ top⟩ where:
• clocks ⊂ I;
• top is a location such that top.name = .</p>
        <p>An mrr system  so defined must validate varied constraints, in particular no two items declared
at the same level can have the same name. For instance, for every location , we must have {.name},
{.name ∣  ∈ .vars}, {.name ∣  ∈ .locs}, and .clocks be pairwise disjoint. Moreover, a variable
cannot be assigned twice in the right-hand-side of an action. Finally, in an mrr obtained from the
concrete syntax, the identifiers involved in actions must be either:
• names of variables defined in the same location as the action;
• names of the form ..name to refer to variables defined in the enclosing location;
• names of the form .name to refer to variables defined in a sub-location .</p>
        <p>
          With respect to the concrete syntax defined in the beginning of the section, the abstract syntax
does not provide arrays that are thus unrolled into their components. Thus, a variable bool[
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] b
is considered as two variables b[0] and b[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] ranging on {0, 1}. And similarly with arrays of
locations. In this latter case, self is statically replaced with the index of the location when it is
unrolled. Moreover, for all and for any are also unrolled by copying the terms in the former case
and copying the whole action in the latter case.
        </p>
        <p>
          Finally, an mrr system can be flattened by defining all its variable in its top-level locations with a
name referring to their paths within the nested structures. For instance, the variables in the model from
Figure 2 can be flattened as out[0], out[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], . . . , nest[0].in, nest[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].in, . . . , nest[0].time, nest[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].time,
. . . , depending on NUM . And then actions can also be all defined at the top-level by replacing the
variables they involve by their flattened names. Such a flattened system has only a top-location with no
nested locations and is much handier to define the operational and Petri nets semantics. Figure 3 shows
how the model from Figure 2 is flattened.
– ⟨left∶ { out[0]&gt;0 } ∣ right∶ { out[0]-=1 , nest[0].in+=1 , nest[0].time=-1 }⟩
– ⟨left∶ { out[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]&gt;0 } ∣ right∶ { out[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]-=1 , nest[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].in+=1 , nest[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].time=-1 }⟩
– ⟨left∶ { nest[0].in&gt;1 } ∣ right∶ { nest[0].in-=1 , out[0]+=1 }⟩
– ⟨left∶ { nest[0].in==1 } ∣ right∶ { nest[0].in=0 , out[0]+=1 , nest[0].time=0 }⟩
– ⟨left∶ { nest[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].in&gt;1 } ∣ right∶ { nest[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].in-=1 , out[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]+=1 }⟩
– ⟨left∶ { nest[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].in==1 } ∣ right∶ { nest[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].in=0 , out[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]+=1 , nest[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].time=0 }⟩
        </p>
      </sec>
      <sec id="sec-2-7">
        <title>2.7. Operational semantics</title>
        <p>The state of a flattened mrr system is a vector of integers indexed by its variables. For a state  and a
variable , we denote by [] the value of  at state . From the declarations of these variables, several
initial states may be defined. Our example, however, has a unique initial state.</p>
        <p>Definition 2 (Operational semantics).
.top.cons ∪ .top.rules is enabled if:</p>
        <p>Let  be a flattened
mrr. From a state , an action  ∈
• all the conditions in .left evaluate to true at ;
• calling  the state defined by applying onto  all the assignments in .right, then we must have
 ≠ .</p>
        <p>Firing  in this situation is denoted by  −→ , and we say that  enables . Moreover, a system may perform
time transitions from a state  if: for every clock  ∈ .clocks and every variable  ∈ .top.vars such
that .clock =  and [] ≥ 0, then we must have [] &lt; max(.dom); i n which case a new state  is
obtained by incrementing all the considered [] ≥ 0. This is denoted by  →−  just like actions firing.</p>
        <p>An mrr system  can generate a state-space that is defined as a graph (, ) where  is the set of
reachable states and  is the set of transitions, defined inductively by:
•  includes the initial states defined in the model;</p>
        <p>• for  ∈  and a constraint  such that  →− , then we have  ∈  and (, , ) ∈ ;

• for  ∈  that enables no constraints and a rule , if  −→ , then we have  ∈  and (, , ) ∈ ;

• for  ∈  that enables no constraints and a clock , if  →−  then we have  ∈  and (, , ) ∈ ;
• if  ∈  enables no actions and no clock ticks, it is called a deadlock.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Petri nets semantics</title>
      <p>In this paper, we define (colored) Petri nets as in [ 20, Sec. 2.2], with respect to a set of variables V
ranging on Z and a set of expressions E ⊃ V that includes all the arithmetic and Boolean expressions
nest[0].R1</p>
      <p>R1[i=0]
2/2
that mrr can express. Given  ∈ E, we denote by vars() the subset of variables involved in . A binding
of  is a function vars() → Z that maps variables to values. Then, we denote by  () the evaluation
of  under the binding  , which may be a value in Z if the evaluation is possible, or an error value ⊥ if
the evaluation is not possible for one reason or another.</p>
      <p>Definition 3 (Petri nets).</p>
      <p>A Petri net is a tuple (,  , ℓ) where:
•  is the finite set of places;
•  , disjoint from , is the finite set of transitions;
• ℓ is a labelling function such that:
– for all  ∈ , ℓ() ⊂ Z is the type of ,
– for all  ∈  , ℓ() ∈ E is the guard of ;
– for all (, ) ∈ ( ×  ) ∪ ( × ), ℓ(, ) is a multiset over E defining the arc from  to ,
the empty multiset implementing to the absence of arc.</p>
      <p>A marking of a Petri net (, , ℓ) is a function  mapping each place  to a multiset over ℓ(). A
transition  is enabled at a marking  with a binding  , which is denoted by  [,  ⟩ if:
•  has enough tokens: for all  ∈ ,  (ℓ(, ))≤  ();
• the guard is satisfied:  (ℓ())is true;
• place types are respected: for all  ∈ ,  (ℓ(, ))is a multiset over ℓ().</p>
      <p>If  ∈  is enabled at  with binding  then it may fire yielding a new marking  ′ such that for all
 ∈ ,  ′() =  () −  (ℓ(, ))+  (ℓ(, )). This is denoted by  [,  ⟩ ′. This allows defining
the reachability graph (or marking graph) of a Petri net as usual, similarly to the state-space of an mrr
system, by firing transitions from the initial marking until saturation.</p>
      <sec id="sec-3-1">
        <title>This definition can be extended in two ways:</title>
        <p>• adding transitions priorities with two levels to implement constraints and rules:  is partitioned
into  ∪  and the firing semantics is modified so that whenever  [,  ⟩ for  ∈  then every
 ∈  is inhibited and cannot be enabled at  ;
• forbidding side-loops, i.e. no firing  [,  ⟩ being allowed; this can be enforced at the semantics
level or side-loops can be removed from the marking graph afterward.</p>
        <p>To translate a flattened mrr system  into a Petri net, we first consider that it declares only variables
 such that .init is a singleton because Petri nets do not support having multiple initial marking. From
this, we can have one reachability graph for each initial state of , and we can take their union to get a
graph that matches the state-space of . Moreover, we assume a function ⌊⌉ that translate elements
of an mrr structure into Petri nets variables or expressions:
• for a variable structure , ⌊⌉ ∈ V is its translation into a Petri net variable;
• for an mrr expression  ( COND or EXPR ), ⌊⌉ ∈ E is a Petri net expression that implements ;
• for a clock  ∈ I, ⌊⌉ ∈ V is a Petri net variable that cannot be obtained as ⌊⌉ for any variable .
For , ,  ∈ E, we shall use ternary if-then-else expressions as ⟦ ?  ∶ ⟧ that evaluates to  if  is true
and to  otherwise.</p>
        <p>Definition 4 (Petri nets semantics of mrr). Let  be a flattened mrr system with a unique initial
state. Its Petri net semantics is a Petri net (, , ℓ), with  partitioned into  ∪ , and marked with 
such that:
•  = { ∣  ∈ .top.vars} with
– ℓ() = .dom, and
–  () = .init;
•  = { ∣  ∈ .top.cons} and  = { ∣  ∈ .top.rules} ∪ { ∣  ∈ .clocks} with
– for all  ∈ .top.cons ∪ .top.rules, ℓ() = ⋀ ∈.left ⌊⌉,
– for all  ∈ .clocks, ℓ() is true;
• for all  ∈  , for all variable  involved in , ℓ(, ) = {⌊⌉}and
– ℓ(, ) = {⌊.value⌉}if .name = .target for some  ∈ .right,
– ℓ(, ) = {⌊⌉}, otherwise;
• for every  ∈ .clock and every variable  such that .clock = :
– ℓ(, ) = {⌊⌉}, and
– ℓ(, ) = {⟦⌊⌉ ≥ 0 ? ⌊⌉ + 1 ∶ ⌊⌉⟧};
• every ℓ(, ) not listed above is the empty multiset (no arc).</p>
        <p>As an example, Figure 5 shows the semantics of the mrr model from Figure 2.</p>
        <p>Given how direct is the translation, it is easy to check that an mrr system and its Petri net semantics
are strongly equivalent.</p>
        <p>Claim 1. Let  be a flattened mrr system with one initial state, and  be its Petri nets semantics. Then,
the state-space of  is isomorphic to the marking graph on  .</p>
        <p>⇋  + 1</p>
        <p>&gt; 1 1
 ⇋  − 1
out[]</p>
        <p>0
 ⇋  − 1</p>
        <p>&gt; 0 0
 ⇋  + 1</p>
        <p>5
nest[].in
 ⇋ −1
 ⇋ 0
nest[].time
 ⇋ 0
−1
2
 = 1
 ⇋ ⟦ ≥ 0 ?  + 1 ∶ ⟧</p>
        <p>tick
 ⇋  + 1</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Implementation</title>
      <p>
        eden is equipped with the tool ecco [
        <xref ref-type="bibr" rid="ref7 ref8">8, 7</xref>
        ] that consists of a Python library intended to be used within
Jupyter notebooks [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. This environment provides the interactivity needed for the incremental analysis
of models [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Working on a model with ecco supposes to load it and to explore its state-space by
building and refining component graphs. These are graphs whose nodes (components) are sets of states
linked by the transitions allowing to reach one component from another. Components can be checked
against properties (ctl or ecco specific languages), and even split into the states that validate a property
and those that do not. Doing so, users keep at hand a graph that provides a representation of the
main dynamics of the system with respect to properties of interest [
        <xref ref-type="bibr" rid="ref1 ref18 ref7">7, 1, 18</xref>
        ]. This graph can be kept
always readable and can be precisely tuned to progressively answer complex questions that could not
necessarily be formulated from the beginning.
      </p>
      <p>
        The mrr language has been implemented within ecco [
        <xref ref-type="bibr" rid="ref7 ref8">8, 7</xref>
        ], which yielded surprisingly few changes
to its interface. Essentially, as mrr is a generalization of rr, the main changes are in the displays:
Boolean variables are still displayed as A+ or A- , but other variables can be displayed as B=0 , B=1 ,
B=2 , . . . More generally, the interface has been streamlined and simplified, with more consistency
across the various methods provided to users. Under the hood, the symbolic engine based on libddd
and libits [
        <xref ref-type="bibr" rid="ref22 ref23">22, 23</xref>
        ] has been rewritten to support multivalued variables. This resulted in a tool that
is both very familiar and renewed, which led to reimplement the support of rr in ecco on the top of
mrr: if loaded with a .rr file, ecco now treats it as a .mrr file after a light preprocessing in order to
accommodate the syntactic diferences (in rr, variables may be distributed among arbitrarily chosen
sections, while in mrr they are all defined within section variables: ). Legacy rr support is still
available by naming files with a .lrr extension.
      </p>
      <sec id="sec-4-1">
        <title>4.1. Example</title>
        <p>
          To illustrate how ecco can be used with an mrr model, we present a new version of the termites colony
model originally presented in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], extended by considering that the termites may build several nests
(we also removed two variables that where never assigned). The new model is expressed with mrr in
Figure 6. It is organized as follows. The top location hosts the interactions between termites and their
ants competitors. At the beginning termites reproductives are present, as well as ants. Reproductives
may start building the first nest, which is modelled as rule R1 that let them “enter” into location
nest[0] , where the rules are exactly those from [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] apart from the interactions with the ants. The
other rules in the top location are:
• R2 : one nest is fully populated (i.e. it has reproductives, workers, and soldiers) and the colony
spawns into another nest location that is currently empty;
• R3 : ants can kill the termites from all the nests when there are no soldiers;
• R4 : ants can be killed if there are soldiers in all the nests.
        </p>
        <p>
          The two last rules are directly adapted from [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], only the first one is really new. Note that R3 could be
more specific using for any i which would allow ants to kill the termites in only one nest that would
have no soldiers. Here, we have chosen a rule that is closer to the original model and corresponds to
considering that the presence of soldiers in some nests is enough to refrain the ants from invading the
region where nests are, so that they cannot kill the termites.
        </p>
        <p>
          A Jupyter session for this illustration is displayed in Figure 7. To analyze this model, we first load it
into ecco (In[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]). Note that we use extension .mrr so that ecco knows how to interpret the model.
After loading our model, we can build a component graph by calling object model() as a function. Its
arguments specify successive splits to perform onto the components:
• starting from a unique component that holds all the reachable states, the first split separates the
initial states from the rest, which yields a graph with two components (this first property is called
in ecco a topological property);
• this graph is then split w.r.t. the basins of attraction of the deadlocks, i.e. the states that necessarily
lead to deadlocks, which is specified with a formula passed as a string (this syntax is ecco specific
functional properties);
• then, a split is requested w.r.t. the presence/absence of ant competitors (this is actually a very
simple ctl property);
• and finally, a last split extract the convex hulls of strongly-connected components (which is also
a topological property).
        </p>
        <p>The resulting component graph is saved into variable g and then displayed.</p>
        <p>It has 6 components, within ecco, we can click them and explore their characteristics, which shows
that #1 has a unique state that is the initial state (which is visible from tag ▶ that tells us this component
is exactly the set of initial states). From #1, firing rule R1 lead to #10, from which the termites may
be killed either by the ants (rule R3 ) or by failing to build a nest (rule nest[0].R11 ). In both
cases, this leads to #7 that is tagged by which means it contains deadlocks. Another path from #10
is to fire nest[0].R5 leading to #9 where the system may stay forever. Indeed, tag tells us that
this component is the convex hull of some SCCs. From #9, termites may die (rules nest[].R11 )
or be killed by ants (rule R3 ). From #7 and #9, termites may kill ants (rule R4 ) which is surprising
when starting from #7 because it is reached when termites die. But this can be explained looking at
rule nest[].R11 where only reproductives and workers die, so that there may still be soldiers in the
nests. They will die later on because of rule nest[].R9 but before they have a chance to kill the ants.
Component #6 is tagged with •, which tells us that it is a SCC.</p>
        <p>
          Cell In[
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] allows printing the size of the state space by summing the sizes of the components in g,
which is 11,842 states.
        </p>
        <p>
          Finally, to clarify the dynamics related to the colonizing of new nests, cell In[
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] splits the components
with respect to the presence or absence of reproductive in each nest. Python syntax g.split(*(...))
calls g.split by passing it the items resulting from comprehension ... as individual parameters. In
the comprehension, we build only the two formulas "'nest[0].Rp'" and "'nest[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].Rp'", and
using a comprehension with string substitution is only useful to demonstrate how this approach scales
for more nests. These two formulas are strings (hence "..." quotes) with inside '...'-quoted atoms
as the ctl syntax used in ecco requires complex atoms to be quoted. By exploring the components, we
can see that #16 and #18 have nest[0].Rp on, while #12 and #14 have nest[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].Rp on, and #15
and #17 have both variables on. From #15 it is possible to fire R3 (ants kill termites), but this is no
more possible from #17 where ants have been killed. Otherwise, the dynamics between #12/#15/#16 on
the one hand, and #14/#17/#18 on the other hand are similar, so we focus on the former group. The
system enters #16 from #10 when the first nest starts to be constructed. Then it may oscillate between
%run -m ecco termites.mrr
g = model(topo.INIT, "basin(DEAD)", "Ac", topo.HULL)
g
        </p>
        <p>
          R4
R4
In[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]:
        </p>
        <p>
          In[
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]:
#12/#15/#16 depending on how termites in one nest die from the lack of fresh air ( nest[].R11 ) or
termites in one nest spawn to the other one ( R2 instantiated with i=0,j=1 or i=1,j=0 ). Tag ◦ on
components #12 and #16 tells us that they contain some SCCs but they are not SCCs themselves.
        </p>
        <p>
          We shall not push further this analysis because it is already suficient to see that the spirit and
principles of ecco as presented in [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] are preserved: analysis is still based on component graphs that
can be refined through incremental splits, which allows building readable representations of large
statespaces, targeted towards specific questions, that could not be easily obtained without this interactive
environment.
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Related works and discussion</title>
      <p>
        The rr modelling language has been developed on the basis of a theory of social-ecological systems
requiring to grasp their cores and inner structures. The rr syntax is summarizing the interaction
network of each system which we need to compute its qualitative and coarse-grain dynamics. Such a
long term system dynamics is conveniently modeled by a qualitative and abstract representation of the
system [
        <xref ref-type="bibr" rid="ref24 ref4 ref6">24, 4, 6</xref>
        ]. mrr is thus not proposed as a replacement of rr, but really as an extension, and the
language has been indeed designed to this aim. Extending a Boolean formalism in the three directions
we proposed (multivalued variables, time, and space) is, to the best of our knowledge, very original. It
is more usual to proceed one direction at a time, and we consider them separately in the following.
      </p>
      <p>
        Extending a Boolean formalism to support multivalued variables is classical, for instance this was
made in [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] for Boolean regulatory networks. Equipping such extended formalisms with a colored
Petri semantics is also classical, for instance, the semantics proposed in [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] for regulatory networks
is similar to ours: it defines one place for each variable and one transition for each function. The
main diference comes from the underlying formalisms: while regulatory networks have only one
function to compute the next state of one variable, we may have multiple actions changing multiple
variable at a time. Similar translations may be found in many works, e.g. [
        <xref ref-type="bibr" rid="ref27 ref28">27, 28</xref>
        ]. Using this translation
scheme allows then relying on a translation from colored Petri nets to standard Petri nets (often called
unfolding, which is ambiguous w.r.t. McMillan’s unfolding [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]). Another classical translation scheme
is to use standard Petri nets and pairs of complementary places to implement the variables, see e.g. [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ].
Both techniques solve the problem to exactly check the value of a variable, which reduces to zero-test.
In [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], we solved this problem using inhibitor- and reset-arcs in a compact semantics, or using pairs of
complementary places in an alternative equivalent semantics [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. From this perspective, the Petri nets
semantics of mrr is not conservative w.r.t. to the Petri nets semantics of rr.
      </p>
      <p>
        Extending an untimed formalism to support time is also classical. In this work we have chosen causal
time and our extension is very similar to what was made in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] to extend the Petri Box Calculus [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]
with causal time. The main diference, apart from the formalisms that are very dissimilar, is that mrr
allows the use of several clocks. There are of course lots of formalisms extended with continuous time,
including Petri nets. We felt more relevant to propose a discrete timing model that is consistent with the
abstract perspective promoted in eden [
        <xref ref-type="bibr" rid="ref7 ref9">7, 9</xref>
        ]. Considering we have introduced multivalued variables,
the causal time approach then almost comes “for free”, and has a very light impact on the Petri nets
semantics (we just need to add one transition per clock). However, we know that introducing causal
time yields extra combinatorial explosion in the state-spaces. Indeed, for each clocked variable in a
range [0, ], every intermediate count 0 ≤  ≤  may be enumerated in the state-space. If several such
variables are considered, these enumerations will combine and yield even more combinatorics. ecco
makes use of a symbolic representation of the components based on data decision diagrams [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ], which
should fight eficiently this combinatorial explosion. Moreover, we already observed on rr modelling
that combinatorial explosion is often a strong incentive towards abstraction when the state-space of
Boolean models with too many variables cannot be computed. Having to deal with a limit of what can
be computed leads to think more thoroughly to what should be included or not in the model, and how
available knowledge should be represented or abstracted away. So, we believe that this will be also the
case for timed models, and that the extra combinatorial explosion they bear will lead to a qualitative
approach of time representation, where durations are more used as orders of magnitude for the relative
speeds of processes, rather than actual measures of time passing.
      </p>
      <p>
        Extending a formalism with a representation of space is probably much less classical than with
multivalued variables or time, and spatial information is usually built-in from the beginning as a
prominent feature of a formalism. (See [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ] for a survey of space-enabled formalisms in systems
biology.) However, this was made in [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ] to extend Boolean networks with an abstract notion of
space (modelling the topology rather than the geometry). This was pushed further in [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ] to allow the
dynamicity of the topology, using algebraic representations of it. Inspired from this approach, a first
attempt to introduce space in rr systems was performed, leading to a language featuring a complex
representation of space, with even more complex queries in order to access the variables distributed into
distinct locations [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ]. This language was transpiled to rr, allowing to analyze the modelled systems
in ecco. This implementation has not been publicly released because we felt it is far too complex to
be adopted by ecologists. Such a complexity however, does not exist with wide-spread formalisms
as membrane systems [
        <xref ref-type="bibr" rid="ref14 ref15">14, 15</xref>
        ]. The main diference is that, when a complex representation of spaces
allows to directly access information distributed in distant locations, simpler representations lead to
explicitly model the routing of information through rules added to the model. This result in models that
are less compact, but more explicit and easier to understand. Moreover, this lets modelers express more
precisely the information flow, in ways that may not have been anticipated in the hard-wired routing
provided at language-level. For instance, rule R2 in the termites model from Figure 6 (termites spawn
to another nest) could have been implemented diferently, e.g. with a rule inside location nest that
would send new reproductives outside, and a more generic version of rule R1 allowing reproductives to
enter any empty nest. Distinct implementations would express slightly diferent ways of modelling the
same observed behavior, leading to similar or distinct trajectories, with similar or distinct conclusions
on the studied system, which is exactly where the expertise of modelers gets expressed.
      </p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion and future works</title>
      <p>We presented the mrr language that is an extension of the existing rr language for the formal modelling
of social-ecological systems. mrr extends rr in several ways: first, it adds multivalued variables,
including statically-sized arrays; then, it adds time as clock ticks incrementing counters; finally, it
adds spatial organization of the model as nested locations. The syntax of mrr has been presented and
illustrated with examples, and its formal semantics has been defined in terms of rules operating on a
lfattened version of a system ( i.e. with a unique location). Then, a colored Petri nets semantics of mrr
has been provided, which is consistent with the operational semantics and opens the way for Petri net
based analysis. Finally, we presented the implementation of mrr in ecco tool, and illustrated its usage
on a concrete example adapted from our early works on rr.</p>
      <p>
        As discussed above, extending rr to mrr leads to several sources of increased combinatorial explosion.
While this is interesting as an incentive to keep models abstract, it is sometimes desirable to introduce
more details when more data is available about the system being modelled. Multivaluated variables
are perhaps the least of our concerns because ecco is built on the top of data decision diagrams that
already deal eficiently with them. Introducing spaces is not specifically a source of combinatorial
explosion, but having arrays of locations is a way to quickly grow the size of a model. See for instance
our termites example with two nests that has 11,842 states when the same model with a unique nest
only has 110 states (and note that 1102 = 12,100 ≃ 11,842 which is consistent with the fact that two
nests evolve largely independently of one another). One future direction will be to consider hierarchical
data decision diagrams, called set decision diagrams, which are known to be an eficient way of factoring
the states of similar sub-systems into shared sub-diagrams [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ].
      </p>
      <p>
        Clocked variables introduced by the causal time approach are however more specific than multivalued
variables. For instance, in our first example from Figure 2, the intermediate counts between 0 and MAX-1
do not constrain the system. Only when one nest[].time reaches MAX the system is constrained and
animals are forced to go back to the nest before time can pass again. This is well known in timed systems
where only the constants that are compared to time measures are meaningful, which led to symbolic
representations of time-states such as zones [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ], bounded diference matrices and variants [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ], among
other approaches. A specific approach was developed in the case of Petri nets with causal time, using
dual states representation with the marking on the one hand, and clock counters on the other hand,
which allowed to produce aggregated state-spaces [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ]. Adapting one or another of these methods to
mrr will be an interesting challenge as it may lead to combine two symbolic representation of states:
decision diagrams for data, and potentially another representation for time.
      </p>
      <p>
        Analyzing rr models is also possible using Petri nets unfoldings à la McMillan as in [
        <xref ref-type="bibr" rid="ref41 ref42">41, 42</xref>
        ], which
allows for causal analysis that is hard to perform using state-oriented component graphs. This was
actually a strong motivation for proposing a Petri net semantics for mrr, and future work will be
dedicated to explore how the semantics we proposed, based on colored Petri nets, will be usable to
perform unfolding-based analysis.
      </p>
      <p>Last but not least, mrr has been created with the aim it will be used by ecologists and other
environmental scientists (e.g. sociologists or economists), to conduct studies on social-ecological systems, just
like rr has been already, either from a theoretical or from a practical perspective. Next steps in this
direction will be to work with ecologists in order to help them become familiar with this new language
and the changes it led to make in ecco. In this perspective, having mrr be an extension of rr will
certainly help and allow a progressive transition from one language to another.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments</title>
      <p>We warmly thank Sergiu Ivanov for our fruitful discussions about membrane systems formalisms, which
helped a lot to design a suitable representation of space in mrr.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Cosme</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Hély</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Pasquariello</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tiberi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Treydte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gaucherel</surname>
          </string-name>
          ,
          <article-title>Qualitative modeling for bridging expert-knowledge and social-ecological dynamics of an east African savanna</article-title>
          ,
          <source>Land</source>
          <volume>11</volume>
          (
          <year>2022</year>
          ). doi:
          <volume>10</volume>
          .3390/land11010042.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>C.</given-names>
            <surname>Di Giusto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gaucherel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Klaudel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <article-title>Analysis of discrete models for ecosystem ecology</article-title>
          ,
          <source>in: Biomedical Engineering Systems and Technologies</source>
          , Springer,
          <year>2020</year>
          . doi:
          <volume>10</volume>
          .1007/ 978-3-
          <fpage>030</fpage>
          -46970-2_
          <fpage>12</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>C.</given-names>
            <surname>Gaucherel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Hély</surname>
          </string-name>
          ,
          <article-title>Understanding ecosystem complexity via application of a process-based state space rather than a potential surface</article-title>
          ,
          <year>Complexity 2020</year>
          (
          <year>2020</year>
          ). doi:doi.org/ 10.1155/
          <year>2020</year>
          /7163920.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>C.</given-names>
            <surname>Gaucherel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <article-title>Using discrete systems to exhaustively characterize the dynamics of an integrated ecosystem</article-title>
          ,
          <source>Methods in Ecology and Evolution</source>
          <volume>10</volume>
          (
          <year>2019</year>
          ). doi:
          <volume>10</volume>
          .1111/2041-210X.
          <fpage>13242</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Mao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Centanni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Stokes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gaucherel</surname>
          </string-name>
          ,
          <article-title>Maintaining biodiversity promotes the multifunctionality of social-ecological systems: holistic modelling of a mountain system</article-title>
          ,
          <source>Ecosystem Services</source>
          <volume>47</volume>
          (
          <year>2021</year>
          ). doi:
          <volume>10</volume>
          .1016/j.ecoser.
          <year>2020</year>
          .
          <volume>101220</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C.</given-names>
            <surname>Gaucherel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cosme</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Noûs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <article-title>A single changing hypernetwork to represent (social-)ecological dynamics</article-title>
          ,
          <source>bioRxiv</source>
          (
          <year>2024</year>
          ). doi:
          <volume>10</volume>
          .1101/
          <year>2023</year>
          .10.30.564699, peer-reviewed and recommended by [
          <volume>43</volume>
          ].
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          , C. Thomas,
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Gaucherel, EDEN framework for interactive analysis of ecosystems models</article-title>
          ,
          <source>in: Proc. of PNSE'22</source>
          , volume
          <volume>3170</volume>
          , CEUR Workshop Proceedings,
          <year>2022</year>
          . URL: https: //ceur-ws.
          <source>org/</source>
          Vol-
          <volume>3170</volume>
          /#paper7.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          <article-title>, ecco, tools for the formal modelling and analysis of ecosystems, 2024</article-title>
          . URL: http://ecco.ibisc.
          <source>univ-evry.fr.</source>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Cosme</surname>
          </string-name>
          , C. Thomas,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gaucherel</surname>
          </string-name>
          ,
          <article-title>On the history of ecosystem dynamical modeling: The rise and promises of qualitative models</article-title>
          ,
          <source>Entropy</source>
          <volume>25</volume>
          (
          <year>2023</year>
          ). doi:
          <volume>10</volume>
          .3390/e25111526.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>P.</given-names>
            <surname>Salles</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Bredeweg</surname>
          </string-name>
          ,
          <article-title>Modelling population and community dynamics with qualitative reasoning</article-title>
          ,
          <source>Ecological Modelling</source>
          <volume>195</volume>
          (
          <year>2006</year>
          ). doi:
          <volume>10</volume>
          .1016/j.ecolmodel.
          <year>2005</year>
          .
          <volume>11</volume>
          .014.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          , C. Thomas,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gaucherel</surname>
          </string-name>
          ,
          <article-title>Petri nets semantics of reaction rules (RR)</article-title>
          ,
          <source>in: Proc. of PETRINETS'22</source>
          , Springer,
          <year>2022</year>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>031</fpage>
          -06653-5_
          <fpage>10</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bui Thanh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Klaudel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <article-title>Petri nets with causal time for system verification</article-title>
          ,
          <source>Electronic Notes in Theoretical Computer Science</source>
          <volume>68</volume>
          (
          <year>2003</year>
          ). doi:
          <volume>10</volume>
          .1016/S1571-
          <volume>0661</volume>
          (
          <issue>04</issue>
          )
          <fpage>80521</fpage>
          -
          <lpage>8</lpage>
          ,
          <source>proc of MTCS'02.</source>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <article-title>Causal time calculus</article-title>
          ,
          <source>in: Proc. of FORMATS'04</source>
          , Springer,
          <year>2004</year>
          . doi:
          <volume>10</volume>
          .1007/ 978-3-
          <fpage>540</fpage>
          -40903-8_
          <fpage>21</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>G.</given-names>
            <surname>Păun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Rozenberg</surname>
          </string-name>
          ,
          <article-title>A guide to membrane computing</article-title>
          ,
          <source>Theoretical Computer Science</source>
          <volume>287</volume>
          (
          <year>2002</year>
          ). doi:
          <volume>10</volume>
          .1016/S0304-
          <volume>3975</volume>
          (
          <issue>02</issue>
          )
          <fpage>00136</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>A.</given-names>
            <surname>Alhazov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Freund</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ivanov</surname>
          </string-name>
          , Polymorphic P systems: a survey,
          <source>Bulletin of the International Membrane Computing Society</source>
          (
          <year>2016</year>
          ). URL: https://idus.us.es/bitstream/handle/11441/127673/ BullDec2016.pdf?sequence=1#page=
          <fpage>79</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Cosme</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gaucherel</surname>
          </string-name>
          ,
          <article-title>Farm trajectories in the South Sudanian zone of Burkina Faso: How to achieve a persistent crop-livestock integration?, SSRN</article-title>
          , in review (
          <year>2024</year>
          ). doi:
          <volume>10</volume>
          . 2139/ssrn.4635820.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <article-title>Petri nets as executable specifications of high-level timed parallel systems</article-title>
          ,
          <source>in: Proc. of ICCS'04</source>
          , Springer,
          <year>2004</year>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -24688-6_
          <fpage>44</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>C.</given-names>
            <surname>Thomas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cosme</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gaucherel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <article-title>Model-checking ecological state-transition graphs</article-title>
          ,
          <source>PLOS Computational Biology</source>
          <volume>18</volume>
          (
          <year>2022</year>
          ). doi:
          <volume>10</volume>
          .1371/journal.pcbi.
          <volume>1009657</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>R.</given-names>
            <surname>Durchholz</surname>
          </string-name>
          , Causality, time, and deadlines,
          <source>Data &amp; Knowledge Engineering</source>
          <volume>6</volume>
          (
          <year>1991</year>
          ). doi:
          <volume>10</volume>
          . 1016/
          <fpage>0169</fpage>
          -
          <lpage>023X</lpage>
          (
          <issue>91</issue>
          )
          <fpage>90024</fpage>
          -
          <lpage>R</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <article-title>Algebras of coloured Petri nets</article-title>
          ,
          <source>Habilitation thesis, UPEC</source>
          ,
          <year>2009</year>
          . doi:
          <volume>10</volume>
          .5281/ zenodo.3478451.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>J. M. Perkel</surname>
          </string-name>
          ,
          <article-title>Why Jupyter is data scientists' computational notebook of choice</article-title>
          ,
          <source>Nature</source>
          <volume>563</volume>
          (
          <year>2018</year>
          ).
          <source>doi:10.1038/d41586-018-07196-1.</source>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Thierry-Mieg</surname>
          </string-name>
          ,
          <article-title>From symbolic verification to domain specific languages, Habilitation thesis</article-title>
          , UPMC,
          <year>2016</year>
          . URL: http://pages.
          <fpage>lip6</fpage>
          .fr/Yann.Thierry-Mieg/hdr-ytm.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Thierry-Mieg</surname>
          </string-name>
          ,
          <article-title>Homepage of ITS-tools</article-title>
          , http://lip6.github.io/ITSTools-web,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>C.</given-names>
            <surname>Gaucherel</surname>
          </string-name>
          ,
          <article-title>The Languages of Nature: When nature writes to itself, Lulu éditions</article-title>
          , Paris,
          <year>2019</year>
          . ISBN:
          <volume>9780244214982</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>G.</given-names>
            <surname>Didier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Remy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Chaouiya</surname>
          </string-name>
          ,
          <article-title>Mapping multivalued onto Boolean dynamics</article-title>
          ,
          <source>Journal of Theoretical Biology</source>
          <volume>270</volume>
          (
          <year>2011</year>
          ). doi:
          <volume>10</volume>
          .1016/j.jtbi.
          <year>2010</year>
          .
          <volume>09</volume>
          .017.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>R.</given-names>
            <surname>Banks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. J.</given-names>
            <surname>Steggles</surname>
          </string-name>
          ,
          <article-title>A high-level Petri net framework for genetic regulatory networks</article-title>
          ,
          <source>Journal of Integrative Bioinformatics</source>
          <volume>4</volume>
          (
          <year>2007</year>
          ). doi:
          <volume>10</volume>
          .1515/jib-2007-60.
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Comet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Klaudel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Liauzu</surname>
          </string-name>
          ,
          <article-title>Modeling multi-valued genetic regulatory networks using high-level Petri nets</article-title>
          ,
          <source>in: Proc. of PETRINETS'05</source>
          , Springer,
          <year>2005</year>
          . doi:
          <volume>10</volume>
          .1007/11494744_
          <fpage>13</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>C.</given-names>
            <surname>Chaouiya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Remy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Thiefry</surname>
          </string-name>
          ,
          <article-title>Qualitative Petri net modelling of genetic networks</article-title>
          ,
          <source>in: Transactions on Computational Systems Biology VI</source>
          , Springer,
          <year>2006</year>
          . doi:
          <volume>10</volume>
          .1007/11880646_5.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>K. L. McMillan</surname>
            ,
            <given-names>D. K.</given-names>
          </string-name>
          <string-name>
            <surname>Probst</surname>
          </string-name>
          ,
          <article-title>A technique of state space search based on unfolding, Formal methods in system design 6 (</article-title>
          <year>1995</year>
          ). doi:
          <volume>10</volume>
          .1007/BF01384314.
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>C.</given-names>
            <surname>Chaouiya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Remy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Thiefry</surname>
          </string-name>
          ,
          <article-title>Petri net modelling of biological regulatory networks</article-title>
          ,
          <source>Journal of Discrete Algorithms</source>
          <volume>6</volume>
          (
          <year>2008</year>
          ). doi:
          <volume>10</volume>
          .1016/j.jda.
          <year>2007</year>
          .
          <volume>06</volume>
          .003.
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>E.</given-names>
            <surname>Best</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Devillers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Koutny</surname>
          </string-name>
          , Petri net algebra, Springer,
          <year>2001</year>
          . doi:
          <volume>10</volume>
          . 1007 / 978-3-
          <fpage>662</fpage>
          -04457-5.
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <surname>J.-M. Couvreur</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Encrenaz</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Paviot-Adet</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Poitrenaud</surname>
          </string-name>
          , P.
          <article-title>-A. Wacrenier, Data decision diagrams for Petri net analysis</article-title>
          ,
          <source>in: Proc. of PETRINETS'02</source>
          , Springer,
          <year>2002</year>
          . doi:
          <volume>10</volume>
          .1007/3-540-48068-
          <issue>4</issue>
          _
          <fpage>8</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>K.</given-names>
            <surname>Takahashi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. N. V.</given-names>
            <surname>Arjunan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tomita</surname>
          </string-name>
          ,
          <article-title>Space in systems biology of signaling pathways - towards intracellular molecular crowding in silico</article-title>
          ,
          <source>FEBS Letters 579</source>
          (
          <year>2005</year>
          ). doi:
          <volume>10</volume>
          .1016/j. febslet.
          <year>2005</year>
          .
          <volume>01</volume>
          .072.
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>C.</given-names>
            <surname>Chaouiya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Klaudel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <article-title>A modular, qualitative modeling of regulatory networks using Petri nets</article-title>
          , Springer,
          <year>2011</year>
          . doi:
          <volume>10</volume>
          .1007/978-1-
          <fpage>84996</fpage>
          -474-6_
          <fpage>12</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <surname>J.-L. Giavitto</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Klaudel</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <article-title>Integrated regulatory networks (irns): Spatially organized biochemical modules</article-title>
          ,
          <source>Theoretical Computer Science</source>
          <volume>431</volume>
          (
          <year>2012</year>
          ). doi:
          <volume>10</volume>
          .1016/j.tcs.
          <year>2011</year>
          .
          <volume>12</volume>
          . 054.
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>M.</given-names>
            <surname>Leloup</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cosme</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gaucherel</surname>
          </string-name>
          ,
          <article-title>A spatially explicit scenario analysis of food security in a West-African socio-ecological system under climate change, in review (</article-title>
          <year>2024</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Thierry-Mieg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Poitrenaud</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hamez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Kordon</surname>
          </string-name>
          ,
          <article-title>Hierarchical set decision diagrams and regular models</article-title>
          ,
          <source>in: Proc. of TACAS'09</source>
          , Springer,
          <year>2009</year>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -00768-
          <issue>2</issue>
          _
          <fpage>1</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bouyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Gastin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Herbreteau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Sankur</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Srivathsan</surname>
          </string-name>
          ,
          <article-title>Zone-based verification of timed automata: extrapolations, simulations and what next?</article-title>
          ,
          <source>in: Proc. of FORMATS'22</source>
          , Springer,
          <year>2022</year>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>031</fpage>
          -15839-
          <issue>1</issue>
          _
          <fpage>2</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>K.</given-names>
            <surname>Klai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Aber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Petrucci</surname>
          </string-name>
          ,
          <article-title>A new approach to abstract reachability state space of time Petri nets</article-title>
          ,
          <source>in: Proc. of TIME'13</source>
          , IEEE,
          <year>2013</year>
          . doi:
          <volume>10</volume>
          .1109/TIME.
          <year>2013</year>
          .
          <volume>22</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Devillers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Klaudel</surname>
          </string-name>
          ,
          <article-title>Eficient reachability graph representation of Petri nets with unbounded counters</article-title>
          ,
          <source>Electronic Notes in Theoretical Computer Science</source>
          <volume>239</volume>
          (
          <year>2009</year>
          ). doi:
          <volume>10</volume>
          .1016/j.entcs.
          <year>2009</year>
          .
          <volume>05</volume>
          .034,
          <article-title>proc</article-title>
          . of INFINITY'
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>G. K.</given-names>
            <surname>Aguirre-Samboní</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gaucherel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Haar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pommereau</surname>
          </string-name>
          ,
          <article-title>Reset Petri net unfolding semantics for ecosystem hypergraphs</article-title>
          ,
          <source>in: Proc. of PNSE'22</source>
          , volume
          <volume>3170</volume>
          , CEUR Workshop Proceedings,
          <year>2022</year>
          . URL: https://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>3170</volume>
          /#poster2.
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [42]
          <string-name>
            <given-names>G. K.</given-names>
            <surname>Aguirre-Samboní</surname>
          </string-name>
          ,
          <article-title>Ecosystem Causal Analysis using Petri Net Unfoldings</article-title>
          ,
          <source>PhD thesis</source>
          , Univ. Paris-Saclay,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [43]
          <string-name>
            <given-names>C.</given-names>
            <surname>Sueur</surname>
          </string-name>
          ,
          <article-title>The dawn of dynamic hypergraph modelling in ecology, 2024</article-title>
          . doi:
          <volume>10</volume>
          .24072/pci. networksci.
          <volume>100148</volume>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>