<!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>Behavioral Types for Space-aware Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jan Olaf Blech</string-name>
          <email>fjanolaf.blech@rmit.edu.aug</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Peter Herrmann</string-name>
          <email>fherrmann@item.ntnu.nog</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Norwegian University of Science and Technology</institution>
          ,
          <addr-line>Trondheim</addr-line>
          ,
          <country country="NO">Norway</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>RMIT University</institution>
          ,
          <addr-line>Melbourne</addr-line>
          ,
          <country country="AU">Australia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Behavioral types for space-aware systems are proposed as a means to facilitate the development, commissioning, maintenance, and refactoring of systems with cyber-physical characteristics. In this paper, we particularly introduce the formal definition of behavioral types that are associated with system components in order to specify their expected behavior. As application domain, we concentrate on systems from industrial automation that encompass recurring behavior.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>In the industrial automation domain, many systems consist
of physically distributed components that cooperate with each
other by carrying out recurring behavioral patterns. A typical
example is a state-of-the-art assembly line consisting of a
series of robots that build complex articles like cars. To work
correctly, the behaviors of the components need to fulfill
various software and physical behavioral aspects that can be
quite diverse and may comprise, for instance, communication
protocols, heat emission or spatial occupation (e.g., a robot
adding a part to a car must perform trajectories such that the
car’s carriage is not damaged).</p>
      <p>To handle the complexity and diversity of specifying
component and system behaviors, we introduce space-aware
behavioral types that allow us to capture both software and
physical aspects. As with types in traditional programming
languages, e.g., primitive datatypes and their composition,
the behavioral types can be used to eliminate error sources
already at the development time of software systems. This
is analog to classical static type checks performed by a
compiler. Furthermore, we can use the behavioral types to
eliminate runtime errors. This resembles dynamic type checks
that, in many programming languages, are performed when
accessing pointers that reference data of types which cannot be
statically determined. Behavioral types also provide additional
information about components which can be used for
toolbased operations that allow the discovery of components and
the dynamic reconfiguration of systems.</p>
      <p>
        The behavioral types introduced in this paper are applicable
on different scales such as to express the interaction of the
various parts of a single robot or to specify collaboration
aspects between different sites (cf. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]). The limitation to
recurring behavior makes it possible to verify behavior by
checking only a finite number of situations which eases the
use of highly automatic verification tools. Our approach makes
it possible to check the following features of a type system:
      </p>
      <sec id="sec-1-1">
        <title>Type compatibility checking — as known from types</title>
        <p>of imperative programming languages, e.g., checking
whether we can add an integer to a float — with
spaceaware behavioral types associated to components.
Subtyping allows the replacement of a component with
a certain behavioral type t by another component that
has a subtype t0 of type t. We base subtyping on spatial
geometric refinement that can be checked automatically.
Type composition is necessary to infer types of
components that are composed of existing components with
known types.</p>
        <p>In addition, we want to ensure</p>
        <p>Type conformance, i.e., the question whether a component
really behaves according to its specification: the
geometric spatial behavioral type.</p>
      </sec>
      <sec id="sec-1-2">
        <title>A. Motivating Examples</title>
        <p>Loading robot: Figure 1 shows two pictures of a robot
interacting with a moving device. The robot and the device
have spatial behaviors, i.e., their positions in space change
during time. At various points on the time scale, that we
call timepoints, they physically occupy certain spaces that
can be characterized by coordinates in a geometric coordinate
system. On the one hand, we like to ensure using
spaceaware behavioral types that the robot does not collide with the
moving device. On the other one, we also want to guarantee
that the robot grip is coming very close to the device in order
to avoid that articles are damaged while being loaded onto the
device.</p>
        <p>The robot consists of three segments and a tool that are
attached to each other via joints. Each of the four robot
components has an individual spatial behavior relative to the
parts it is attached to. As depicted on the left side of Fig. 1,
this spatial behavior can be expressed with a space-aware
behavioral type that encodes the movement of a robot part
over time. Typically, the behavioral description of each type
is relative to a distinct point in the coordinate system. For
example, multiple instances of the tool may have the same
type, but may be deployed independently in different locations
(e.g., segments 1 and 3). Likewise, we can use a behavioral
type expressing the behavior of the moving device.</p>
        <p>The right side of Fig. 1 shows the composition of the types
from the robot’s components into a single type representing
the behavior of the overall robot. The composed type for the
robot takes the relative spatial movements of the segment and
tools to each other into account. To verify that the robot does
not collide with the moving devices but that its grip comes
sufficiently close, we can apply the composed type of the
robot instead of the four simple ones referring to its parts.
The spatial verifications are carried out by type checking of the
composed robot type and the one of the moving device. Using
the subtyping feature, we can even replace robot segments by
other ones without needing to repeat the type checking proofs
of safety properties as long as the replaced segments are in
certain relations with the original ones.</p>
        <p>Rotating robot arm: Another example of a robot
composition is depicted in Figure 2. Here, three components are
shown: c1 is a robot arm. It performs a circular movement
around a center point and features a reference point at the outer
end that turns counterclockwise. This behavior is captured
using a space-aware behavioral type. Another component c2
also carries out a counterclockwise circular movement albeit
with a smaller radius. This is also encoded in a space-aware
behavioral type. c2 gets attached to c1 via the reference
point. By type composition, we can create a behavioral type
modeling the joint behavior of c1 and c2.</p>
        <p>c3 is also a robot arm, possibly of the same kind as c1,
that performs the same rotational movement around a different
center point. In consequence, the behavioral type of c3 may
be the same as the one of c1 which, however, refers to another
center point.</p>
        <p>A typical type checking problem is the decision whether
the system composed of c1 and c2 can collide with c3. For
type checking, we compute the least common multiple of the
cycle times for each of the three components and compare for
each time point whether a collision may occur. The use of
time points instead of time intervals requires that the spatial
behavior at each time point is a safe approximation of the
behavior during the adjacent time intervals. We will discuss
this later in detail.</p>
      </sec>
      <sec id="sec-1-3">
        <title>B. Related Work</title>
        <p>
          The idea to use well defined specifications that define the
interfaces of software component systems, has been made
popular by the design-by-contract approach for software
components [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ]. More recent work comprises specification and
contract languages for component-based systems that have
been studied in the context of web services. Process
algebralike languages and associated techniques are studied in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ],
[
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. Another algebraic approach to service composition is
presented in [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. In [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ], so-called External State Machines
(ESMs) are used to specify the interface behavior of functional
software building blocks. The ESMs do not only facilitate
the integration of the building blocks into their environment
but make also compositional model checking of the building
blocks possible.
        </p>
        <p>
          Behavioral types have been studied as interface automata
[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] for software components and in the Ptolemy II project [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]
for the software part of real-time systems. Further, their use as
means for behavioral checks at runtime for component-based
systems was investigated in [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
        </p>
        <p>
          We proposed a behavioral type system in [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. In [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ],
ensuring behavioral type correctness at runtime using techniques
from runtime verification was discussed in the context of
Java/OSGi-based applications. Moreover, we studied
compatibility checking in [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. This paper also features a solution
for behavioral type coercion for a highly restricted class of
behavioral types. Furthermore, we have applied a behavioral
types concept to the software part of automation control
systems [
          <xref ref-type="bibr" rid="ref37">37</xref>
          ] which can be seen as a precursor of the work
presented here. Providing a format for spatial behavioral types
and means to reason about it is a new contribution of this
paper.
        </p>
        <p>
          Specification of spatial properties has been studied using
process algebra-like formalisms [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. A type system
based on this formalism was introduced in [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] for
concurrency and resource control. The author presents typing
rules and automatic type checking which is not a focus here.
Moreover, a verification tool has been developed to check
properties based on this formalism in [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. In contrast, we
are interested in developing a solution that fits for industrial
robots and related machinery. Therefore, we restrict ourselves
to the checking of recurrent behavior in geometric space and
concentrate us on tailoring a formalism and compliant
checking techniques for this particular domain. Contracts between
components with a cyber-physical flavour have been studied
in the SPEEDS project [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. Here, the contracts also
take behavior in the form of a transition system into account.
In [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ] contracts for avionic components are studied.
        </p>
        <p>
          Reasoning about spatial and geometric constraints is
described in, e.g., [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]. A particularly important
application domain is robot path planning which has been studied
for decades (e.g., [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ], [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ]). Spatial types are also used
for databases, e.g., to manage geometric objects [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] or in
Geographic Information Systems [
          <xref ref-type="bibr" rid="ref36">36</xref>
          ]. A challenge of these
approaches is to guarantee that a reasonable subset of the
spatial logic is decidable and, of course, that realistic system
models can be checked in an acceptable period of time
(e.g., see decidability results in [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]). Logic approaches for
hybrid systems (e.g., [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ], [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ]) provide comprehensive
languages and tools for describing cyber-physical systems. In
contrast to these works, our focus is stronger aligned with the
industrial automation domain and the use as a behavioral type
system. The time and geometry focus on the reasoning side of
our framework can be complemented by a topological view.
This has advantages in areas such as security analysis [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ].
        </p>
        <p>
          As we will show below, the approach presented here fits
well to the existing verification technique BeSpaceD [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] that
already proved that it can be used to check spatial properties
of various systems (see [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ], [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]).
        </p>
      </sec>
      <sec id="sec-1-4">
        <title>C. Overview</title>
        <p>Section II introduces our space-aware behavioral types. The
underlying semantics and related behavioral types features are
discussed in Sect. III. An evaluation is featured in Sect. IV
followed by a conclusion in Sect. V.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>II. SPACE-AWARE BEHAVIORAL TYPES</title>
      <p>In general, we describe spatiotemporal behavior for the
industrial automation domain by defining which properties
hold at which timepoint. Due to the recurrent nature of
the behavior, we have to observe only a finite number of
timepoints. In Sect. II-A we describe the basic formalism of
our behavioral type definitions and introduce certain templates
facilitating the use of our method. Thereafter, we discuss the
constructors and composition operators in Sect. II-B. In the
remainder of this section we justify our modeling choices.</p>
      <sec id="sec-2-1">
        <title>A. Behavioral Descriptions</title>
        <p>We use simple logic-based descriptions to define abstract
datatypes. These behavioral descriptions can be composed of
the following operators and predicates:</p>
        <p>Logical operators: ^, _, and : as well as abbreviations
such as ! and Vi2I .</p>
      </sec>
      <sec id="sec-2-2">
        <title>Predicates that characterize timepoints. This includes</title>
        <p>expressions such as timepoints modulo a cycle time —
after which the behavior is repeated — and time intervals.</p>
      </sec>
      <sec id="sec-2-3">
        <title>Predicates characterizing events. In addition to the space</title>
        <p>
          aware aspects one can also use events to specify software
interaction protocols [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-4">
        <title>Predicates indicating nodes and edges in a graph structure.</title>
      </sec>
      <sec id="sec-2-5">
        <title>Predicates indicating occupation of geometric space.</title>
      </sec>
      <sec id="sec-2-6">
        <title>Parameters defining the ownership of space occupation.</title>
        <p>Here, spatial occupation behavior is associated with a
certain component that owns the occupied space.</p>
        <p>Our way to associate space occupation with ownership
allows us to specify various spatial properties of a component
in separation. As already mentioned, examples for such
properties that may all refer to the same physical component C,
may be C’s physical occupation of space, the distribution of
heat emitted by C, and the range over which C may broadcast
wireless communication messages. These properties can be
modeled by separate predicates that all use C as their owner.
In consequence, the individual properties can be separately
verified by type checking which is carried out based on two
different approximation approaches:</p>
        <p>Overapproximation means to consider a geometric space
that is at least as large as the one that is factually covered
by an owner. This fits to properties like the physical
occupation of space or the distribution of heat.</p>
        <p>Underapproximation refers to a geometric space that is
at most as large as the one factually covered. We can use
it, for example, to check broadcasting ranges.</p>
        <p>The two approaches are closer described in Sect. III.</p>
        <p>Templates: Behavioral descriptions encoding a
component of the industrial automation / robot domain can follow
the templates shown in Fig. 3. The specification features
a conjunction over implications. Each implication refers to
certain conditions that hold at a certain timepoint and in the
presence of events. The conditions can be, for instance, aspects
referring to the spatial occupation of a geometric object. Each
aspect itself is constructed as predicates of the behavioral
description language introduced above. It primarily features
constraints on space such as conjunctions of predicates that
indicate the occupation of space for a geometric object. A
space occupation aspect is either classified as an over- or an
underapproximation.</p>
        <p>The template specifies spatial behavior up to the timepoint
referring to finishing a recurrent behavior cycle. After the cycle
time, the behavioral description is repeated. This, however,
does not necessarily always result in the same behavior,
since events may be different. Having a cycle time is a
typical feature in industrial automation and a key characteristic
of Programmable Logic Controllers (PLC) used to control
automation facilities (e.g., the IEC 61131-3 and IEC 61499
standards) and for controlling industrial robots.</p>
        <p>
          Behavioral descriptions may be specified by developers
manually. However, typical descriptions can comprise several
thousand cases. Thus, a preferable way is to specify a system
in a simulation or development tool and generate the
behavioral description automatically. We have successfully done this
using the model-based engineering tool Reactive Blocks [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ]
as described in [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-7">
        <title>B. Type Constructors and Composition</title>
        <p>Type constructors use behavioral descriptions and additional
information to create a space-aware behavioral type. We
present two kinds of space-aware behavioral types. Primitive
space-aware behavioral types are often used to capture the
behavior of a single atomic component, whereas composed
space-aware behavioral types are typically applied to capture
the behavior of composed systems. However, composed types
may also be applied to characterize different aspects of a single
atomic component and a primitive type may be used to capture
the behavior of a composed system, when no detailed behavior
of subcomponents is available or it is not necessary to describe
that separately.</p>
        <p>Basic space-aware behavioral types: We define three
different kinds for the primitive behavioral types:
1) A behavioral description bd may be accompanied by the
cycle time ct, after which the behavior is repeated to
form a geometric spatial behavioral type using the tuple
2) An extended definition features a geometric offset go
which is a point in the geometric space. Likewise,
spaceaware behavioral types allow to shift the starting time
of a cycle by a time offset to in order to allow the reuse
of the behavioral description for a component that may
be started with a delay. The spatial and starting time
impacts of the behavioral description can be described
by the following tuples:</p>
        <p>(bd; go; ct), (bd; to; ct) and (bd; go; to; ct)
3) A component that features a behavior in time and space
may be attached to a joint device of another
component where this joint device has its own spatiotemporal
behavior. This relative movement of a component to
another is captured in the following type definition:
A type may feature a set RP of reference points
through which other components may be attached to
it and a behavioral description is provided with each
reference point. For instance, the segments and the tool
of the robot introduced in Sect. I-A are attached to
each other via reference points. Each reference point
exhibits its own spatiotemporal behavior that depends
on both, the physical placement of the reference point
as well as the behavior of the overall component. In
the type constructor, we model the relation between
reference points and their behavioral descriptions by
the function 7! mapping all elements of set RP to the
set BD of all possible behavioral descriptions. Thus, if
bdi 2 BD is the behavioral description of a reference
point rpi 2 RP , the formula 7! (rpi) = bdi holds which
we express as rpi 7! bdi for convenience. The type
constructor is defined as follows:</p>
        <p>(bd; RP; 7!; ct)
The behavioral description used in the reference point
must only describe the movement of a single point in
relation to time and events.</p>
        <p>Composed space-aware behavioral types: The behavior
of multiple components can be combined, e.g., to form new
components or to define alternative types. A way to combine
behavior types syntactically is type composition. Its semantics
is highlighted in the following:
1) The union type + provides an alternative between two
different space-aware behavioral types gbt and gbt0 each
defined as one of the three types introduced above:
gbt + gbt0
As an example, the intended semantics — a behavioral
alternative — of a union of two space-aware behavioral
types is given below (lcm denotes the least common
multiple):</p>
        <p>(bd; ct) + (bd0; ct0) , ((bd _ bd0); lcm(ct; ct0))</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>2) Compositions as expressed by the operator to record types in programming languages: correspond</title>
      <p>gbt</p>
      <p>gbt0
Semantically, that corresponds to the following operation
on the behavioral description level:</p>
      <p>(bd0; ct0) , ((bd ^ bd0); lcm(ct; ct0))
Furthermore, as in records, we support an
implementation that maps names to behavioral descriptions. This
allows us to have record-like field descriptors.
3) Composing structures of components attached to
reference points, like in the robot example depicted in
Fig. 1, usually leads to lengthy nested behavioral
descriptions. To simplify these definitions, we offer
nonnested type constructors for such structures. The
nonnested variant does not have to be attached to a base
component such it does not need to feature a cycle
time. The simplified constructor can be used if a
structure consisting of composed components is modeled by
the basic space-aware behavioral type gbt of kind 3,
i.e., gbt , (bd; RP; 7!; ct). We also introduce the set
GBT that features the geometric spatial behavior in
the remainder of the nested structure, as well as the
function ! mapping the reference points rpi 2 RP
in the composed structure to their respective behaviors
gbti 2 GBT , i.e., rpi ! gbti. The resulting behavioral
type is syntactically defined in the following way:
(gbt; RP; !)
To illustrate this, we regard our motivating example from
Sect. I-A and Fig. 1. The composed type for the robot
is made up of the behavioral type tt of the tool and the
types at1; at2; at3 of the three robot arm segments. The
four types can be nested in the following way:
(at1; frpat1 g;
rpat1 7! (at2; frpat2 g;
rpat2 7! (at3; frpat3 g; rpat3 7! (tt))
)
)
Using our introduced definition, the behavioral type of
each segment type ati with a behavioral description abi
has the form:</p>
      <p>(abi; frpati g; rpati ! rpbrpati )
where rpbrpk refers to the behavior of a reference point
rpk thereby removing the nested structure.</p>
      <p>Our notion of behavioral types takes the intended semantics
into account, i.e., the behavior in space and time. Different
syntactic type definitions which may be grouped into equivalence
classes may exist for the same space-aware behavioral type.
For instance, by using the symmetry of the union operator
in type composition or the symmetry of ^, we can construct
syntactically different type definitions for the same type.</p>
      <p>III. SEMANTICS OF SPACE-AWARE BEHAVIORAL TYPES
To facilitate the verification that objects occupy a certain
geometric space in an area, we can use subtyping of the
behavioral types of these objects. As described in Sect. II-A,
verification of spatial properties can be performed based on both,
overapproximation and underapproximation. This is
considered by distinguishing subtyping between
overapproximationrefinement aspects and underapproximation-refinement
aspects. A space-aware behavioral type T 0 is a subtype of
another type T if and only if the following conditions hold
for each spatial aspect and each shared timepoint t:
For overapproximation-refinement aspects, the space
occupation at t specified in T 0 is geometrically included in
T . Thus, overapproximation-oriented spatial proofs (e.g.,
collision avoidance) that were carried out for a physical
component represented by T also hold for a “smaller”
one described by T 0.</p>
      <p>For underapproximation-refinement aspects, the space
occupation at t specified in T is geometrically included
in T 0. So, underapproximation proofs (e.g., broadcast
ranges) done for T hold also for a “larger” T 0.</p>
      <p>For both, overapproximation-refinement and
underapproximation-refinement aspects hold, that if T comprises
unbound reference points, T 0 incorporates the same
unbound reference points, which show an identical behavior.</p>
      <p>Subtyping imposes a partial order relation between the
space-aware behavioral types since according to our definition
the following properties hold:</p>
      <p>Reflexivity: A type is its own subtype since an occupied
space includes itself.</p>
      <p>Antisymmetry: For aspects refined by overapproximation
holds that if the space occupied according to T 0 is
geometrically included in the one of T but not identical,
then there is at least a point in space that is occupied by
T but not by T 0. Thus, the space of T is not included in
the one of T 0 and, in consequence, T is not a subtype of
T 0 with respect to overapproximation. The argumentation
for underapproximation is analog.</p>
      <p>Transitivity: If T 0 is a subtype of T and T 00 a subtype of
T 0 with respect to overapproximation, then the occupied
space according to T 00 is included in the one defined
by T 0 and that one is included in the one according
to T . Thus, the occupied space defined for T 00 is also
included in the one specified in T such that T 00 is also a
subtype of T . An analogous deduction can be drawn for
underapproximation.</p>
      <p>It is possible to construct a lattice based on this partial order
for a fixed number of aspects. The type ? is a subtype of
all other types. Here, all overapproximation-refinement aspects
are occupying zero space all the time, while
underapproximation-refinement aspects occupy all the space all the time.
In contrast, all other types are subtypes of the &gt; element. Thus,
underapproximation-refinement aspects occupy zero space all
the time, while overapproximation-refinement aspects occupy
all the space all the time.</p>
      <p>IV. BEHAVIORAL TYPE CHECKING AND EVALUATION
In this section, we discuss means to decide the compatibility
of system components based on their behavioral types.</p>
      <sec id="sec-3-1">
        <title>A. Type Compatibility Checking Algorithm</title>
        <p>For two space-aware behavioral types with cycle times ct1
and ct2, we perform space-aware behavioral type checking in
the following way:
1) We calculate the least common multiple of ct1 and ct2
that we name ct.
2) For all time points t between 0 and ct we perform the
following steps:
a) Retrieve for both behavioral types all relevant
spatial information expressed by the behavioral
descriptions bd1 and bd2 at timepoint t.
b) Decide possible overlappings between the
behavioral descriptions bd1 and bd2 by regarding the
possibly occupied space for all
underapproximationrefinement aspects. Here, an overlapping must
occur, for each spatial aspect. Otherwise, the types
are incompatible.
c) Decide additional possible overlapping between
spatial information of bd1 and bd2 by regarding
the possibly occupied space for all
overapproximation-refinement aspects. Here, no overlapping must
occur for any spatial aspect. Otherwise, the types
are incompatible.</p>
        <p>
          The algorithm is carried out using the checker BeSpaceD [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]
that, depending on the geometry used, converts the spatial
information and property into a SAT or an SMT problem. For
that, BeSpaceD breaks the geometric constraints down into
behavioral
        </p>
        <p>types
extraction
behavioral
description
abstraction
spatial boxes
representation
selection
cycle times
checking
iterative /
parallel
behavior
time / aspect
transformation</p>
        <p>point
representation
overlapping
check
inclusion
check
more fine grained verification conditions as we discuss in the
following.</p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Making Behavioral Descriptions Checkable</title>
        <p>
          Our modeling style allows for very rich specifications
describing quite complex systems. Checking these specifications
would demand to treat a state space that would exceed the time
and memory limits of the type checking algorithm introduced
above. In the following, we present some steps allowing to
abstract complex specifications into checkable ones such that
our type compatibility checking and subtyping algorithms can
be used. To guarantee that the abstractions do not falsify
the verification results, they have to preserve the transitivity,
reflexivity, and antisymmetry properties introduced in Sect. III.
The abstraction consists of an order of operations that is
depicted in Figure 4 (see also [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]):
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>1) From time intervals to timepoints: Time interval-based</title>
        <p>descriptions are transformed into timepoint-based
descriptions by using safe approximations of geometric
spatial behavior of adjacent time intervals at the
timepoints.</p>
      </sec>
      <sec id="sec-3-4">
        <title>2) Extraction of relevant behavioral information: Be</title>
        <p>
          SpaceD provides functions that are based on time and
spatial aspects and provide sub-descriptions for the
relevant behavior which are defined on the inductive
structure of the behavioral descriptions.
3) From segments to boxes: Parts of robots may be
described by segments or other geometric objects.
Segments have a cylindric shape with a radius, a length, and
an orientation. For fast and easy checking, we convert
segments and other geometric objects into box-based
approximations. Boxes are defined by an upper left front
and a lower right rear coordinate that are both expressed
by their respective x, y and z axes of the coordinate
system. Figure 5 shows a variant of the second example
from Sect. I-A in which the line representations of the
three robot components are replaced by a number of
boxes representing the space covered. As long as the
boxes cover all the space of the three components, this
replacement is a safe overapproximation. (It would be a
safe underapproximation if all space represented by the
boxes was covered by the components.)
4) Automata and spatial behavior: The behavior of our
components can be modeled using automata with a
cyclic control flow. Here, we describe possible
transitions and states encountered as events that are part of
the behavioral description.
5) From boxes to spacepoints: Behavioral descriptions
using geometric boxes can be broken down into
descriptions that contain geometric points, so-called
spacepoints. For example, a cube with a side length of 10 may
be broken down into 10 10 10 = 1000 spacepoints. In
the behavioral description, each spacepoint is described
using a predicate. In spite of this enlargement of the
behavioral representation, we can check the spacepoints
speedily since points from different behavioral
descriptions are comparable without further interpretation.
6) Checking of overlappings and inclusion with points: We
use hash-sets for checking overlappings and inclusion of
two descriptions. For overlappings, we insert points from
one description into the hash-set and check whether the
points of the second description are already in the
hashset. For inclusion, we insert points from one description
and check whether all points from the other description
are indeed included in the hash-set.
7) SMT and other approaches: In addition to comparing
geometric representations on a point level, we have
developed SMT encodings of geometric objects that are
more efficient for large sets of points [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. Furthermore,
checking of point-wise overlappings and inclusion can
also be performed in BeSpaceD using a SAT solver.
        </p>
      </sec>
      <sec id="sec-3-5">
        <title>C. Implementation</title>
        <p>A first implementation of BeSpaceD and space-aware
behavioral types exists. It is done in the functional programming
case class OR (t1 : Invariant, t2 : Invariant)
extends Invariant;
case class AND (t1 : Invariant, t2 : Invariant)
extends Invariant;
case class NOT (t : Invariant) extends Invariant;
case class IMPLIES (t1 : Invariant, t2 : Invariant)
extends Invariant;</p>
        <p>...
case class TimePoint [T](timepoint : T)</p>
        <p>extends ATOM;
case class TimeInterval [T]
(timepoint1 : T, timepoint2 : T) extends ATOM;
case class Event[E] (event : E) extends ATOM;
...
case class Occupy3DBox
(x1 : Int, y1: Int, z1 : Int,
x2 : Int, y2 : Int, z2 : Int) extends ATOM;
case class OccupySegment3D
(x1 : Int, y1 : Int, z1 : Int,
x2 : Int, y2 :Int, z2 : Int, radius : Int)
extends ATOM;
case class Occupy3DPoint (x:Int, y:Int, z: Int)
extends ATOM</p>
        <p>Fig. 6. Some Scala definitions
language Scala which facilitates the break down and
conversion of behavioral descriptions.</p>
        <p>Behavioral descriptions are provided as abstract data types
called Invariant. We chose this name since logical
descriptions are supposed to capture the abstract behavior of a
component during its entire lifetime. For look and feel, we
provide an excerpt in Fig. 6. Some logical operators, predicates
for time and events and geometric occupation of time are
shown. The description language is more expressive than the
subset used for space-aware behavioral types, e.g., time only
needs to be a type with a partial order (parameter T) whereas
in our semantics definitions above we used integers.</p>
        <p>In the following, we discuss two features of the
implementation:</p>
        <p>Type system features: Using the type constructors above
with the behavioral specifications, our type checking algorithm
invoking the BeSpaceD tool allows us to check (i)
spaceaware behavioral type compatibility and (ii) whether a
spaceaware behavioral type is a subtype of another one. Note, that
behavioral descriptions can look different, but may describe
the same type. Our framework is able to decide both subtyping
and type compatibility, since we exhaustively simulate possible
behavior bounded by the a cycle time. In cases, where the
behavioral descriptions use elements that we cannot check,
we may still derive an order of types based on checkable
spatial aspects. For all non-checkable aspects, we assume
safe approximations. Hence, a type for which the behavioral
specification is uncheckable for all aspects, is equivalent to ?.</p>
        <p>Speed of type checking: We implemented the space-aware
behavioral types checking as described above. Checking can
be done in acceptable time, e.g., checking two types with a
cycle time of 1000 different timepoints and 15000 spacepoints
for the first resp. 20000 spacepoints for the second behavioral
description was done in between seven and eight seconds on
an Intel core i5 running 2.8 GHz with 8 GB RAM using Mac
OS 10.8.4.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>V. CONCLUSION</title>
      <p>We presented behavioral types as a concept for
spaceaware systems facilitating the development, commissioning,
maintenance, and refactoring of systems with cyber-physical
characteristics. Using a robot system, we motivated, formally
defined and discussed their applicability.</p>
      <p>The approach is intended to be used in industrial
automation. Facilities in the domain typically operate using cycles,
after which behavior is repeated. For example, a robot in an
assembly line may perform the same movement and operation
on a workpiece over and over again with slight variations based
on the color of a work piece. Our behavioral descriptions were
designed with that kind of behavior in mind.</p>
      <p>
        Moreover, we believe that the use of behavioral type-like
specifications of cyber-physical systems is especially
important for remote collaboration of engineering teams. Ongoing
work in this direction comprises our collaborative engineering
project [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] with a focus on remote handling of industrial
installations in the Australian outback (such as mining sites)
or for oil rigs.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1] L. de Alfaro,
          <source>T.A. Henzinger. Interface automata. Symposium on Foundations of Software Engineering</source>
          , ACM ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>F.</given-names>
            <surname>Arbab</surname>
          </string-name>
          .
          <article-title>Abstract Behavior Types: A Foundation Model for Components and Their Composition. Formal Methods for Components and Objects</article-title>
          . vol.
          <volume>2852</volume>
          of LNCS, Springer-Verlag,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Benveniste</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Caillaud</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ferrari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Mangeruca</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Passerone</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Sofronis</surname>
          </string-name>
          ,
          <article-title>Multiple viewpoint contract-based specification and design</article-title>
          .
          <source>Formal Methods for Components and Objects</source>
          . Springer-Verlag,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Benveniste</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Caillaud</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Nickovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Passerone</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.-B. Raclet</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Reinkemeier</surname>
          </string-name>
          et al..
          <article-title>Contracts for System Design</article-title>
          ,
          <string-name>
            <surname>INRIA</surname>
          </string-name>
          , Rapport de recherche RR-
          <volume>8147</volume>
          , Nov.
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>B.</given-names>
            <surname>Bennett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. G.</given-names>
            <surname>Cohn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Wolter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zakharyaschev</surname>
          </string-name>
          .
          <article-title>MultiDimensional Modal Logic as a Framework for Spatio-Temporal Reasoning</article-title>
          .
          <source>Applied Intelligence</source>
          , Volume
          <volume>17</volume>
          ,
          <string-name>
            <surname>Issue</surname>
            <given-names>3</given-names>
          </string-name>
          , Kluwer Academic Publishers,
          <year>November 2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Blech</surname>
          </string-name>
          .
          <article-title>Ensuring OSGi Component Based Properties at Runtime with Behavioral Types</article-title>
          .
          <string-name>
            <surname>Model-Driven</surname>
            <given-names>Engineering</given-names>
          </string-name>
          , Verification, and
          <string-name>
            <surname>Validation</surname>
          </string-name>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Blech</surname>
          </string-name>
          .
          <article-title>Towards a Framework for Behavioral Specifications of OSGi Components. Formal Engineering approaches to Software Components and Architectures</article-title>
          .
          <source>Electronic Proceedings in Theoretical Computer Science</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Blech</surname>
          </string-name>
          , I. Peake,
          <string-name>
            <given-names>H.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ramaswamy</surname>
          </string-name>
          , Sudarsan SD., and
          <string-name>
            <given-names>V.</given-names>
            <surname>Narayanan</surname>
          </string-name>
          .
          <article-title>Collaborative Engineering through Integration of Architectural, Social and Spatial Models. Emerging Technologies and Factory Automation (ETFA)</article-title>
          , IEEE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Blech</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Scha</surname>
          </string-name>
          <article-title>¨tz. Towards a Formal Foundation of Behavioral Types for UML State-Machines</article-title>
          .
          <source>UML and Formal Methods</source>
          . Paris, France,
          <source>ACM SIGSOFT Software Engineering Notes</source>
          ,
          <year>August 2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Blech</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          .
          <article-title>Towards Modeling and Checking the Spatial and Interaction Behavior of Widely Distributed Systems</article-title>
          .
          <source>Improving Systems and Software Engineering Conference</source>
          , Melbourne,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Bravetti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Zavattaro</surname>
          </string-name>
          .
          <article-title>A theory of contracts for strong service compliance</article-title>
          .
          <source>Mathematical Structures in Computer Science</source>
          <volume>19</volume>
          (
          <issue>3</issue>
          ):
          <fpage>601</fpage>
          -
          <lpage>638</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>L.</given-names>
            <surname>Caires</surname>
          </string-name>
          .
          <article-title>Spatial-behavioral types for concurrency and resource control in distributed systems</article-title>
          . Theoretical Computer Science, Elsevier,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>L.</given-names>
            <surname>Caires</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Cardelli</surname>
          </string-name>
          .
          <article-title>A Spatial Logic for Concurrency (Part I)</article-title>
          .
          <source>Information and Computation</source>
          , Vol
          <volume>186</volume>
          /2 November 2003.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>L.</given-names>
            <surname>Caires</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Cardelli</surname>
          </string-name>
          .
          <article-title>A Spatial Logic for Concurrency (Part II)</article-title>
          .
          <source>Theoretical Computer Science</source>
          ,
          <volume>322</volume>
          (
          <issue>3</issue>
          ) pp.
          <fpage>517</fpage>
          -
          <lpage>565</lpage>
          ,
          <year>September 2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>L.</given-names>
            <surname>Caires</surname>
          </string-name>
          and
          <string-name>
            <given-names>H. Torres</given-names>
            <surname>Vieira</surname>
          </string-name>
          .
          <article-title>SLMC: a tool for model checking concurrent systems against dynamical spatial logic specifications</article-title>
          .
          <source>Tools and Algorithms for the Construction and Analysis of Systems</source>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>G.</given-names>
            <surname>Castagna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Gesbert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Padovani</surname>
          </string-name>
          .
          <article-title>A theory of contracts for Web services</article-title>
          .
          <source>ACM Trans. Program. Lang. Syst</source>
          .
          <volume>31</volume>
          (
          <issue>5</issue>
          ),
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>S.</given-names>
            <surname>Dal Zilio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lugiez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Meyssonnier</surname>
          </string-name>
          .
          <article-title>A logic you can count on</article-title>
          .
          <source>Symposium on Principles of programming languages, ACM</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Fiadeiro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Lopes</surname>
          </string-name>
          . Consistency of Service Composition. Fundamental Approaches to Software
          <source>Engineering (FASE)</source>
          , vol.
          <volume>7212</volume>
          of LNCS, Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>G.</given-names>
            <surname>Frehse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Le Guernic</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Donze´,
          <string-name>
            <given-names>S.</given-names>
            <surname>Cotton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Ray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Lebeltel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Ripado</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Girard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Dang</surname>
          </string-name>
          ,
          <string-name>
            <surname>O. Maler.</surname>
          </string-name>
          <article-title>SpaceEx: Scalable Verification of Hybrid Systems</article-title>
          .
          <source>Computer Aided Verification (CAV'11)</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>S.</given-names>
            <surname>Graf</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Passerone</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Quinton</surname>
          </string-name>
          .
          <article-title>Contract-based reasoning for component systems with rich interactions</article-title>
          .
          <source>Embedded Systems Development, ser. Embedded Systems</source>
          , vol.
          <volume>20</volume>
          , pp.
          <fpage>139</fpage>
          -
          <lpage>154</lpage>
          , Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>R.H.</given-names>
            <surname>Gu</surname>
          </string-name>
          ¨ting, R. Hartmut, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Schneider</surname>
          </string-name>
          .
          <article-title>Realm-based spatial data types: the ROSE algebra</article-title>
          .
          <source>The VLDB JournalThe International Journal on Very Large Data Bases 4.2</source>
          (
          <year>1995</year>
          ):
          <fpage>243</fpage>
          -
          <lpage>286</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>F.</given-names>
            <surname>Han</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Blech</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Herrmann</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          .
          <source>Model-based Engineering and Analysis of Space-aware Systems Communicating via IEEE 802.11. In 39th Annual International Computers, Software &amp; Applications Conference (COMPSAC)</source>
          , pages
          <fpage>638</fpage>
          -
          <lpage>646</lpage>
          , IEEE Computer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>F.</given-names>
            <surname>Han</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Blech</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Herrmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          .
          <article-title>Towards Verifying Safety Properties of Real-Time Probabilistic Systems</article-title>
          . Formal Engineering approaches to Software
          <source>Components and Architectures</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>P.</given-names>
            <surname>Herrmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.O.</given-names>
            <surname>Blech</surname>
          </string-name>
          , F. Han,
          <string-name>
            <given-names>H.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          .
          <article-title>A Model-based Toolchain to Verify Spatial Behavior of Cyber-Physical Systems</article-title>
          .
          <source>In 2014 AsiaPacific Services Computing Conference (APSCC)</source>
          , IEEE Computer.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>D.</given-names>
            <surname>Hirschkoff</surname>
          </string-name>
          , E´.
          <string-name>
            <surname>Lozes</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Sangiorgi</surname>
          </string-name>
          .
          <article-title>Minimality Results for the Spatial Logics</article-title>
          .
          <source>Foundations of Software Technology and Theoretical Computer Science</source>
          , vol
          <volume>2914</volume>
          <source>of LNCS</source>
          , Springer,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>S.</given-names>
            <surname>Kambhampati</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.S.</given-names>
            <surname>Davis</surname>
          </string-name>
          .
          <article-title>Multiresolution path planning for mobile robots</article-title>
          . Volume
          <volume>2</volume>
          ,
          <issue>Issue</issue>
          : 3, Journal of Robotics and Automation,
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          <year>1986</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>F. A.</given-names>
            <surname>Kraemer</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Herrmann</surname>
          </string-name>
          .
          <article-title>Automated Encapsulation of UML Activities for Incremental Development and Verification</article-title>
          .
          <source>In Model Driven Engineering Languages and Systems (MoDELS)</source>
          ,
          <source>LNCS 5795</source>
          , pages
          <fpage>571</fpage>
          -
          <lpage>585</lpage>
          . Springer-Verlag,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>F. A.</given-names>
            <surname>Kraemer</surname>
          </string-name>
          ,
          <string-name>
            <surname>V.</surname>
          </string-name>
          <article-title>Sla˚tten and</article-title>
          <string-name>
            <given-names>P.</given-names>
            <surname>Herrmann</surname>
          </string-name>
          .
          <article-title>Tool Support for the Rapid Composition, Analysis and Implementation of Reactive Services</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <volume>82</volume>
          (
          <issue>12</issue>
          ):
          <fpage>2068</fpage>
          -
          <lpage>2080</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>J.-C.</given-names>
            <surname>Latombe</surname>
          </string-name>
          . Robot Motion Planning. Kluwer Academic Publishers,
          <year>1991</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>E.A.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Xiong</surname>
          </string-name>
          .
          <article-title>A behavioral type system and its application in ptolemy ii</article-title>
          .
          <source>Formal Aspects of Computing</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>B.</given-names>
            <surname>Meyer</surname>
          </string-name>
          . Applying ”
          <article-title>Design by Contract”</article-title>
          .
          <source>Computer</source>
          ,
          <volume>25</volume>
          ,
          <issue>10</issue>
          , pp.
          <fpage>40</fpage>
          -
          <lpage>51</lpage>
          , IEEE,
          <year>October 1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>P.</given-names>
            <surname>Nuzzo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Ozay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Finn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sangiovanni-Vincentelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Murray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Donz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Seshia</surname>
          </string-name>
          , ”
          <article-title>A contract-based methodology for aircraft electric power system design</article-title>
          ,
          <source>” IEEE Access</source>
          , vol.
          <volume>2</volume>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>25</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>L.</given-names>
            <surname>Pasquale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ghezzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Menghi</surname>
          </string-name>
          , Ch. Tsigkanos, and
          <string-name>
            <given-names>B.</given-names>
            <surname>Nuseibeh</surname>
          </string-name>
          .
          <article-title>Topology aware adaptive security</article-title>
          .
          <source>In Proceedings of the 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems</source>
          , pp.
          <fpage>43</fpage>
          -
          <lpage>48</lpage>
          . ACM,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>A.</given-names>
            <surname>Platzer.</surname>
          </string-name>
          <article-title>Differential dynamic logic for hybrid systems</article-title>
          .
          <source>Journal of Automated Reasoning</source>
          , vol.
          <volume>41</volume>
          .2:
          <fpage>143</fpage>
          -
          <lpage>189</lpage>
          , Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>A.</given-names>
            <surname>Platzer</surname>
          </string-name>
          , J.-D. Quesel.
          <article-title>KeYmaera: A Hybrid Theorem Prover for Hybrid Systems (System Description)</article-title>
          .
          <source>International Joint Conference on Automated Reasoning</source>
          , pp.
          <fpage>171</fpage>
          -
          <lpage>178</lpage>
          , LNCS 5195, Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>P.</given-names>
            <surname>Rigaux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Scholl</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Agnes</given-names>
            <surname>Voisard</surname>
          </string-name>
          .
          <article-title>Spatial databases: with application to GIS</article-title>
          . Morgan Kaufmann,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>M.</given-names>
            <surname>Wenger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Blech</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Zoitl</surname>
          </string-name>
          .
          <article-title>Behavioral Type-based Monitoring for IEC 61499</article-title>
          .
          <article-title>To appear in Emerging Technologies and Factory Automation (ETFA)</article-title>
          , IEEE,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>