<!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>Model-Driven Methods to Design of Reliable Multiagent Cyber-Physical Systems? ??</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sergey Staroletov</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nikolay Shilov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vladimir Zyubin</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tatiana Liakh</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrei Rozov</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ivan Konyukhov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Innokenty Shilov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Thomas Baar</string-name>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Horst Schulte</string-name>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Gromov Flight Research Institute (GFRI)</institution>
          ,
          <addr-line>Moscow</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Innopolis University</institution>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Institute of Automation and Electrometry SB RAS/ Novosibirsk State University</institution>
          ,
          <addr-line>Novosibirsk</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Polzunov Altai State Technical University</institution>
          ,
          <addr-line>Barnaul</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>University of Applied Sciences Berlin (HTW Berlin), School of Engineering</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Cyber-Physical Systems (CPS) are real-world systems that use a cyber part to control a physical part; hybrid systems are virtual-world systems to model CPS. In this paper we address several problems related to CPS-design and argue advantages of a Model-Driven Developing (MDD) approach to CPS-design. We study a simple car stopping system and show that such systems can be modeled without any code writing. However, safety isn't clear even for this simple system and testing/simulation isn't sufficient to prove safety, but CPS MDD should be supported by a formal verification also. We examine modeling, simulation and verification tools and show how our approach can be applied. We also introduce a concept of cyber-physical Believe-Desire-Intention (BDI) agent and demonstrate how cooperative agents of this type can predict locations of partners.</p>
      </abstract>
      <kwd-group>
        <kwd>Cyber-Physical Systems Model-Driven Developing Believe-Desire-Intention agents</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>We understand cyber-physical systems (CPS) as real-world systems that use a cyber
part (computer/software) to control or operate a physical part (hardware/physical
process). We define hybrid systems as a virtual-world systems that combine continuous real
functions with discreet state machines, they are models of the cyber-physical systems.
The presence/use of the continuous real functions makes unsuitable techniques which
are based on pure discrete state-transition systems and integer arithmetic.</p>
      <p>
        Hybrid Systems may be represented by Hybrid Programs, and specified using the
Hybrid Dynamic Logic [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ]. For example, the syntax of hybrid programs in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is
(1)
where a is a meta-variable for the the hybrid programs, x is a meta-variable for program
variables, e is a meta-variable for the first-order terms on real numbers, f is a
metavariable for the continuous real functions, and Q is a meta-variable for the first-order
formulas over real numbers. The construct ”;” means here the sequential composition,
”[” — is the non-deterministic choice, ”?” — is the test operator, and ” ” — is the
nondeterministic iteration (like Kleene-star). Hybrid Program is a representation of Hybrid
Automaton [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        Modelling and computer implementation of CPSs is not a trivial one-step process,
CPSs should be accurately modeled as a hybrid system by teams of physicists,
mathematicians problem-domain (e.g. civil, mechanical, electric, chemical etc.) and control
engineers.
– as programs that change the variables according to in-coded exact solutions of the
differential equations; the exact solutions can be found analytically or by using
symbolic computer algebra tools like Mathematica, Reduce or Maxima;
– as programs that numerically solve the differential equations in run-time using, for
example, the Runge-Kutta or Euler methods (in simple cases) [
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ].
      </p>
      <p>
        The Model-Driven approach (MDD, stands for Model-Driven developing) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] may
be an alternative to the above. It is based on executable diagrams (schemes) for which
program code can be generated from them automatically. In the paper, in particular, we
address the safety of CPSs created with the MDD approach.
      </p>
      <p>A possible work-flow of CPSs implementation in the industrial context is shown on
Fig. 1. On this diagram we enumerate some problems that may be caused by lose of
some details due to change of the abstraction level.</p>
      <p>The process begins with the creation of mathematical or physical models by
engineers, who have experience in the specific problem domain and are able to use
appropriate methods to describe the system in models. As a result, the models have been
created, and here we can see possible losses (the model describes the process with some
simplifications).</p>
      <p>
        Then the model of the process comes to engineer who is in charge for
implementation on a device (e.g. controller). The engineer can have misunderstands of the model
and therefore, implement the wrong model. Implementing the system, the engineer
creates code in one of the programming languages to solve the equations (Physical part)
and control features (Cyber part of the CPS). Here the engineer can make mistakes also
in the implementation of the mathematical formulas because of the use of floating point
formats instead of mathematical real numbers. Also loss of some system behavior, code
and model mismatching, etc. can happen in the implementation stage. During a CPS
construction, the engineer periodically makes simulations of the created code by
running it with some pre-defined test inputs and observing resulting outputs, for example,
looking at a plot with the system values evaluation. We note that such simulation is a
testing process, it can detect errors and mistakes but not to prove that the
implementation is error-free [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Moreover, even if the engineer believes that the code acts as
correct CPS (because all tests have passed), we need some guaranties whether the code
actually represents the CPS initially been expected.
      </p>
      <p>As a result of the current process, tested but unproved code goes into a controller
(which in addition, has own bugs and limitations) to operate with the real system.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Model-Driven Developing of Cyber-Physical Systems</title>
      <p>
        MDD is a way to create a software system from scratch by drawing some diagrams or
writing textual models and then simulate or execute these diagrams and generate the
system code from them. Taking into account the problems discussed in the section 1,
we can distinguish the following main advantages of applying MDD in the CPSs design
process:
– engineers can see a graphical model or a DSL [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] code and move through it;
– no code and model distinctions after changing any one of both;
– possible ways to generate code for different target languages and purposes (for
example, for Matlab Simulink or for implementation in a particular controller);
– the system can be created by engineers who know how to describe physical
processes but do not have proper programming skills.
      </p>
      <p>So, MDD may be considered as a realistic way to organize work of large teams of
engineers to implement CPSs and to improve the quality. Consequently we can update
the process shown in Fig. 1, and move to the MDD of CPS design process depicted in
Fig.2.</p>
      <p>
        According to the process, physicists, mathematicians and engineers work together
with a CPS represented by graphical models. They can create symbolic nodes which
model different parts of the system and determine relations between them. The
engineers also detail the requirements expressed in terms of timed logic (see [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] for
example). (Remark, that we are mostly interesting in the safety properties [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], express that
”something (bad) will never happen” during a system execution.)
      </p>
      <p>As soon as graphical models and requirements are constructed, it is possible to
simulate the system behavior without any code writing. Having safety properties, it
is possible to add appropriate assertions (contracts) that may be checked in run-time.
Then it may make sense to create on the fly different types of Hybrid Automata which
models the Hybrid Program and try different verification tools when needed. And of
course, code for a real controller can be generated from the model automatically.
3
3.1</p>
    </sec>
    <sec id="sec-3">
      <title>Related works</title>
      <sec id="sec-3-1">
        <title>CPSs modeling languages and tools</title>
        <p>
          Certainly, it is possible to implement the Physical part of a CPS by writing code in a
programming language (like C or Java). Dealing with a sophisticated system, it is required
to use additional programming libraries to solve different types of ODEs. To realize the
Cyber part, network or special hardware libraries should be used. To implement
agentbased interoperations, frameworks and languages conform to actor approach [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] can
be used, for example, Erlang language or Akka library for Java/Scala. Such systems can
be organized as multilayer applications with parts implemented in different languages
and even act as microservices.
        </p>
        <p>
          A process-oriented technology has been introduced in [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] to express control
software as a set of interacting processes, which are extended automata with special
operators that implement concurrent flow control and time-interval managing. This approach
has been implemented in a family of languages such as Reflex [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] and IndustrialC [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
With native support for state machines and floating point operations, these languages
allow Hybrid Systems to be easily expressed in code.
        </p>
        <p>
          In the engineering world, currently, a lot of engineers use Matlab Simulink c . It
offers to create the CPSs by using a graphical representation very close to the control
theory notations. But it lacks of control automata creation in the graphical way, and
some portions of the system are still developed by writing lines of code in Matlab
language [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ].
        </p>
        <p>
          Another industrial modeling tool is Modelica c [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. It is a propriatory software that
allows to model the dynamic behavior of CPS using different components for
mechanical, electrical, thermal, hydraulic, pneumatic, fluid, control and other domains. Models
can be described by differential, algebraic, and discrete equations. A special model
input language is used, but there are also graphical editors for it.
        </p>
        <p>
          Ptolemy by Berkeley [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] is a free academic-based tool that supports construction
of CPS from small actors at different layers of abstraction. It supports system
presentation as a multilayer agent that communicate with input/output ports; each agent can
represented as a combination of actors and other agents [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. Actors could be plotting
tools, mathematical operations (e.g. differentials), etc. Layers can be automata or state
charts, and each layer is controlled by a controller, which can be discrete or continues
time unit. The Ptolemy is very extensible, so a developer can implement own actors
based on pre-defined interfaces and export the whole system or an actor as Java classes.
3.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>CPSs verification tools</title>
        <p>1. tools which provide support both — CPSs modeling and simulation;
2. tools which support only CPSs verification (checking some properties).</p>
        <p>
          Uppaal [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] is a model checker and simulator for automata-based programs. User
can create a model of a system, including various components in the form of an
extended timed automaton and then query some properties (using a variant of LTL
formulas). User can provide invariants to the model states which can contain timed based
derivatives and check them at run-time. Uppaal has some problems with floating point
variables and values.
        </p>
        <p>
          Spin [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] is a model checker of programs in an actor-based modeling language
Promela (stands for Protocol meta-language) with respect to given LTL formulas. It
is a powerful tool to prove the interprocess communications and protocols. It lacks
floating point support too; therefore, it cannot be used for full CPSs verification, it can
be helpful only to check the Cyber part of the systems with interoperations.
        </p>
        <p>
          SpaceEx tool [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] is distributed as a virtual machine with web-server and includes a
model editor, a simulator of CPSs and a converter to PHAVer [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] to verify the
properties of such systems over infinite time. It also has model converters from other systems,
for example, Simulink, to transform their notation to SpaceEx program.
        </p>
        <p>
          Ariadne [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] can be useful to create non-linear CPSs in C++ code, simulate and
verify them. It offers a parametric verification, which provides intervals for values of
system variables to preserve the given requirements of the system. Therefore it is
possible to use Ariadne with some code checking methods to provide verification of the
whole CPS.
        </p>
        <p>
          KeYmaera [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] is an interactive theorem prover based on Dynamic Logic for the
CPSs expressed as Hybrid Programs (HPs). The user can prove properties of the system
by providing some simplification tactics, or it can be done automatically, that is why
the range of systems to be proved in KeYmaera is potentially very wide. The tool can
connect to some mathematical systems or solvers at each step of simplification.
        </p>
        <p>
          Please refer our paper [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] for a more detailed survey of these CPSs modeling and
verification tools. Please refer also the cited paper for example of verification of a safety
property of a simple SPC in C code with Frama-C [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ] WP tool which is based on the
contracts approach.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>A case study: MDD approach to car braking system</title>
      <p>Let us consider a car moving with a deceleration according to the following
equation:
8&gt;x0 = v
&gt;
&gt;&lt;v0 = a
&gt;&gt;&gt;a =
:</p>
      <p>v20
2 (m
x0)
(2)
The negative acceleration a is calculated based on observation at the time t0 (with the
speed v0 and initial position x0) to a given obstacle m according to a school physical
law ”moving with a constant acceleration”.</p>
      <p>In this section we model the example system with Ptolemy tool to demonstrate how
to use the MDD approach to design and simulate such very simple CPS.
For the sample system presented in the previous section 4, the safety property could be
formulated as ”the car position should be always less the position of the obstacle”. It
can be expressed as LTL formula (3):</p>
      <p>
        G(x &lt; m)
(3)
One who looks to the graph in Fig. 4 could say that for the system variables this safety
property holds, and the simulation proves it. But as we derived before, the simulation is
only a process of quality assurance very similar to testing. For example, the graph can
miss sudden function changes due to the small grid size, so for reliable safety systems,
we need a mathematically sound way to prove the system properties. That way is the
formal model verification process [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>A way to help engineers to start using formal verification — is to integrate the
verification process into the tool which is in use for design CPS with MDD approach.
In this way, the engineers can apply formal verification without actually getting know
how the verification works.</p>
      <p>As we have mention above in the section 3, Matlab Simulink includes validation
instruments. However, these instruments are not of formal verification kind. Currently,
the tool is a closed-source and a closed-architecture program, so it is unknown whether
it is possible to plug additional model checkers in.</p>
      <p>
        The Ptolemy tool has included a model converter [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] to use with some model
checkers [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], but now it can convert only discrete time actors. Generation of
continues time checking actors, in principle, is possible since the tool is extensible. But the
question is: what back-end should be used actually to verify the models?
      </p>
      <p>
        In the paper [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] a graphical way to specify and verify CPSs has been proposed. It
can help to prove safety properties by introducing some contracts in control states. For
the simple model, a generated control graph is presented in Fig. 7, so after generating
proof obligations and HP in KeYmaera theorem prover input language it is possible to
prove this system automatically. In mathematical notation, for the system (3) we have
the following safe contract for the long-running state braking:
(a =
v v=(2 (m
      </p>
      <p>x)) ^ (m &gt; x) ! [fx0 = v; v0 = ag](m &gt; x) [ (v = 0)):
This contract enables proving the safety property automatically without any user
interaction in the theorem prover.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Towards Multi-agent Cyber-Physical Systems</title>
      <p>In this section we proceed to study multi-systems with a number of cyber-physical
BDIagents.</p>
      <p>A distributed system consists of multiple autonomous individual programmable
computers that communicate through a network. Communication (in a distributed
system) is said to be fair, if every computer which needs to communicate with any other
will communicate eventually. (Of course, some communication scheduler or
mechanism is required to guaranty the fairness.)</p>
      <p>
        A multi-agent system is a distributed system [
        <xref ref-type="bibr" rid="ref29 ref30">29, 30</xref>
        ] that consists of agents. A
BDIagent [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] (just agent in the sequel) is an autonomous, reactive and proactive object (in
OO-sense) whose internal states may be characterized in terms of Beliefs (B), Desires
(D), and Intentions (I). Agent’s beliefs represent its ideas/opinion about itself and the
environment that includes other agents and the network; these ideas/opinions may be
incorrect, incomplete, and (even) inconsistent. Agent’s desires represent its long-term
aims, obligations and purposes (that may be controversial). Agents’ intentions are used
for a short-term planning. Agent’s logical omniscience means that an agent immediately
knows all logical consequences that follow from its knowledge.
      </p>
      <p>
        We distinguish belief(s) and knowledge according to Plato, that knowledge is a true
belief, i.e. a judgment/statement that has a validation [
        <xref ref-type="bibr" rid="ref32 ref33 ref34">32–34</xref>
        ]. Thus we assume in this
paper that a belief of some agent becomes its knowledge in some of its individual states
if there exists any formal proof of the belief (i.e. we assume agent’s logic omniscience).
      </p>
      <p>Reactivity means that an agent can change its beliefs after interaction with other
agents and deliberation. Proactivity means that an agent can change its intentions (i.e.
to plan its nearest future behavior) after change/update of its beliefs and deliberation.</p>
      <p>Every agent is autonomous, i.e. a change of its personal beliefs and intentions
can’t be decreed by any other agent. A rational agent has clear preferences and
always chooses an action (in feasible actions) that leads to the best (individual or group)
outcome. A bounded rationality is decision making limited by the cognitive abilities of
agents (e.g. the finite amount of time they have to make decisions).</p>
      <p>
        A multi-agent algorithm is a distributed algorithm (i.e. protocol of distributed
system) that solves some problem by means of cooperative work of agents in a multi-agent
system. A related paradigm is algorithmic mechanism design [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ].
      </p>
      <p>
        Fault-tolerance of a multi-agent algorithm is (as for distributed algorithms) an
ability to solve the problem correctly in spite of (partial) network failure and/or incorrect
behavior of some of individual agents. A knowledge-based algorithm paradigm [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]
assumes that any modification of any shared resource may/can be attempted by an agent
only when the agent knows that the access for modified resource is safe (i.e. is races-free
in particular).
      </p>
      <p>Recall that CPS is a system with the Physical (real-world process) part with a
continuous behavior (modeled by differential equations) controlled by a programmable
computer. A cyber-physical agent is an agent that is CPS itself.</p>
      <p>A cyber-physical BDI-agent in a cyber-physical multiagent system</p>
      <p>Let us discuss examples of problems to illustrate the difference between just
BDIagents and cyber-physical BDI-agents. Both problem statements have the same start:
There are N &gt; 1 autonomous agents (”robots”) and the same number of shelters
in general position on a plain part of Mars. Locations of all shelters are fixed
and known to all robots. Each robot knows a shelter that was assigned to it
from the very beginning, its own distances to all shelters.</p>
      <p>But then problems differ.</p>
      <p>
        The first problem is Mars Robot Puzzle described, solved and (manually) verified
in [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ] using system of BDI-agents, its statement has the following continuation:
Each robot doesn’t know locations of any other robot. All robots can
communicate with each other in P2P-manner and every pair of communicating robots
may swap their shelters. All robots have to select individual shelters to move
in by a straight route. Definitely, robots should not collide (it means that their
routes should not intersect). Hence, every individual robot can move to a
shelter only when it knows for sure that it will not collide with any other robot
on the route. Problem: Design a multi-agent knowledge-based algorithm that
guarantees that every robot will eventually know that its route to the selected
shelter does not intersect with routes of other robots.
      </p>
      <p>Let us refer the next problem which we would like to refer Mars-rovers Planning
Problem. Its statement has the following continuation:</p>
      <p>
        All robot can communicate with each other in P2P-manner and ask/inform each
other about their current locations (if requested). All robots have move to the
initially assigned individual shelters without approaching each other to close
(with individual safety distances). Problem: Design a multi-agent
knowledgebased algorithm that guarantees that every robot will eventually reach the
assigned shelter safely (i.e. always being on safe distance with all other robots).
This problem can be considered as a special case of the motion-planning [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ]. Formal
specification and verification (including computer-aided verification) of this problem is
one of our topics for further research. In the next section we present first step in this
direction — formal specification and (manual) verification of a method how a
cyberphysical BDI-agent can predict behaviour of others in a cyber-physical multi-agent
system.
7
      </p>
    </sec>
    <sec id="sec-6">
      <title>Towards predictive cyber-physical agents</title>
      <p>Agent’s proactivity assumes deliberation i.e. that an agent can “predict” behavior of
other agents in a multi-agent system (i.e. it has a belief about behavior of others). Recall
also that a BDI-agent in a cyber-physical multi-agent system</p>
      <p>So it implies that an individual belief of a cyber-physical BDI-agent about any particular
other agent (a partner) of the system can be represented by a differential equation</p>
      <p>F (t; y; y0; : : : ; y(n)) = 0
in which F is a real parameterized expression where
– parameters of the expression represent partner’s control features in which the agent
believe,
– the first argument t is current time,
– the second argument y = y(t) is a relative instant location of the partner (with
respect to the agent itself) at time t,
– the third argument y0 = y0(t) is a relative velocity, i.e. the first derivative of y = y(t),
– etc.</p>
      <p>Let us consider in this section the most simple form for the above equation
y0 = f (t; y)
where f is a known explicit real expression (i.e. we assume that the agents knows all
control features of itself and the partner). Let us discuss how the agent can predict their
joint with the partner behavior maintaining some safety condition, i.e. the following
prediction problem: the agent
– knows the expression for f that describes relative location of the partner and its
initial relative location at time tini is yini,
– would like to predict the final relative location y f in at time t f in = tini + D and
guarantee that finally they approach each other at distance not less than some known
safety radius R &gt; 0.
(Remark that we consider here a weak safety requirement while one may be interested
in a more strong safety condition stating that the agent and the partner never approach
each other at distance less then R.)</p>
      <p>
        The problem can be solved, in particular, using the well-known Euler method [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
presented below:
– pick-up some n 1, n 2 N, such that step h = Dn is believed to be sufficient for a
desired accuracy and let t0 = tini and u0 = yini;
– for each m 2 [0::(n 1)], if tm is defined already then let t(m+1) = tm + h, dm =
h f (tm; um), and u(m+1) = um + dm;
The output consists of a tabular function u that maps each tm (0 m n) to um and
approximates the exact solution of the equation y0 = f (t; y) in these points in general
and the value un approximating y f in in particular. The flowchart of the algorithm that
implements a variant of the method to compute just an approximation for the final value
y f in is presented in the Fig. 8.
      </p>
      <p>
        A quite common variant of applicability (sufficient) conditions for the Euler method
[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] comprises the following three properties:
1. D &gt; 0 and n &gt; 0 are positive real and integer numbers, tini 2 R and t f in = tini + D
are reals;
2. f : [tini; t f in] R ! R is uniformly Lipschitz continuous in the second argument
(formally defined below);
3. there exists a twice continuously differentiable solution y : [tini; t f in] ! R of the
initial value problem y0 = f (x; y), y(tini) = yini.
      </p>
      <p>Recall that a function g : R ! R is Lipschitz continuous, if there exists a real
constant q &gt; 0 such that jg(x + d ) g(x)j q d for all x 2 R and positive d 2 R+. In
particular, Lipschitz continuity in the second argument for a function f : [tini; t f in]
R ! R means that for every t 2 [tini; t f in] there exists a real constant q &gt; 0 such that
j f (t; x + d ) f (t; x)j q d for all x 2 R and positive d 2 R+. In contrast the above
condition 2 about an uniform Lipschitz continuity in the second argument for
function f : [tini; t f in] R ! R means that there exists a real constant q &gt; 0 such that
j f (t; x + d ) f (t; x)j q d for all for t 2 [tini; t f in], x 2 R, and positive d 2 R+; let
us refer the constant q in this case as Lipschitz constant for f in the second argument.</p>
      <p>Let a; b 2 R, a b and n 2 N be real and natural numbers. A function g : [a; b] !
R is n-times continuously differentiable (notation g 2 C(n)[a; b]), if the function has
derivatives g(0) g : [a; b] ! R, ... g(n) : [a; b] ! R, and all these functions are
continuous on [a; b]: g(0); : : : g(n) 2 C[a; b]. In particular the above condition 3 says that
g 2 C(2)[tini; t f in], i.e. that y, y0, and y00 are defined and continuous at each point of
[tini; t f in]. Recall the extreme value theorem (also known as Weierstrass theorem) states
that if a real-valued function g is continuous on the closed interval [a; b], then g must
attain its maximum and minimum (least once each); hence the condition 3 implies that
there exists a real constant p &gt; 0 that is an amplitude for jy00j (i.e. such that jy00j p for
all t 2 [tini; t f in]).</p>
      <p>Thus the above variant of applicability conditions for the Euler method for a
predictive cyber-physical BDI-agent can be reformulated as follows:
1. D &gt; 0 is a time-interval after which the agent would like to know a relative
location of the partner, n &gt; 0 is a positive integer number that the agent believes to be
sufficient for partitioning the time-interval D , tini and t f in = tini + D are the initial
and the final time readings known for the agent;
2. f : [tini; t f in] R ! R is a known for the agent law that returns partner’s relative
speed (as a function of time and relative location) and that the agents knows that the
function is uniformly Lipschitz continuous in the second argument with Lipschitz
constant q &gt; 0;
3. the agent knows the initial relative location of the partner yini at time tini and that the
relative acceleration of the partner is a continuous function on [tini; t f in] with some
constant amplitude p &gt; 0.</p>
      <p>Let us denote all these three conditions altogether as Initial Knowledge.</p>
      <p>
        The above variant of applicability conditions for the Euler method [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] guarantees
that upon termination of the method for all m 2 [0::n]
jy(tm) umj
p
2q
eq(tm tini)
1 h
where q is the Lipschitz constant for f in the second argument and p &gt; 0 is an amplitude
of y00 on [tini; t f in]. Since we are interested in the prediction of the final relative location
exclusively then this property transforms into the following Guarantied Location
condition:
jy(t f in) y f inj
p
2q
eqD
      </p>
      <p>[Initial Knowledge] Euler Algorithm [Guaranteed Location]
that states that
if the agent has the Initial Knowledge
then the Euler Algorithm terminates and</p>
      <p>the Guaranteed Location holds upon termination.</p>
      <p>If one would like to prove the assertion formally then
– the precondition Initial Knowledge should be assigned to the control point 1, the
postcondition Guaranteed Location should be assigned to the control point 3 in the
flowchart in Fig. 8,
– the invariant consisting of the following two properties
0 m n and t = tini + h m,
jy(t) uj 2p åkk==0m 1 (1 + q h)k h2
should be assigned to the control point 3 in the flowchart in Fig. 8.</p>
      <p>The proved total correctness assertion gives us an opportunity to provide an
estimation for n that guaranties the weak safety condition. Really, since
jy f inj jy(t f in)j
jy f in
y(t f in)j
p
2q</p>
      <p>D
n
eqD
1
then
so R &lt; jy(t f in)j if R + 2pq
eqD
eqD
jy f inj &gt; R and n &gt;
eqD</p>
    </sec>
    <sec id="sec-7">
      <title>The control-based verification of cyber-physical agents</title>
      <p>In the previous section 7, we stated that the predictive cyber-physical BDI-agent
problem can be reduced to contract verification. In the mathematical way, with the variables
introduced before, staying in a long-running state could be described as
D
n
(D &gt; 0) ^ (n &gt; 0) ^ (h =</p>
      <p>) ^ (m = 0) ^ (t = tstr)
^(u = ystr) ! [d = h f (t; u); u = u + d; t = t + h; m = m + 1]
(y f in = u) ^ jy(t f in) y f inj
p
2q</p>
      <p>D
n
eqD
1 :
.</p>
      <p>So, the control graph method and verification in KeYMaera with the provided
contract are applicable here, and that graph is shown in Fig. 9.</p>
      <p>This system can be proved with KeYmaera prover without user interaction after
generating the HP code from the control-flow graph or by using any contract based
prover after one will write a code of system for Euler method described in Fig. 8 and
provide precondition, postcondition and invariant described in this section.</p>
      <p>Nevertheless, for the more general problem of robots communicating, when each
robot has this own function and needs to predict others robots moving, system
specification will become not a simple task and verification of this definitely require automatic
HP code generation by the model and developing of the system should be model-based.
When robots start to use P2P communication, engineers should also use the Cyber part
verification methods to prove the protocol, it is possible to use the methods described
in the References section of this paper, and in future it is better to have all the methods
integrated into the one tool.
9</p>
    </sec>
    <sec id="sec-8">
      <title>Conclusion</title>
      <p>In this paper firstly we addressed the problem of Cyber-Physical Systems (CPSs)
modeling and validation. We state that Model-Driven Development (MDD) approach should
be applied and there are some tools which support construction the CPSs with various
level of abstractions without any code writing.</p>
      <p>Next we discussed CPSs verification problem, and state that for a robust system
design we need to use formal verification methods and tools. Because the CPSs need
the Dynamic Logic to model the equations over the continuous time, it is hard to verify
such systems with conventional verification tools designed for discrete-state systems.
We state that right now there is a deficit of industrial-strong tools which provides
verification of both the Cyber and the Physical parts of a CPSs.</p>
      <p>Then we considered a sample CPS — a car braking example to show how to model
and verify CPSs easier.</p>
      <p>Finally we moved to the conception of cyber-physical BDI agents to show various
problems with it. The Mars Rovers problem for robot-of-robot prediction can be
numerically solved with using the Euler method, and this method helps to construct the
considered verification strategy for this problem using our control-flow graph approach.</p>
      <p>But for the problems that require BDI agents interoperations (for example, in a
P2P manner) it is hard to describe and model the system behavior and provide the
verification strategy. We think that a Model-Driven method to design and verify such
types of systems should be developed.</p>
      <p>The topic for the further research is to extend the control-flow graph approach to
convert the existing engineering notations to an intermediate representation and then
automatically create Hybrid Automata, proof obligation and verify them with the
KeYmaera theorem prover or other suitable methods.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>A.</given-names>
            <surname>Platzer</surname>
          </string-name>
          , “
          <article-title>Differential dynamic logic for verifying parametric hybrid systems.” in TABLEAUX, ser</article-title>
          . LNCS, N. Olivetti, Ed., vol.
          <volume>4548</volume>
          . Springer,
          <year>2007</year>
          , pp.
          <fpage>216</fpage>
          -
          <lpage>232</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Platzer</surname>
          </string-name>
          , Andre´, “
          <article-title>Differential dynamic logic for hybrid systems</article-title>
          ,
          <source>” Journal of Automated Reasoning</source>
          , vol.
          <volume>41</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>143</fpage>
          -
          <lpage>189</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>A.</given-names>
            <surname>Platzer</surname>
          </string-name>
          , “
          <article-title>Logical Foundations of Cyber-Physical Systems</article-title>
          ,” Switzerland: Springer,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>T. A.</given-names>
            <surname>Henzinger</surname>
          </string-name>
          , “
          <article-title>The theory of hybrid automata,” in Verification of Digital and Hybrid Systems</article-title>
          . Springer,
          <year>2000</year>
          , pp.
          <fpage>265</fpage>
          -
          <lpage>292</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>E.</given-names>
            <surname>Hairer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lubich</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Roche</surname>
          </string-name>
          ,
          <article-title>The numerical solution of differential-algebraic systems by Runge-Kutta methods</article-title>
          . Springer,
          <year>2006</year>
          , vol.
          <volume>1409</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>W.</given-names>
            <surname>Trench</surname>
          </string-name>
          , Elementary Differential Equations.
          <source>Thomson Learning</source>
          ,
          <year>2001</year>
          . [Online]. Available: https://digitalcommons.trinity.edu/mono/8/
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>B.</given-names>
            <surname>Selic</surname>
          </string-name>
          , “
          <article-title>The pragmatics of model-driven development,” IEEE software</article-title>
          , vol.
          <volume>20</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>19</fpage>
          -
          <lpage>25</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>S.</given-names>
            <surname>Staroletov</surname>
          </string-name>
          ,
          <source>Basics of Software Testing and Verification [in Russian]. Lanbook, Saint Petersburg. ISBN 978-5-8114-3041-3</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>L.</given-names>
            <surname>Bettini</surname>
          </string-name>
          ,
          <article-title>Implementing domain-specific languages with Xtext and Xtend</article-title>
          . Packt Publishing Ltd,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>D.</given-names>
            <surname>Lozhkina</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Staroletov</surname>
          </string-name>
          , “
          <article-title>An online tool for requirements engineering, modeling and verification of distributed software based on the MDD approach,”</article-title>
          <source>Some Journal</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. E. Kindler, “
          <article-title>Safety and liveness properties: A survey,” Bulletin of the European Association for Theoretical Computer Science</article-title>
          , vol.
          <volume>53</volume>
          , no.
          <fpage>268</fpage>
          -
          <lpage>272</lpage>
          , p.
          <fpage>30</fpage>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>G. A.</given-names>
            <surname>Agha</surname>
          </string-name>
          , “
          <article-title>Actors: A model of concurrent computation in distributed systems</article-title>
          .
          <source>” Massachusetts Inst Of Tech Cambridge Artificial Intelligence Lab</source>
          , Tech. Rep.,
          <year>1985</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. V. E. Zyubin, “
          <article-title>Hyper-automaton: A Model of Control Algorithms</article-title>
          ,” in IEEE International Siberian Conference on Control and
          <string-name>
            <surname>Communications (SIBCON-2007). Proceedings</surname>
            .,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Stukach</surname>
          </string-name>
          , Ed. Tomsk, Russia: IEEE,
          <year>2007</year>
          , pp.
          <fpage>51</fpage>
          -
          <lpage>57</lpage>
          . [Online]. Available: https://doi.org/10.1109/SIBCON.
          <year>2007</year>
          .371297
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Rozov</surname>
          </string-name>
          and
          <string-name>
            <given-names>V. E.</given-names>
            <surname>Zyubin</surname>
          </string-name>
          , “
          <article-title>A hyperprocess-based approach in Arduino programming</article-title>
          ,
          <source>” International Conference on Advanced Technology &amp; Sciences (ICAT'15)</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. H.
          <string-name>
            <surname>Moore</surname>
          </string-name>
          ,
          <source>MATLAB for Engineers. Pearson</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. P. Fritzson,
          <article-title>Principles of object-oriented modeling and simulation with Modelica 2.1</article-title>
          . John Wiley &amp; Sons,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>J. Davis</surname>
            <given-names>II</given-names>
          </string-name>
          ,
          <string-name>
            <surname>M. Goel</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Hylands</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Kienhuis</surname>
            ,
            <given-names>E. A.</given-names>
          </string-name>
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Muliadi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Neuendorffer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Reekie</surname>
          </string-name>
          et al.,
          <article-title>“Overview of the Ptolemy project</article-title>
          ,
          <source>” ERL Technical Report UCB/ERL, Tech. Rep.</source>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. S. Staroletov, “
          <article-title>Towards problems of cyber-physical systems verification while designing them with the model-driven approach</article-title>
          ,” 16th
          <source>International Scientific-Practical Conference of Students, Post-graduates and Young Scientists “Youth and Modern Information Technology” (YMIT)</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>A.</given-names>
            <surname>David</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. G.</given-names>
            <surname>Larsen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Legay</surname>
          </string-name>
          , M. Mikucˇionis, and
          <string-name>
            <given-names>D. B.</given-names>
            <surname>Poulsen</surname>
          </string-name>
          , “Uppaal smc tutorial,”
          <source>International Journal on Software Tools for Technology Transfer</source>
          , vol.
          <volume>17</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>397</fpage>
          -
          <lpage>415</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. G. J. Holzmann, “
          <article-title>The model checker SPIN,” IEEE Transactions on software engineering</article-title>
          , vol.
          <volume>23</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>279</fpage>
          -
          <lpage>295</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. G. Frehse,
          <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>
          , and
          <string-name>
            <given-names>O.</given-names>
            <surname>Maler</surname>
          </string-name>
          , “
          <article-title>SpaceEx: Scalable verification of hybrid systems</article-title>
          ,” in International Conference on Computer Aided Verification. Springer,
          <year>2011</year>
          , pp.
          <fpage>379</fpage>
          -
          <lpage>395</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22. G. Frehse, “
          <article-title>Phaver: algorithmic verification of hybrid systems past hytech</article-title>
          ,”
          <source>International Journal on Software Tools for Technology Transfer</source>
          , vol.
          <volume>10</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>263</fpage>
          -
          <lpage>279</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23. L.
          <string-name>
            <surname>Benvenuti</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Bresolin</surname>
            , P. Collins,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Ferrari</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Geretti</surname>
          </string-name>
          , and T. Villa, “Ariadne:
          <article-title>Dominance checking of nonlinear hybrid automata using reachability analysis</article-title>
          ,” in International Workshop on Reachability Problems. Springer,
          <year>2012</year>
          , pp.
          <fpage>79</fpage>
          -
          <lpage>91</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>A.</given-names>
            <surname>Platzer</surname>
          </string-name>
          and
          <string-name>
            <surname>J.-D. Quesel</surname>
          </string-name>
          , “
          <article-title>KeYmaera: A hybrid theorem prover for hybrid systems (system description</article-title>
          ),” in
          <source>International Joint Conference on Automated Reasoning</source>
          . Springer,
          <year>2008</year>
          , pp.
          <fpage>171</fpage>
          -
          <lpage>178</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>T.</given-names>
            <surname>Baar</surname>
          </string-name>
          and
          <string-name>
            <given-names>S. M.</given-names>
            <surname>Staroletov</surname>
          </string-name>
          , “
          <article-title>A control flow graph based approach to make the verification of cyber-physical systems using KeYmaera easier</article-title>
          ,
          <source>” Modeling and Analysis of Information Systems</source>
          , vol.
          <volume>25</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>465</fpage>
          -
          <lpage>480</lpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <given-names>F.</given-names>
            <surname>Kirchner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Kosmatov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Prevosto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Signoles</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Yakobowski</surname>
          </string-name>
          , “
          <article-title>Frama-c: A software analysis perspective</article-title>
          ,
          <source>” Formal Aspects of Computing</source>
          , vol.
          <volume>27</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>573</fpage>
          -
          <lpage>609</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>C</surname>
          </string-name>
          .
          <article-title>-</article-title>
          H. Cheng, T. Fristoe, and
          <string-name>
            <given-names>E. A.</given-names>
            <surname>Lee</surname>
          </string-name>
          , “
          <article-title>Applied verification: The Ptolemy approach</article-title>
          ,”
          <source>Some Journal</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>E. M. Clarke Jr</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Grumberg</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Kroening</surname>
            , and
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Veith</surname>
          </string-name>
          ,
          <article-title>Model checking</article-title>
          .
          <source>Cyber-Physical Systems</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29. M. Takada, “
          <article-title>Distributed systems: for fun and profit</article-title>
          ,”
          <year>2013</year>
          . [Online]. Available: http://book.mixu.net/distsys/
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <given-names>A.</given-names>
            <surname>Tanenbaum</surname>
          </string-name>
          and
          <string-name>
            <surname>M. van Steen</surname>
          </string-name>
          ,
          <source>Distributed Systems: Principles and Paradigms</source>
          , 2nd ed. Prentice-Hall,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>M. Wooldridge</surname>
          </string-name>
          , An Introduction to Multiagent Systems, 2nd ed.
          <source>John Willey &amp; Sons</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>R. F. R.</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Halpern</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Moses</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Vardi</surname>
          </string-name>
          ,
          <article-title>Reasoning about Knowledge</article-title>
          . MIT Press,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <given-names>J.</given-names>
            <surname>Ichikawa</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Steup</surname>
          </string-name>
          , “
          <article-title>The analysis of knowledge</article-title>
          .” [Online]. Available: http://plato.stanford.edu/entries/plato-theaetetus/
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34. C. Chappell, “
          <article-title>Plato on knowledge in the theaetetus</article-title>
          .” [Online]. Available: http://plato.stanford.edu/entries/plato-theaetetus/
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35. P.
          <article-title>Du¨ tting and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Geiger</surname>
          </string-name>
          ,
          <year>2007</year>
          . [Online]. Available: http://www.staff.science.uu.nl/˜leeuw112/msagi/mech design.pdf
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <given-names>N.</given-names>
            <surname>Shilov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Garanina</surname>
          </string-name>
          , and E. Bodin, “
          <article-title>Multiagent approach to a dijks-tra problem</article-title>
          ,” in CS&amp;P'2010 Workshop on Concurrency,
          <article-title>Specification and Programming</article-title>
          .
          <source>HumboldtUniversitat zu Berlin</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37. S. LaValle, Planning Algorithms. Cambridge University Press,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Manna</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Pnueli</surname>
          </string-name>
          ,
          <source>The Temporal Logic of Reactive and Concurrent Systems: Specification</source>
          , 2nd ed. Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>