<!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>CREST - A Continuous, REactive SysTems DSL</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stefan Klikovits</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Didier Buchs</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Geneva</institution>
          ,
          <addr-line>Geneva</addr-line>
          ,
          <country country="CH">Switzerland</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-The advance of cyber-physical systems in everyday life requires powerful modeling capabilities. Existing formalisms often have severe limitations and require complicated notations. In this paper we introduce CREST, a domain-specific language for modeling entity behavior and resource transfers in CPS. CREST aims to support CPS architects through clarity, comprehensiveness and analyzability. 1. Introduction &amp; Motivation</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>The advance of cyber-physical systems (CPS), unions
of hardware sensors and actuators and software controllers,
emphasizes the importance of analysis, validation and
verification of such systems. The complexity of CPS often lies in
their systems-of-systems architecture and mutual subsystem
influences. The analysis and development of CPS require a
clear and comprehensive means of modeling.</p>
      <p>In this paper we introduce CREST, a domain-specific
language (DSL) for continuous and reactive systems.
CREST focuses on the specification of CPS entities and
resource influences between them. The language features
state-based entity behavior and continuous resource
transfers. Through CREST’s homogeneous entity definition, the
language encourages modular system-of-systems designs.</p>
      <p>We will introduce CREST’s features using a plant
growing system. This setup consists of several components
(growing lamp, plant) and different kinds of resources (light,
heat, electricity) that are transferred. Figure 1 shows a
schematic representation of this scenario. Within we find
hierarchical components, continuous value updates, discrete
behavior and conversions between physical units. For
example, the lamp’s output, measured in lumen, influences the
plant’s light input, which is measured in lux. The calculation
of the light impact requires various parameters such as
distance, illuminated surface and illumination angle.</p>
      <p>While usually a CPS model’s purpose is simulation,
CREST additionally aims to provide various other usage
possibilities. These include the validation of CPS using the
mathematical equations that describe physical processes, the
efficient scheduling of inputs to the system, the synthesis
of software controllers and the formal verification of CPS.
CREST aims to facilitate CPS modeling using features
such as continuous evaluation of variable values, reactive
resource/data passing and a system-of-systems architecture.</p>
      <p>The rest of this paper is organized as follows: Section 2
reflects on the current state of the art in CPS modeling.
Sun</p>
      <p>Growlamp
Plant</p>
      <p>Power mains</p>
      <p>Room
temperature
Section 3 introduces CREST and its graphical language.
Section 4 outlines rules for exchange and re-use of CREST
components. Section 5 formalizes CREST’s syntax. Section
6 explains how to use CREST for validation, simulation,
planning and controller synthesis and Section 7 concludes.</p>
    </sec>
    <sec id="sec-2">
      <title>2. State of the Art</title>
      <p>Systems modeling has been an active field of study for
decades. Our research touches many areas of the modeling
domain for instance concurrency, transaction and
composition [1], [2]. We give an excerpt of related works.</p>
      <p>While in the software area UML 2 [3] or SysML [4] are
commonly used, the modeling of hardware behavior requires
additional information. MARTE [5] has been used to model
real-time behavior, timing constraints and similar embedded
systems concepts. MARTE is a powerful means to model
hardware and software platforms but features a very broad
spectrum of concepts and diagrams.</p>
      <p>Architecture Description Languages (ADLs) have been
used to describe the connections of components using
connectors and interfaces. There are several well-known
representatives for ADLs similar to CREST, which have been
employed for CPS. AADL [6] is very powerful and allows
analyses for feasibility, optimization, timing of compositions
of hard- and software. -ADL [7] is based on the -calculus
and introduces typed ports and their verification. CREST
differs from most ADLs by providing execution semantics
that allow verification and simulation, as opposed to a pure
architectural description.</p>
      <p>
        Hardware modeling languages such as VHDL [8] or
Verilog [9] mostly focus on low-level description of electronic
systems. Bond graphs [
        <xref ref-type="bibr" rid="ref11">10</xref>
        ], state-space representations [
        <xref ref-type="bibr" rid="ref12">11</xref>
        ]
and similar allow for the precise modeling of physical
aspects within dynamic systems. They abstract away from
electricity:
0 (Watt)
switch:
off (Switch)
room temperature:
22 (Celsius)
      </p>
      <p>On</p>
      <p>room temperature + 4
switch = off _
electricity &lt; 100
switch = on ^
electricity = 100
800</p>
      <p>Off
room temp.</p>
      <p>+ t
0
temperature:
22 (Celsius)
on time:
0 (Time)</p>
      <p>light:
0 (Lumen)
real-world representation and describe pure physical system
behavior. They however require a precise knowledge of the
exact behavior. Further, it is difficult to represent real-world
systems that are influenced by digital information or on/off
switches for example.</p>
      <p>
        There exists a plethora of tools for the design, simulation
and analysis for embedded systems and models. Examples
are Ptolemy II [
        <xref ref-type="bibr" rid="ref13">12</xref>
        ], 20-sim [
        <xref ref-type="bibr" rid="ref14">13</xref>
        ] and Simulink [
        <xref ref-type="bibr" rid="ref15">14</xref>
        ]. They
support of a wide variety of different systems and offer
large libraries of pre-defined entities and components. In our
use-case they present themselves as potential simulation and
state-space exploration platforms.
      </p>
      <p>
        Finally we relate our approach to the Discrete EVent
System specification (DEVS) [
        <xref ref-type="bibr" rid="ref16">15</xref>
        ]. DEVS can be used to
model discrete event systems using time stamps. It
features hierarchical composition and internally uses a
statebased approach. Information between subsystems is passed
through events and transitions fire according to an internal
time advance function or external events. Due to its nature
continuous value updates or internal events are not possible.
      </p>
      <p>CREST uses specific terms such asentities, influences
and resources for domain concepts. They might be related to
concepts of other, more generic languages (e.g. components,
connections, types). As CREST is a DSL however, we
choose to use terminology that closely describes its purpose.</p>
    </sec>
    <sec id="sec-3">
      <title>3. CREST Language</title>
      <p>To satisfy the need for a continuous, reactive language
we developed CREST. CREST has three main notions:
resources, defining measurement units and the domains that
values can take, entities, representing physical or logical
objects, and influences, modeling relations between entities.</p>
      <p>Resources are value types such as physical units or
signals that can be transferred using influences. In our system
we use several resources for modeling data transfers, such
as Time (value domain: R+) for time measures in hours,
Lumen (N) for luminous flux, Switch ([On,Off]) for an
electrical device’s switch.</p>
      <p>Entities are graphically depicted as CREST diagrams.
The model for our system’s growing lamp is presented
in Figure 2. The lamp’s interface is defined by its inputs
(switch and electricity) and outputs
(temperature and light), which respectively represent
the sources and targets of resource or signal transfers
between entities. Each of these so-called ports is linked to a
resource and has a value from the resource’s domain.</p>
      <p>An entity’s behavior is specified by an automaton (or a
formalism that maps to automata, e.g. Petri nets to model
concurrency), consisting of states and transitions. Our lamp
has two states: Off and On, a short arrow points to the
initial/current state. Transitions are represented as arrows
between states and annotated with guard conditions (Boolean
queries on port values). Transitions trigger as soon as their
guards evaluate to true.</p>
      <p>Internally the lamp defines a third type of port, namely
a local variable , that can be used to store information.
Locals can only be accessed by the entity itself. The lamp
defines on time to measure the total amount of time it
was turned on. Local port and output values can be changed
using update functions ( ). These functions are
continuously evaluated if the automaton is in the corresponding
state. In order to allow analysis and verification of CREST
models, updates have access to a t variable that represents
the duration since the last call of the update. This permits
simulation (value discretization by time steps) and
verification (topological discovery of the significant behaviour
times). This aspect of the modeling makes link between
continous and discrete aspect of time.</p>
      <p>Entities can be grouped together within an enclosing
entity. A system is thus a hierarchical system-of-systems
and represented by one “parent”-entity. Figure 3 displays the
plant growing system, an example for such a composition.
A composed entity can, additionally to the already
introduced features (ports, locals, automaton), use other entities
as subentities. The subentities’ interfaces are linked via
influences. Influences link between child-entity interfaces, as
well as between the parent’s ports and the ports of its direct
children. As influences denote the transfer of resources, it is
room temperature
22 (Celsius)</p>
      <p>SPLIT</p>
      <sec id="sec-3-1">
        <title>Plant growing system</title>
        <p>the responsibility of the modeler to specify a transformation
of the source’s resource to the target’s resource. Also note,
that CREST only permits a maximum of one input and
output per interface port. This is uncommon for modeling
languages which usually define specific connectors (e.g.
additive, averaging) for such cases. To overcome this
restriction we define logical entities (entities without real-life
counterpart) such as splitters, adders and similar to divide
and combine resource signals. This constraint facilitates
analyzability and verification of CREST models.</p>
        <p>In the example in Figure 3, the growing lamp’s light
output is specified in lumen, but the plant’s input in lux.
The plant’s total light exposure is the lamp’s lumen value
divided by the illuminated surface (0:25 m2), added to
the external light. The calculation is performed in a
logical entity ADD (dashed edge). It features one state
(add) and one update function that continuously modifies
the output value. Figure 3 shows two more logical entities
(split and max) that send signals to multiple targets
and select the highest value, respectively. These are, due
to spatial constraints, displayed in abstract form as dashed
circles.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Entity Compatibility and Replacement</title>
      <p>CREST’s modularity and hierarchical specification
concept facilitates the reuse, exchange and modification of
systems. When it comes to replacing an entity with another
component it is important to assert the interface
compatibility.1</p>
      <p>
        1. We do not discuss behavioral or semantic compatibility, as e.g.
described in [
        <xref ref-type="bibr" rid="ref17">16</xref>
        ].
      </p>
      <p>
        When it comes to compatibility of interfaces we require
two consistency properties. Firstly, the number of required
and provided ports needs to be consistent. This means that
an entity can be replaced if it requires the same number or
less input ports and if it provides at least the same outputs
that the original entity provided. The reasoning is that in
order to define a sound replacement a new component must
not specify more requirements or provide less services than
the original. This concept resembles a form of subtyping
relationship that is well-known in the software engineering
domain as Liskov’s substitution principle [
        <xref ref-type="bibr" rid="ref18">17</xref>
        ].
      </p>
      <p>Figure 4a depicts an example of an entity with two inputs
and two outputs. Of the four candidates for replacement only
4b and 4e are directly acceptable as replacements since they
require fewer or provide more services to the system. 4c
demands an interface that might not be available and 4d
does not provide an output that is potentially required. The
two rejected entities can be used if the former’s new input
is optional (e.g. a port for optional debug information) and
the latter’s missing output was not connected to any other
entity.</p>
      <p>Secondly, all inputs and outputs need to accept and
provide the same values as the original, respectively.</p>
    </sec>
    <sec id="sec-5">
      <title>5. CREST Formalization</title>
      <p>In the following section we provide the formal definition
of a CREST model. While the graphical notation is primarily
used for system development, we provide the syntax below
in a top-down approach.</p>
      <p>We define a system to be a quadruple hT; R; E ; ei, where
T is the system’s time-base values (e.g. T = [0; inf ) ), R is
(b) Fewer
inputs
(c) More
inputs
(d) Fewer
outputs
(e) More
outputs
(a) Original
a set of resource types, E a set of entities within the system,
as defined inductively below, and e 2 E , the system’s root
element. Below we introduce several classical notations.
Definition 1. Resources are defined by a set of resource
types R = fR1; : : : Rng. Each type Ri represents a set
of possible values for a specific resource unit, for instance
electricity in Watts or the state of a switch (on/off). The set
of all resource values R is defined as R = Fi Ri.</p>
      <p>
        The distinction of both the resource type (electricity) and
its unit (Watts) is important to avoid conversion problems,
which are known to create failures in CPS, such as in the
Mars Climate Orbiter [
        <xref ref-type="bibr" rid="ref19">18</xref>
        ].
      </p>
      <p>Each e 2 E within the set of entities E describing the
system is defined as:
Definition 2. e = hPe; resourcee; T Se; Ue; entitiese; I nfei,
where T Se is a transition system, Ue the update functions
and I nfe the influences within e.</p>
      <p>An entity e’s set of ports (Pe) is the disjoint union of
inputs, outputs and locals. Each port is assigned a resource
using a resource function.</p>
      <p>Definition 3. Pe = Ie t Oe t Le, where Ie are inputs, Oe
outputs and Le local variables. The function (resource :
PE ! R) assigns a resource to each port.</p>
      <p>Entity behavior is defined by a transition system TS of
states and transitions.
(!e
Definition 4. TS = hSe; !ei, where Se are the entity’s
states, and !e is guarded transition relation between states</p>
      <p>Se Se Ge).</p>
      <p>Guards Ge are function names whose corresponding
functions can be evaluated using a function eval. An
evaluation with a binding the function returns a Boolean value.</p>
      <sec id="sec-5-1">
        <title>Definition 5. eval : Ge</title>
        <p>Be ! B.</p>
        <p>We do not provide a full syntax for guards here, due
to spatial constraints. We impose no limitation on guard
expressions, as long as they return boolean values.</p>
        <p>Bindings Be are total functions mapping ports to
correctly typed resource values.</p>
        <p>Definition 6. The set of possible bindings Be is defined as
the set of possible mappings:</p>
        <p>Be : Pe ! R s.t. 8p 2 Pe; p 7! r 2 resource (p)
Updates assign a function name to a state. The
corresponding functions continuously modify local variables
and output values as time passes in a state. An update’s
evaluation is applied to binding, a port (either output or
local), and an elapsed time. The evaluation returns the
computed value for the port.</p>
        <p>Definition 7. The updates of an entity e are given by
Ue : Se ! Fe, where Fe is the set of function names 2.
Evaluation is performed by:
eval : Fe</p>
        <p>Be
(Oe [ Le)</p>
        <p>T ! R
b; p; t 7! resource (p)
where b is a binding, p a local or output port and t the time
that has passed since the last update. All applicable updates
are performed concurrently, updating their referenced ports
at the same time.</p>
        <p>An entity’s direct subentities are defined by the entities
function.</p>
        <p>Definition 8. entities : E ! P (E), where P (E) is the
power-set of E.</p>
        <p>We also demand that the subentity structure forms a
rooted tree.</p>
        <p>The composition of entities is based on the concept
of influences. Influences represent resource/signal transfers
between and entity’s ports and its subentities’ ports and
amongst an entity’s subentity ports. Formally, an entity e’s
influences I nfe is a function that, given two ports, returns a
translation function between source’s values to the target’s
values.</p>
        <sec id="sec-5-1-1">
          <title>Definition 9.</title>
          <p>0
1
0
1
Inf e : @Ie [ Oe0 A
e02entities(e)
[</p>
          <p>[
@Oe [ Ie0 A ! Te
e02entities(e)
where Te is a homomorphism between the source s and
target t of the resources:</p>
          <p>T : R ! R; s :t :
Definition 10. The signature of the translation function must
conform to the resources in the ports of the influence, thus
8hs; ti 7! f 2 I nfe; f : resource (s) ! resource (t)
2. Graphical CREST can annotate updates with the function itself instead
of its name.</p>
          <p>We demand ports to only have one incoming and one
outgoing influence.</p>
          <p>8p; q 2 Pe :
jhp; x; yi 2 Infej
1 ^ jhx; q; yi 2 Infej
1</p>
          <p>This increases uniformity as signal splitters and
combinators have to be modeled as (logical) entities instead of
separate port behavior.</p>
          <p>Semantics. CREST’s formal semantics are beyond
the scope of this publication. We will however outline it
as follows: An entity’s behavior is controlled by reactive
port observation, continuous update function execution and
transition guard evaluation. The inter-entity semantics link
ports and modify resource transfers using influence
functions, such as the lumen-lux conversion.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6. Advanced Usage of CREST</title>
      <p>While the modeling and graphical visualization of CPS
greatly facilitate communication and clarify the flow of
resources throughout the system, CREST aims to address
some even more important purposes.</p>
      <sec id="sec-6-1">
        <title>6.1. Validation</title>
        <p>CREST was designed with validation in mind. The
concept of specifying a continuous system using mathematical
equations (in update functions and guard conditions) instead
of defining state transitions based on pre-defined time
advance functions (as in DEVS for instance), allows for the
calculation of the exact moment when a guard condition
is satisfied. An example for this is the calculation of the
time when a transition fires. Assuming a water tank entity
that changes to state full when a local variable reaches a
certain value. CREST can continuously track the fill-level
over time (fill-level = water in t) and trigger the transition
as soon as the guard condition applies. Discrete formalisms
on the contrary only provide certain time slots to test guard
conditions.</p>
        <p>
          For the validation of CREST behavior, i.e. the
automaton, we intend the use of region-based verification, as known
in timed automata [
          <xref ref-type="bibr" rid="ref20">19</xref>
          ]. By splitting the variable value
space into equivalence regions, using the guard conditions as
discriminator one can reduce the number of testing regions.
        </p>
      </sec>
      <sec id="sec-6-2">
        <title>6.2. Controller Synthesis</title>
        <p>Based on the behavior information encoded within a
CREST model we plan on synthesizing software controllers
that manage the dynamic behavior of the system. As
visible in the plant growing system, certain inputs (e.g. lamp
and heating switches) and outputs (electricity consumption,
temperature readings, light exposure) would usually be read
and set by a software program. These readings and controls
could be displayed via a user interface in the form of a
supervisory controls and data acquisition (SCADA) software,
or, be used to autonomously issue system commands for
predefined programs.</p>
        <p>While the execution of an individual entity’s model
might be used for behaviour visualization, CREST’s goal
is to aid the development of multi- and many-entity
assemblies. Simulation of such compositions can help system
architects discover optimized parameters within a state-space.
Applied on the plant growing example a simulation can
provide lamp schedules to optimize electricity consumption
or lamp placements for ideal light exposure. CREST models
can be translated to existing formalisms and simulation
platforms such as 20-sim and Simulink.</p>
        <p>
          The scheduling of actions can also be expressed as a
planning domain. In the context of the International
Planning Competition (IPC) the Planning Domain Definition
Language (PDDL) [
          <xref ref-type="bibr" rid="ref21">20</xref>
          ] was defined to standardize their
definition. CREST models can be translated to PDDL (after
discretization) in which scheduling and optimization
problems can be solved.
        </p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>7. Conclusions &amp; Future Work</title>
      <p>This paper introduces CREST, a domain-specific
language for the modeling of continuous, reactive systems.
CREST focuses on modeling the physical transmission of
resources and signals between system entities. It features
automata for the representation of entity states and
input/output ports for the transfer of information. Using a
reactive mapping of port values and continuous variable
updates, a discretization of behavior, as in other formalisms,
is avoided. In fact, a discretization is only needed for the
execution and simulation of the model.</p>
      <p>CREST’s hierarchical, composition-based approach
allows developers to create models that closely reflect a
realworld system. This feature facilitates extension and re-use
of models, and the exchange of subsystems.</p>
      <p>The language is an ideal basis for further research.
In particular, we aim to advance our efforts into area of
automatic model validation. Next to that, our efforts go
towards automatic synthesis of control software that allow
for system optimizations. This means that an eventual
controller should operate autonomously and perform choices
that will optimize a choice of parameters in the system. Such
optimizations include the creation of best operation
conditions for all entities or the minimization of resource usage.
Extensions of this approach could involve the addition of
learning models that adapt the entity’s behavior according
to lessons learned. An example is a growing system where
a plant is monitored and the plant model adapted according
to the observations.</p>
      <sec id="sec-7-1">
        <title>Acknowledgements</title>
        <p>This project is supported by: FNRS STRATOS : Strategy
based Term Rewriting for Analysis and Testing Of Software,
Hasler Foundation, 1604 CPS-Move and COST IC1404:
MPM4CPS</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <given-names>O.</given-names>
            <surname>Biberstein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Buchs</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Guelfi</surname>
          </string-name>
          , “
          <article-title>Object-oriented nets with algebraic specifications: The CO-OPN/2 formalism,” in Advances in Petri Nets on Object-Orientation, ser</article-title>
          .
          <source>LNCS</source>
          . Springer,
          <year>2001</year>
          , pp.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          IEEE CS Press,
          <year>2003</year>
          , pp.
          <fpage>82</fpage>
          -
          <lpage>91</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>Object</given-names>
            <surname>Management</surname>
          </string-name>
          <string-name>
            <surname>Group</surname>
          </string-name>
          ,
          <source>Unified Modeling Language (UML) Specification. Version 2</source>
          .5,
          <string-name>
            <surname>Mar</surname>
          </string-name>
          .
          <year>2015</year>
          , OMG Document formal/2015-03- 01.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          --,
          <source>OMG Systems Modeling Language. Version 1</source>
          .5,
          <string-name>
            <surname>May</surname>
            <given-names>2017</given-names>
          </string-name>
          , OMG Document formal/2017-05-01.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          --,
          <source>UML Profile for MARTE: Modeling and Analysis of RealTime Embedded Systems. Version 1</source>
          .1,
          <string-name>
            <surname>Jun</surname>
          </string-name>
          .
          <year>2011</year>
          , OMG Document formal/2011-06-02.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>P.</given-names>
            <surname>Feiler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Gluch</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Hudak</surname>
          </string-name>
          , “
          <article-title>The Architecture Analysis</article-title>
          &amp; Design
          <string-name>
            <surname>Language (AADL): An</surname>
            <given-names>Introduction</given-names>
          </string-name>
          ,” Software Engineering Institute, Carnegie Mellon University,
          <source>Tech. Rep</source>
          . CMU/SEI-2006
          <source>- TN-011</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Oquendo</surname>
          </string-name>
          , “
          <article-title>Pi-ADL: an Architecture Description Language based on the higher-order typed pi-calculus for specifying dynamic and mobile software architectures,” SIGSOFT Softw</article-title>
          .
          <source>Eng. Notes</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <surname>P. J. Ashenden</surname>
          </string-name>
          ,
          <article-title>The Designer's Guide to VHDL</article-title>
          , 3rd ed.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          Francisco, CA, USA: Morgan Kaufmann Publishers Inc.,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <given-names>D.</given-names>
            <surname>Thomas</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Moorby</surname>
          </string-name>
          ,
          <article-title>The Verilog Hardware Description Language, ser</article-title>
          .
          <source>The Verilog Hardware Description Language</source>
          . Kluwer Academic Publishers,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>H.</given-names>
            <surname>Paynter</surname>
          </string-name>
          ,
          <source>Analysis and Design of Engineering Systems: Class Notes for M.I.T. Course</source>
          <volume>2</volume>
          ,
          <fpage>751</fpage>
          .
          <string-name>
            <surname>M.I.T</surname>
          </string-name>
          . Press,
          <year>1961</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>K.</given-names>
            <surname>Hangos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Lakner</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Gerzson</surname>
          </string-name>
          ,
          <article-title>Intelligent Control Systems: An Introduction with Examples, ser</article-title>
          .
          <source>Applied Optimization</source>
          . Springer,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>C.</given-names>
            <surname>Ptolemaeus</surname>
          </string-name>
          , Ed.,
          <string-name>
            <surname>System</surname>
            <given-names>Design</given-names>
          </string-name>
          , Modeling, and
          <article-title>Simulation using Ptolemy II. Ptolemy</article-title>
          .org,
          <year>2014</year>
          . [Online]. Available: http: //ptolemy.org/books/Systems
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>C.</given-names>
            <surname>Products</surname>
          </string-name>
          , “
          <fpage>20</fpage>
          -sim,” http://www.20sim.com/,
          <year>2017</year>
          , accessed:
          <fpage>2017</fpage>
          - 07-12.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [14] MathWorks, “Simulink: Getting Started Guide, Accessed:
          <fpage>2017</fpage>
          -07- 12,” http://www.mathworks.com/help/pdfn doc/simulink/sln gs.pdf,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>B. P.</given-names>
            <surname>Zeigler</surname>
          </string-name>
          , Multifaceted Modelling and Discrete Event Simulation. London: Academic Press,
          <year>1984</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Weidlich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Dijkman</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Weske</surname>
          </string-name>
          ,
          <source>Deciding Behaviour Compatibility of Complex Correspondences between Process Models</source>
          . Springer Berlin Heidelberg,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>B. H.</given-names>
            <surname>Liskov</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Wing</surname>
          </string-name>
          , “
          <article-title>A Behavioral Notion of Subtyping,”</article-title>
          <source>ACM Trans. Program. Lang. Syst.</source>
          , vol.
          <volume>16</volume>
          , no.
          <issue>6</issue>
          , pp.
          <fpage>1811</fpage>
          -
          <lpage>1841</lpage>
          , Nov.
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>Mars</given-names>
            <surname>Climate Orbiter Mishap Investigation Board</surname>
          </string-name>
          , “
          <source>Mars Climate Orbiter Mishap Investigation Board Phase I Report,” NASA, Technical report</source>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>R.</given-names>
            <surname>Alur</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. L.</given-names>
            <surname>Dill</surname>
          </string-name>
          , “
          <article-title>A theory of timed automata,” Theoretical Computer Science</article-title>
          , vol.
          <volume>126</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>183</fpage>
          -
          <lpage>235</lpage>
          , Apr.
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>D.</given-names>
            <surname>McDermott</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ghallab</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Howe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Knoblock</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ram</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Veloso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Weld</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Wilkins</surname>
          </string-name>
          , “
          <article-title>PDDL - The Planning Domain Definition Language,” Yale Center for Computational Vision</article-title>
          and Control,
          <source>Tech. Rep.</source>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>