<!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>
      <journal-title-group>
        <journal-title>Workshop on Artificial Intelligence and Formal Verification, Logics, Automata and Synthesis (OVERLAY),
September</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Formal Runtime Monitoring Approaches for Autonomous Vehicles∗</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Saumya Shankar</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ujwal V R</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Srinivas Pinisetty</string-name>
          <email>spinisetty@iitbbs.ac.in</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Partha Roop</string-name>
          <email>2p.roop@auckland.ac.nz</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Indian Institute of Technology</institution>
          ,
          <addr-line>Bhubneswar</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Auckland</institution>
          ,
          <country country="NZ">New Zealand</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2020</year>
      </pub-date>
      <volume>25</volume>
      <issue>2020</issue>
      <fpage>10</fpage>
      <lpage>14</lpage>
      <abstract>
        <p>Consumer interest for autonomous vehicles is growing around the world. Formal verification techniques are needed for thorough verification and validation of such safety-critical systems. Applying static verification techniques for such complex systems that are also increasingly designed and developed using Artificial Intelligence based approaches is challenging and has limitations. In this work, we propose the use of light-weight dynamic formal verification approaches, runtime verification and enforcement. We prototype a self-driving car and propose to apply runtime monitoring to ensure safety of the vehicle. For the development of the prototype, we use Raspberry pi as a master device and Arduino Uno as a slave for steering the vehicle. We use various image processing methods to develop a working hardware prototype model. The output of the controller is fed to the monitor (generated using formal runtime monitor synthesis approach), which enforces desired safety policies on the output of the system. We propose that these formal dynamic monitoring approaches can also be used on Neural Network based controllers. The developed hardware model can act as a test bed to illustrate practical applicability of formal runtime monitor synthesis theory and tools in the context of cyber-physical systems such as autonomous vehicle.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        An Autonomous Vehicle (AV), also known as a self-driving car is capable of sensing its environment
and moving safely with little or no human intervention 1. Surveys 2 say that by the end of 2030 most
of the cars on the road will be level 2 autonomous (or partial cruise control where the steering and
acceleration/deceleration are automated). This replacement of traditional cars by autonomous cars will
cause a growth in fleet financing which will decrease in auto loans and leasing. Also, as we all know that
a learning system becomes more efficient with more miles driven, hence the autonomous cars will be more
efficient than humans. Moreover, a fatal accident happens every 26 seconds 3 in the world, out of which
93.5% accident happen due to human error [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Thus, there is a need for automating the vehicles.
      </p>
      <p>
        For AV, to drive in all possible conditions like a human, they come up with different type of sensors
used for sensing the environment like, acoustic sensor, camera, radar, LIDAR, car2X communication,
sophisticated algorithms, and powerful processors to execute the software. There are hundreds of such
sensors and actuators which are situated in various parts of the vehicle, being driven by a highly
sophisticated system whose designing is a real challenge. Also, AV is a safety-critical system, i.e. the safety
of the driver, passengers, pedestrian and other infrastructure present around is important. Therefore it
becomes important that the AV should not malfunction at any given point of time. Moreover, there is
increasing use of neural networks (NNs) and other Artificial Intelligence (AI) approaches in developing
controllers for AVs. Convolutional Neural Networks (CNNs), are gaining importance in the development
of AVs [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Thus, novel approaches are needed to thoroughly verify and validate the safety of AVs.
      </p>
      <p>
        Formal methods and model driven development approaches are widely used for designing and developing
safety-critical systems such as AV [
        <xref ref-type="bibr" rid="ref2">2, 25</xref>
        ]. Various formal verification techniques such as model checking[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
involve the formal modeling of computing systems and verification of policies on the models, including safety
and timing policies. These model-based techniques are well suited for verifying complex safety-critical
systems, because they guarantee absence of errors.
      </p>
      <p>
        Model checking is an automated static verification approach to check that the formal specification
of the system is satisfied by an abstract formal model of the system. Abstract model of the system is
typically described as automata (or its extensions/variants). Policies are usually expressed in some form
of Temporal Logic [21]. The abstract model and policies are taken as input by the model checking tools
(e.g.[
        <xref ref-type="bibr" rid="ref3 ref9">3, 9</xref>
        ]) to answer whether the model satisfies the desired specification.
      </p>
      <p>There are several challenges with using static formal verification approaches for systems such as AV
developed using AI based approaches. For instance, creating a formal model of the system is an expensive
task, where the system changes frequently (e.g., systems that use AI approaches changes frequently).
Static verification of NN-based complex controllers is very challenging and time consuming [23].</p>
      <sec id="sec-1-1">
        <title>Proposed work: There are several formal</title>
        <p>
          Runtime Verification (RV) and Runtime
Enforcement (RE) monitor synthesis approaches
proposed [
          <xref ref-type="bibr" rid="ref1 ref10 ref13 ref7">1, 24, 17, 22, 10, 7, 16, 19, 20, 13</xref>
          ] and
the area of automatic synthesis of monitors from
high-level specification that are correct by
construction is actively under research. Such formal
dynamic verification approaches are suitable for
complex safety-critical systems where verifying
the complete system statically is infeasible or
difficult to achieve in practice. Runtime
verification and enforcement techniques are lightweight Figure 1: Proposed Model.
and do not require a formal model of the system since only a single execution of the system is considered,
hence are suitable for monitoring, verifying and enforcing critical properties of systems such as AV. There
are also several tools and frameworks developed based on these proposed formal theories [
          <xref ref-type="bibr" rid="ref12 ref13 ref15 ref6">12, 6, 13, 15, 18</xref>
          ].
In this work we aim to illustrate the practical applicability of formally based runtime monitoring
approaches and tools for systems such as AV. The proposed work develops a prototype autonomous car with
real hardware to demonstrate how we can verify a safety-critical system using runtime monitoring and
force the system to satisfy our policies at runtime. We also propose, in future work, that we can use these
dynamic verification and enforcement approaches on NN based controllers too.
        </p>
        <p>As illustrated in Figure 1 using formal runtime monitoring approaches and tools, verification
(enforcement) monitors can be synthesized from the formal specification of desired policies, which can be
integrated with the system. The monitor is fed with the input/output of the system (current execution),
and it verifies the current execution w.r.t the desired policies, enforces (corrects) the current execution
when dealing with enforcement of the desired safety policies at runtime.
2</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Runtime Verification and Enforcement</title>
      <p>
        Formal runtime verification and enforcement approaches deal with automatic synthesis of monitors from
high-level specification of the policies (which the monitor should verify (or enforce)) [
        <xref ref-type="bibr" rid="ref1 ref10 ref13 ref7">1, 24, 17, 22, 10, 7,
16, 19, 20, 13</xref>
        ], that are correct-by-construction. For generation of monitors, knowledge of the system being
monitored is not necessary (i.e., the system being monitored can be considered as a black-box). Monitors
are automatically synthesized from policies expressed using high-level formalisms such as automata
[
        <xref ref-type="bibr" rid="ref13 ref7">17, 22, 7, 16, 19, 20, 13</xref>
        ] or some variant of Temporal Logic [
        <xref ref-type="bibr" rid="ref1">1, 24</xref>
        ].
      </p>
      <p>
        A RV monitor does not modify the system execution, and is used to check the current execution of a
system [
        <xref ref-type="bibr" rid="ref1">1, 24, 17</xref>
        ]. It takes a sequence of events from the system being monitored as input and produces
verdicts that provide information whether the current execution satisfies the desired policy or not.
      </p>
      <p>
        A monitor that deals with enforcement can be considered as a safety wrapper for the system being
monitored. An Enforcement Monitor (EM) observes (and safe-guards/filters) the execution of a system to
ensure that a set of desired policies are fulfilled. There are several EM synthesis frameworks proposed that
vary in the supported policy specification language, and (or) the power of the enforcement mechanism. In
[
        <xref ref-type="bibr" rid="ref8">16, 8, 18</xref>
        ] policies are expressed as automata and the EM is allowed to buffer input events until a future
time when it could be forwarded. In [16] supports EM synthesis for real-time properties expressed as
Timed Automata (TA). Other approaches such as [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] allow EM to modify input sequence by suppressing
and (or) inserting events.
      </p>
      <p>
        However, the above mentioned Runtime Enforcement (RE) approaches are not suitable for reactive
systems such as AV. As pointed in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], mechanisms such as edit automata [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], which focus on buffering
or deleting events, are only suitable for transformational systems and not reactive systems as the latter
one need to continually capture and emit events. Some of the recent works deal with synthesis of RE
monitors for reactive and cyber-physical systems (CPS), which are more suitable for AV [19, 20].
      </p>
      <p>
        In our work, we use the RE monitor synthesis tools that are based on the approaches proposed in
[
        <xref ref-type="bibr" rid="ref14">19, 20, 14</xref>
        ] that are suitable for CPSs. The framework in [20] supports RE monitor synthesis for untimed
polices, and [
        <xref ref-type="bibr" rid="ref14">19, 14</xref>
        ] extends it by supporting timed policies and parameters. In [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], Valued Discrete Timed
Automata (VDTA) (where valued signals, internal variables, and complex guard conditions are supported,
ensuring compatibility with real-world CPS and industrial systems) is used for formal specification of
policies, and EMs are synthesized from these VDTA to enforce a set of desired policies.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Design of the Proposed System</title>
      <sec id="sec-3-1">
        <title>Hardware Setup: For prototyping the</title>
        <p>AV, a Robot Car Chassis is needed
consisting of 4 DC gear motors. A motor
driver is used to control speed and
direction of the DC motors. Raspberry pi and
a microcontroller are used as master and
slave device. Raspicam camera is used for
sensing. The whole system is given power
by a power bank with at least two output
ports, and the connections are made using Figure 2: Hardware Setup.
jumper wires. We do not go into further
details of the setup due to space limitation. Figure 2 illustrates the setup/hardware model developed.
Software Architecture: Various modules are needed for precise steering of the AV. The input module
consists of Raspicam, which takes images of the track and forward it to image processing module.</p>
      </sec>
      <sec id="sec-3-2">
        <title>The output of the AV module is sent to the</title>
        <p>decision module of the system. The resultant
steering commands from the controller is sent to
the output module, if no enforcement monitor
is deployed into the system.</p>
        <p>For applying runtime monitoring (to verify
and enforce crucial properties) during execution,
it is not necessary to have knowledge/ formal
model of the system (i.e., the system/controller Figure 3: Design of AV with Monitor.
may be treated as a black-box). Figure 3
illustrates wrapping/safe-guarding the system/controller with monitors for desired safety policies. If we want
to monitor and verify the input and output of the decision module of the controller at runtime, then a
monitor synthesized from the security policies (which the user specifies for the CPS) is deployed, which
takes the input and output of the decision module and checks if these policies are obeyed by the current
execution of the system or not (if not then enforce them).</p>
        <p>The system is deployed on Raspberry pi and the output module is the micro-controller which when
receives the output from the system, commands the motor driver to steer the AV.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Experimentation</title>
      <p>For experimentation, Arduino Uno microcontroller is used for steering and L298N dual H-Bridge motor
driver is used for controlling the DC motors. For steering the AV, track images are collected from the
Raspicam (mounted on chassis) and is processed to extract the frame centre. Then the resultant difference
(Result) between the frame centre and the lane centre is relayed to the decision module of the system
(controller), which issues commands to the Arduino unit, to steer the vehicle.</p>
      <p>We present an example policy related to the output of the decision module. We sampled the Result
here, to define the safe behaviour of the AV. Let V (Result) be the value of Result. We have:
- −10 &lt; V (Result) &lt; 0: the sensed input (value of result) is between -10 and 0, denoted as event W .
- V (Result) == 0: the sensed input is equal to 0, denoted as event X.
- 0 &lt; V (Result) &lt; 10: the sensed input is between 0 and 10, denoted as event Y .
- others: the sensed input is anything other than above, denoted as event Z.</p>
      <p>
        For synthesis of EM from policies, using approaches [
        <xref ref-type="bibr" rid="ref14">20, 14</xref>
        ], for example, consider the desired safety
policy (on the output of the decision module of the controller) to be “If the input is Z, then the vehicle
should not move (forward/left/right).” This policy is defined as automata over alphabet Σ = {W, X, Y, Z}
illustrated in Figure 4.
      </p>
      <p>In the automaton in Figure 4, stop is the only non-accepting state. From any
accepting state, upon receiving event W , the AV goes to left state; upon receiving
event X, the AV goes to forward state; upon receiving event Y , the AV goes to
right state; and upon receiving event Z, the AV goes to stop state. From all the
states (f orward/lef t/right), when the input received is Z, the vehicle moves to
the stop state. When a situation arises where the policy can not be retained in
an accepting state, the enforcer issues command to stop the vehicle.</p>
      <p>The image processing module is a complex one which can be replaced with
a NN based solution. So, the input fed to the decision module also has to be
verified at runtime. We can define policies on input of the decision module; for Figure 4: Automata
example, “For input to change from A (A ∈ Σ) to B (B ∈ Σ), there should be for the desired policy.
at least say n control steps”.</p>
      <p>
        We implemented a basic controller in C language. Regarding EM, the desired
policies such as the policy described above are modelled as Finite Automata (FA) (alternatively as VDTA
which supports valued channels and expressing timed constraints that will allow to model the desired
properties more realistically without abstractions). From the policies defined as FA (VDTA), using the
tools proposed in [
        <xref ref-type="bibr" rid="ref14">20, 14</xref>
        ], the monitor is synthesized automatically. The monitor (C code synthesized
from high-level policies) integrated with the system takes the Result and commands from controller and
checks if the policies are obeyed by the system or not (if not then enforce them).
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Future Work</title>
      <p>Autonomous vehicle is one of many trends likely to affect future transport demands. We built a working
hardware prototype and demonstrated that formal runtime monitoring approaches can be used to wrap
the controller of the AV to guarantee a safe behaviour. The prototype is built with Raspberry pi and
Arduino Uno, in which the monitor is created out of the desired security policies, which will enforce the
policies on the output of the controller, before relaying it to the slave Arduino micro-controller to steer
the vehicle, thus, guaranteeing safe behaviour of the vehicle.</p>
      <p>In future work, we plan to extend the set-up with multiple input sources, use more complex NN based
controllers (e.g., in place of the current image processing module), and illustrate the practical applicability
of dynamic formal monitoring approaches in more complex settings.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bauer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Leucker</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Schallhart</surname>
          </string-name>
          .
          <article-title>Runtime verification for LTL and TLTL</article-title>
          .
          <source>ACM Trans. Softw</source>
          . Eng. Methodol.,
          <volume>20</volume>
          (
          <issue>4</issue>
          ):
          <volume>14</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
          :
          <fpage>64</fpage>
          ,
          <string-name>
            <surname>Sept</surname>
          </string-name>
          .
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>B.</given-names>
            <surname>Beckert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Hoare</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Hahnle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. R.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Green</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ranise</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Ball</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S. K.</given-names>
            <surname>Rajamani</surname>
          </string-name>
          .
          <article-title>Intelligent systems and formal methods in software engineering</article-title>
          .
          <source>IEEE Intelligent Systems</source>
          ,
          <volume>21</volume>
          (
          <issue>6</issue>
          ):
          <fpage>71</fpage>
          -
          <lpage>81</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bengtsson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Larsen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Larsson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Pettersson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Yi</surname>
          </string-name>
          .
          <article-title>Uppaal-a tool suite for automatic verification of real-time systems</article-title>
          .
          <source>In International hybrid systems workshop</source>
          , pages
          <fpage>232</fpage>
          -
          <lpage>243</lpage>
          . Springer,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Bojarski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. D.</given-names>
            <surname>Testa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Dworakowski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Firner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Flepp</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Goyal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. D.</given-names>
            <surname>Jackel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Monfort</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Muller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zhao</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Zieba</surname>
          </string-name>
          .
          <article-title>End to end learning for self-driving cars</article-title>
          .
          <source>CoRR, abs/1604.07316</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>E. M.</given-names>
            <surname>Clarke Jr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Grumberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kroening</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Peled</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Veith</surname>
          </string-name>
          .
          <article-title>Model checking</article-title>
          . MIT press,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C.</given-names>
            <surname>Colombo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. J.</given-names>
            <surname>Pace</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Schneider. LARVA</surname>
          </string-name>
          <article-title>- safer monitoring of real-time Java programs (tool paper)</article-title>
          . In D. V. Hung and P. Krishnan, editors,
          <source>Proceedings of SEFM 2009</source>
          , pages
          <fpage>33</fpage>
          -
          <lpage>37</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Falcone</surname>
          </string-name>
          .
          <article-title>You should better enforce than verify</article-title>
          . In Runtime Verification - First International Conference, RV 2010,
          <article-title>St</article-title>
          . Julians, Malta, November 1-
          <issue>4</issue>
          ,
          <year>2010</year>
          . Proceedings, volume
          <volume>6418</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>89</fpage>
          -
          <lpage>105</lpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Falcone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Mounier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-C.</given-names>
            <surname>Fernandez</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.-L.</given-names>
            <surname>Richier</surname>
          </string-name>
          .
          <article-title>Runtime enforcement monitors: composition, synthesis, and enforcement abilities</article-title>
          .
          <source>Formal Methods in System Design</source>
          ,
          <volume>38</volume>
          (
          <issue>3</issue>
          ):
          <fpage>223</fpage>
          -
          <lpage>262</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>G. J.</given-names>
            <surname>Holzmann</surname>
          </string-name>
          .
          <article-title>The model checker spin</article-title>
          .
          <source>IEEE Trans. Softw</source>
          . Eng.,
          <volume>23</volume>
          (
          <issue>5</issue>
          ):
          <fpage>279</fpage>
          -
          <lpage>295</lpage>
          , May
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ligatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bauer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Walker</surname>
          </string-name>
          .
          <article-title>Edit automata: enforcement mechanisms for run-time security policies</article-title>
          .
          <source>Int. J. Inf. Sec.</source>
          ,
          <volume>4</volume>
          (
          <issue>1</issue>
          -2):
          <fpage>2</fpage>
          -
          <lpage>16</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Maurer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Gerdes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Lenz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Winner</surname>
          </string-name>
          , et al. Autonomous driving. Berlin, Germany: Springer Berlin Heidelberg,
          <volume>10</volume>
          :
          <fpage>978</fpage>
          -
          <lpage>3</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D.</given-names>
            <surname>Nickovic</surname>
          </string-name>
          and
          <string-name>
            <surname>O. Maler.</surname>
          </string-name>
          <article-title>AMT: a property-based monitoring tool for analog systems</article-title>
          .
          <source>In Proceedings of the 5th International Conference on Formal modeling and analysis of timed systems (FORMATS</source>
          <year>2007</year>
          ), volume
          <volume>4763</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>304</fpage>
          -
          <lpage>319</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>H.</given-names>
            <surname>Pearce</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Pinisetty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. S.</given-names>
            <surname>Roop</surname>
          </string-name>
          ,
          <string-name>
            <surname>M. M. Kuo</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ukil</surname>
          </string-name>
          .
          <article-title>Smart i/o modules for mitigating cyber-physical attacks on industrial control systems</article-title>
          .
          <source>IEEE Transactions on Industrial Informatics</source>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>H. A.</given-names>
            <surname>Pearce</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Pinisetty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. S.</given-names>
            <surname>Roop</surname>
          </string-name>
          ,
          <string-name>
            <surname>M. M. Y. Kuo</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ukil</surname>
          </string-name>
          .
          <article-title>Smart I/O modules for mitigating cyber-physical attacks on industrial control systems</article-title>
          .
          <source>IEEE Trans. Ind. Informatics</source>
          ,
          <volume>16</volume>
          (
          <issue>7</issue>
          ):
          <fpage>4659</fpage>
          -
          <lpage>4669</lpage>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S.</given-names>
            <surname>Pinisetty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Falcone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Jéron</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Marchand</surname>
          </string-name>
          .
          <article-title>Tipex: A tool chain for timed property enforcement during execution</article-title>
          .
          <source>In Runtime Verification - 6th International Conference</source>
          , RV 2015 Vienna, Austria,
          <source>September 22-25</source>
          ,
          <year>2015</year>
          . Proceedings, volume
          <volume>9333</volume>
          <source>of LNCS</source>
          , pages
          <fpage>306</fpage>
          -
          <lpage>320</lpage>
          . Springer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>