<!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>Incrementally Predictive Runtime Veri cation?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Angelo Ferrando</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Giorgio D</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Genova</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Runtime Veri cation is a lightweight formal veri cation technique used to verify the runtime behaviour of software (resp. hardware) systems. Given a formal property, one or more monitors are synthesised to verify the latter against a system execution. A monitor can only conclude the violation of a property when it observes such a violation. Unfortunately, in safety-critical scenarios, this might happen too late for the system to react properly. In such scenarios, it is advised to use Predictive Runtime Veri cation, where monitors are capable of anticipating (by using a model of the system) future events before actually observing them. In this work, instead of assuming such a model is given, we describe a runtime veri cation work ow where the model is learnt and incrementally re ned by using process mining techniques. We present the approach and the resulting prototype tool.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Runtime Veri cation (RV) [7] is a kind of formal veri cation technique that
focuses on checking the behaviour of software/hardware systems. With respect
to other formal veri cation techniques, such as Model Checking [11] and Theorem
Provers [18], RV is considered more dynamic and lightweight. This is mainly due
to its being completely focused on checking how the system behaves, while the
latter is currently running. This is important from a complexity perspective. RV
does not need to simulate the system in order to check all possible execution
scenarios; but, it only analyses what the system produces (i.e., everything that
can be observed of the system). This is usually obtained through monitors, that
are nothing more than validation engines which, given a trace of events generated
by the system execution, conclude the satisfaction (resp. violation) of a formal
property of interest. In turn, a formal property is the formal representation
of how we expect the system should behave. The monitor's job is to verify at
runtime whether such a property holds.</p>
      <p>Since monitors are usually deployed together with the system under
analysis, they are well suited for checking properties that require to be continuously
monitored. This is especially true in safety-critical scenarios, where a system's
? Copyright © 2021 for this paper by its authors. Use permitted under Creative</p>
      <p>Commons License Attribution 4.0 International (CC BY 4.0).
fault can cause injuries, loss of money and even deaths. A key example is
autonomous and robotic systems, where reliability is vital [12], and the addition of
monitors ensuring a correct behaviour is a valuable feature. Nonetheless, even
though monitors are lightweight components, they are still an additional
workload for the system. This is not a problem for large systems, but it might be for
smaller ones, such embedded systems; where the amount of available resources
can be limited. For both increasing reliability and reducing the impact of the
monitors on the system, an extension of standard RV named Predictive Runtime
Veri cation (PRV) has been proposed e.g. in [31]. As the name suggests, PRV
di ers from RV because it does not only consider the events observed by the
system execution, but it also tries to predict future events. By predicting future
events, the resulting monitors are capable of concluding the veri cation sooner.
Indeed, since these monitors can predict how the system is going to behave in the
future, they can reduce the search space of possible future continuations and,
hypothetically, conclude the satisfaction (resp. violation) by analysing shorter
traces of events (w.r.t. the standard counterpart). By concluding earlier,
predictive monitors are a good choice: (i) for improving reliability in safety-critical
scenarios, since the monitors can conclude a violation of a property before such
a violation has even been observed; (ii) for reducing the workload introduced by
the monitor, since the monitor can conclude the satisfaction (resp. violation) of
the property sooner, it can be removed from the system and its resources can
be reclaimed for other purposes.</p>
      <p>The problem with PRV is that it requires additional knowledge on the
system in order to predict future events. Usually, this is represented through an
abstraction, the model, which is manually created by an expert of the system.
The problem with this approach is that such a model is not always available,
and even when it is, it might not be speci ed in a convenient way (e.g. wrong
formalism). One possible way to avoid errors due to human intervention in the
model generation step is to resort once again to observations collected at
runtime. The guiding principle here is to learn the model behavior by observing
real execution traces so as to create a sort of closed loop in which logs are used
to adjust the candidate models, models are used to predict faults with certain
con dence level, the con dence level increases with the log size, etc.</p>
      <p>For this purpose, in this paper we present an initial study on how to use
Process Mining (PM) to automate the model generation phase in practical
applications of PRV. PM is a rich research area which consists in { but is not
limited to { studying and developing automated techniques to synthesise models
from log les. Speci cally, we focus on the branch of PM called Process
Discovery. We show how it can be applied in the context of PRV, and we present
the updated veri cation work ow; where, starting from a set of log les
generated by the system execution, we obtain a model that can be used to predict
events for the monitor. We also show how the resulting approach can be used to
obtain incrementally predictive monitors, where more the monitors are used to
verify the system and more they improve at predicting future events, and thus,
at concluding the satisfaction (resp. violation) of the analysed property.</p>
      <p>It is important to remark that, to avoid human intervention in the model
generation phase, the proposed approach has an empirical nature by construction
since it always works with partial information on the entire set of possible system
behaviours. In theory, a precise model of the system can be obtained only as the
limit of a sequence of possible inaccurate candidate models. For this reason,
our validation procedure returns truth values enriched with con dence scores
that depend on the frequency of observed events applied during the PM
preprocessing phase.</p>
      <p>The remainder of this paper is structured as follows. Section 2 presents the
preliminary notions of RV, PRV and PM. Section 3 shows our general veri
cation work ow without selecting any speci c formalism for properties and models.
Section 3.1 instantiates our work ow with the most used formalisms in formal
veri cation. Section 4 presents the prototype tool representing the
implementation of our approach. Section 5 positions this contribution with respect to the
state of the art. Finally, Section 6 summarises the results of this work and points
out to future directions.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>Runtime Veri cation and Predictive Runtime Veri cation
A system is denoted by S, and its alphabet (all of its observable events) is denoted
by S (or where there is no confusion). Given an alphabet, , a trace, , is a
sequence of events in , and tr( ) is the set of all possible traces (the language)
over . Properties are denoted by ', potentially with subscripts, and ' denotes
their negation. Given an alphabet , a property ' is satis ed by a trace over
, written j= ', if ' is true in . The set J'K = f j j= 'g contains the set of
traces satisfying ', and we denote that a particular trace satis es a property '
as 2 J'K. A property ' can be speci ed in any formalism such that for a given
alphabet , and for any trace 2 tr( ), the following two conditions hold:</p>
      <sec id="sec-2-1">
        <title>2 J'K is decidable</title>
        <p>
          2 J'K ()
2= J'K
(
          <xref ref-type="bibr" rid="ref1">1</xref>
          )
(
          <xref ref-type="bibr" rid="ref2">2</xref>
          )
        </p>
        <p>
          Condition (
          <xref ref-type="bibr" rid="ref1">1</xref>
          ) states that, given a property ' speci ed with the formalism of
choice, we can always test if a trace satis es ', i.e. belongs to the set of traces
satisfying '. This condition is mandatory since a monitor is de ned upon the
notion of trace acceptance. As we are going to show in De nition 1, a monitor
requires to check if a trace satis es the property under analysis, and this can be
done only when condition (
          <xref ref-type="bibr" rid="ref1">1</xref>
          ) holds. Condition (
          <xref ref-type="bibr" rid="ref2">2</xref>
          ), instead, implicitly states that
the formalism of choice has to be closed under negation and a trace satis es
a property ', if and only if, does not satisfy its negation '. The negation of
properties will be used in De nition 2 to de ne monitors with predictive avour,
where we will combine a model with the negation of a property ' to check for
traces satisfying but not '.
        </p>
        <p>De nition 1 (Monitor). Let S be a system with alphabet , and ' be a
property. Then, a monitor for ' is a function M on' : tr( ) ! B3, where
B3 = f&gt;; ?; ?g:</p>
        <p>M on'( ) =
8
&gt;&lt; &gt;</p>
        <p>?
&gt;: ?</p>
        <p>Intuitively, a monitor returns &gt; if all continuations of satisfy '; ? if all
possible continuations of violate '; ? otherwise.</p>
        <p>De nition 1 describes a generic monitor that does not impose constraints
on the formalism used. Consequently, we collapse the de nition of tr( ) for
representing nite and in nite traces depending on what is supported by the
formalism that is used to de ne '. Thus, if ' accepts only traces of in nite length,
then tr( ) = !; if ' accepts only traces of nite length, then tr( ) = ;
otherwise, tr( ) = [ !.</p>
        <p>Let S be a system with alphabet . We denote its model by , and use J K
tr( ) to indicate the set of traces recognised by (i.e., represents a formal
abstraction of how S behaves). A model, , can be speci ed in any formalism
such that for a given alphabet, , for any trace, 2 tr( ), and for any property,
', the following holds:</p>
      </sec>
      <sec id="sec-2-2">
        <title>2 J K is decidable</title>
      </sec>
      <sec id="sec-2-3">
        <title>J'K \ J K is computable</title>
        <p>
          (
          <xref ref-type="bibr" rid="ref3">3</xref>
          )
(
          <xref ref-type="bibr" rid="ref4">4</xref>
          )
We indicate (
          <xref ref-type="bibr" rid="ref4">4</xref>
          ) via the use of a binary relation , that is, J' K = J'K \ J K.
        </p>
        <p>Often, PRV frameworks express their properties in Linear-time Temporal
Logic (LTL) [22] (for example [17,31]); however, we took our inspiration from
a PRV framework where both the System Under Analysis (SUA) and property
are de ned using Timed Automata (TA) [21]. The reason is that in works such
as [17,31], the predictive aspect is not formalised through a model of the system,
but as a set of nite su xes. These su xes are then concatenated to the given
trace allowing the monitor to predict the initial part of the possible
continuations u. Instead, in our work, as in [21], we explicitly represent the model
without focusing only on the rst events after , but by applying the prediction
to the entire possible continuation. This can be obtained using a model of the
system as input to the monitor, alongside the property to be veri ed. Informally,
the model generates the set of event traces that can be observed by executing
the system. We follow the de nition of a predictive monitor from [21], however,
in this paper we remain formalism-agnostic.</p>
        <p>De nition 2 (Predictive Monitor). Let S be a system with alphabet ,
model and let ' be a property. A predictive monitor for ' given is a function,
M on'; : tr( ) ! B3, where B3 = f&gt;; ?; ?g:</p>
        <p>M on'; ( ) = &lt;&gt; &gt;</p>
        <p>?
&gt;: ?
8
The intuitive meaning of the return values is the same as in the non-predictive
case (De nition 1). Note the use in the de nition. For instance, the case for
&gt; requires all traces u not to be in J'K \ J K where ' represents the negation
of '.
Process Mining (PM) [26] is a technique used in software engineering to
automatically synthesise a formal model which denotes the system behaviour. Such
analysis is usually performed on event logs generated by multiple executions of
the system.</p>
        <p>In practice, by using data mining algorithms, knowledge is extracted by these
logs and corresponding formal models are generated. These models represent
an abstraction of the system, and can be used to understand how the system
behaves. Usually, once such models are extracted, an expert of the system can use
them to study and check whether the implemented system actually meets his/her
expectations. This check can be manually performed by the expert, who inspects
the extracted model and searches for inconsistencies, or it can be automatically
performed through conformance checking algorithms.</p>
        <p>The power of PM lies in its being exible, customisable and automated. Thus,
we decided to study and develop its integration in the context of PRV. Mostly
because, one of the drawbacks of PRV is the assumption that an existing model
of the system exists. Moreover, since PM completely depends on the event logs
generated by the system execution, more logs are used, and better (i.e., more
precise) models are extracted. Because of this, PM does not only allow PRV
to be applied when a model of the system does not exist, but it also makes
PRV more robust and reliable. For instance, when the system under analysis
presents dynamic aspects, to rely on a static model would eventually bring to
wrong predictions. Instead, if the model is automatically obtained by observing
how the system behaves, it may keep up with the change and be a more reliable
representation of how the system is currently behaving.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Incrementally Predictive Runtime Veri cation</title>
      <p>When applying RV with a predictive avour, we need a model of the system to
predict future events. Without such a knowledge, each event would be considered
observable in the future, and the monitor would need to evaluate all possible
continuations of the current analysed trace. Nonetheless, how the model of the
system is generated is not de ned a priori. In previous works [6,30,21,31,17,10],
the model of the system is assumed to be manually created by an expert of the
system. Here, we show how the standard predictive runtime veri cation work ow
can be enhanced using process mining techniques to automatically synthesise the
model of the system.</p>
      <p>
        (
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
      </p>
      <p>
        (
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
log les
      </p>
      <p>Process Mining Model</p>
      <p>
        Predictive Model ( )
(
        <xref ref-type="bibr" rid="ref5">5</xref>
        )
      </p>
      <p>
        (
        <xref ref-type="bibr" rid="ref4">4</xref>
        )
trace of events
(
        <xref ref-type="bibr" rid="ref3">3</xref>
        )
'
      </p>
      <p>
        (
        <xref ref-type="bibr" rid="ref4">4</xref>
        )
Monitor
      </p>
      <p>
        Step 1: Model extraction As it is true for all process mining algorithms,
everything starts from a set of log les. These log les contain information about
previous executions of the system, and can be used to predict future executions as
well. Given such a set of log les, a process mining algorithm of choice can be
selected to parse the logs and generate a model representing the system behaviour
(Process Mining Model ). Depending on the algorithm, the resulting model may
be di erent; even though usually the most common formalisms used to specify
such models are Petri Net (PN) [20] and Directly-Follows Graph (DFG) [5].
Step 2: Predictive Model derivation The model extracted by the process
mining algorithm (step (
        <xref ref-type="bibr" rid="ref1">1</xref>
        )) may not be directly usable to synthesise a predictive
monitor (e.g. formalism mismatch). If that is the case, one or more additional
transformation steps are required1. These steps aim to transform the Process
Mining Model into a more suitable Predictive Model, which can be used to
synthesise predictive monitors as we show in Section 2. Again, these models can
be speci ed using di erent formalisms which depend on the kind of predictive
monitor we want to synthesise.
1 Naturally, if the Process Mining Model is already de ned in a suitable way for the
predictive monitor (i.e., the Process Mining Model and Predictive Model coincide),
the entire step (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) can be removed.
      </p>
      <p>
        Step 3: Monitor synthesis Once the model of the system is obtained (steps
(
        <xref ref-type="bibr" rid="ref1 ref2">1-2</xref>
        )), it can be used to synthesise a predictive monitor. Such synthesis depends
on which formalism is used for de ning the property ' to verify, and which
formalism has been used at step (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) to generate . In principle, the synthesised
monitor has to follow De nition 2; where the model is used to predict future
events and to prune impossible continuations of the current analysed trace.
Step 4: Monitor execution The predictive monitor obtained at step (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) for the
property ' and the Predictive Model is used to analyse the system. More
in detail, a trace representing the system execution is passed as input to the
monitor. Such a trace can be retrieved incrementally while the system is running
(events are passed to the monitor as soon as they are generated), or, it can be
stored in a log le. In the former, we refer to online RV, while in the latter, we
refer to o ine RV. In both cases, the veri cation process ends with a verdict
produced by the monitor. If the verdict is positive (&gt;), then the system execution
has satis ed '. If the verdict is negative (?), then the system execution has
violated '. Finally, if the system execution neither satis es nor violates ', the
verdict is inconclusive (?).
      </p>
      <p>
        Step 5: Log les update An interesting aspect of our approach is that log les
can be used at two separate levels. They are used to synthesise the model of the
system through process mining at step (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), and are used to verify the current
system execution against a formal property ' at step (
        <xref ref-type="bibr" rid="ref4">4</xref>
        ). Nonetheless, in both
cases they are nothing more than traces of events obtained by executing the
system under analysis. When the monitor is done with a trace of events (it
has completed the veri cation), in standard RV such a trace is discarded. Even
though this is true for standard RV, it is not the case for PRV. Indeed, we can
use the trace of events analysed by the monitor to increase the knowledge we
have of the system. Speci cally, this new trace of events can be added to the
log les on which process mining is applied. In this way, more the predictive
monitor is used to verify a system, and more it improves at predicting events
on that system. Initially, the set of log les used at step (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) might be small,
which would bring to a non informative model of the system; but, by using the
predictive monitor to verify the system, additional event traces would be added
to the set of log les. The addition of new traces enriches the knowledge the
process mining algorithm has of the system, and consequently, it improves the
quality of the synthesised model.
3.1
      </p>
      <p>
        Incrementally Predictive Runtime Veri cation instantiation
In Section 3, we present the general work ow, where no speci c formalism is
xed. In this way, depending on the domain, the approach can be customised for
obtaining better results. Nonetheless, for a better understanding, we present an
instantiation of our approach, where we use DFG as formalism for representing
the Process Mining Model, Probabilistic Finite-State Machine (PFSM) [24] and
(
        <xref ref-type="bibr" rid="ref4">4</xref>
        )
      </p>
      <p>
        (
        <xref ref-type="bibr" rid="ref3">3</xref>
        )
(
        <xref ref-type="bibr" rid="ref5">5</xref>
        )
Probabilistic Finite-State Machine
ev1
s3
init
      </p>
      <p>(2b)
ev1
s0
ev4
ev4
s2
ev2
s1</p>
      <p>
        s2
Buchi Automaton
hev3; v2;3v+2;3v2;4 i
ev3
log les
(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
v4;1
ev4
ev1
Buchi Automata (BA) [8] for the Predictive Model, and nally, LTL for the
properties to verify at runtime with the monitor.
      </p>
      <p>
        Figure 2 shows an overview of the instantiated veri cation work ow; where,
starting from a set of log les representing di erent system executions, and an
LTL property ' to verify, we obtain a predictive monitor. The veri cation process
consists in 6 steps (since step (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) of Figure 1 is split into (2a) and (2b)).
Step 1: Model extraction First of all, using the log les generated by
multiple system executions, a DFG [5] is created. Such a graph represents the
system behaviour and can be obtained by applying state of the art process
mining algorithms, such as Alpha Miner [2,29], Heuristics Miner [4,28], Inductive
Miner [16,13], Process Skeletonization [3], and Graph-Based Miner [27,25] (a
thorough review can be found in [5]). The output's formalism of these
algorithms can vary, but the most common representations are Petri Net [20], Causal
Net [1], BPMN [9] and DFG. We decided to use DFG because their translation
to automata is more direct. The DFG so generated is a graph where the states
are labeled with events evi observed in the log les, and a directed edge goes
from a state evi to a state evj if there is at least one trace in the log les where
the event evi is followed by the event evj . Naturally, these events are domain
dependent, e.g. messages, function calls, actions, etc. Moreover, each transition
is labelled with the number of traces (vi;j ) where such causality relation is
observed. For instance, in Figure 2, ev1 is followed by ev2 in v1;2 traces in the log
les, ev2 is followed by ev3 in v2;3 traces and by ev4 in v2;4 traces, and so on.
Step 2a: Addition of probabilities After generating a DFG of the system, the next
step is to explicitly represent which events can be observed and with which
probability. This is achieved in step (2a), where starting from a DFG, a
corresponding PFSM [24] is obtained. A PFSM is an extension of standard Finite-State
Machine (FSM) where the transitions amongst states are labelled with tuples
hevi; pii, which denote that the event (evi) can be observed with probability (pi)
in that state. Since the PFSM is obtained by a DFG, the events and
probabilities are extracted accordingly. If there is an edge from evi to evj labelled with
vi;j, and an edge from evi to evk labelled with vi;k, then in the corresponding
vi;j
PFSM, a state s is generated, with two transitions labelled hevj; vi;j+vi;k i and
vi;k
hevk; vi;j+vi;k i. These two transitions specify the probability of observing events
evj and evk in s. For instance, in Figure 2, in the DFG, the state ev2 is followed
by the states ev3 and ev4. This is mapped to state s1 in the PFSM, in which the
two events ev3, and ev4 can be observed. The probability attached to ev3 is the
probability of observing ev3 after ev1, which can be computed as the number of
times ev3 has followed ev1 in the log les (v1;3) divided by the total number of
traces where ev1 has been observed (similar reasoning for ev4). Let us assume
7
v1;3 = 7 and v1;4 = 3, then the probability of observing ev3 after ev1 is 7+3 = 0:7
3
(i.e., 70%); while the probability of ev4 is 7+3 = 0:3 (i.e., 30%). Thus, the
transitions from state s1 to states s2 and s3 are hev3; 0:7i and hev4; 0:3i, respectively.
It is important to note that, each state in PFSM has a transition for each
possible event of the system. The events that have never been observed in a state
have zero probability (such transitions are omitted in Figure 2 for readability).
For instance, in state s1, the event ev1 has zero probability to be observed, since
no trace has ever been observed with an event ev2 followed by an event ev1.
Nonetheless, we need to explicitly represent the events with zero probability as
well because initially, when the model extracted at step (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) is not trustworthy,
any event has to be considered possible. How much trust we put in the PFSM
is determined by the following step (2b), where a probability threshold is used
to prune (resp. keep) transitions on the basis of their probability values.
Step 2b: Approximation with a threshold In a standard predictive RV approach,
the model of the system does not contain probabilities. Instead, it simply
species which traces can be generated by the system execution. Probabilities, even
though relevant, are not usually taken in consideration when the model is used
for predicting future events [30,21,31,17,10]. Nonetheless, probabilities can be
used to select which events are observable in which states. One possible way to
give importance to probabilities without explicitly reporting them in the model
is to set a probability threshold. Given a probability threshold, all transitions
with a probability less than the threshold can be removed (grey transition in
Figure 2), while the transitions with a probability greater than the threshold can
be preserved (but deprived of the probability information). In this way, given a
PFSM, we can generate a corresponding BA [8], for a certain probability
threshold. Such a BA explicitly describes the language recognised by the model of the
system. We decided to use BA because is one of the most used formalisms in
formal veri cation. By generating a BA, we assure a wider use of our solution, since
existing predictive RV tools already support BA. Depending on the threshold,
the BA can be more or less reliable. For instance, if the threshold is 0.01 (i.e.,
1%), then all transitions with probabilities less than 0.01 are pruned. This means
that, the BA so generated recognises all traces generated by the log les, except
for the traces that are unlikely. Naturally, higher is the threshold, and smaller
is the language recognised by the BA; since more transitions are pruned in the
process from PFSM to BA. Because of this, the threshold needs to be chosen
carefully. In principle, more we trust the model generated at step (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), and higher
we can set the threshold. Indeed, if we trust the model extracted by the process
mining algorithm, then we can trust that the transitions with low probability
represent outliers, and by pruning them we can have a faster2 veri cation. On
the other hand, if we do not trust the model generated at step (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), we can select
a lower threshold and prune less transitions in the transformation from PFSM
to BA. For instance, this can happen when not many log les are available, and
the process mining is not accurate enough. While the threshold can be increased
later on, when more log les are available and the resulting process mining is
more trustworthy. Note that, the BA corresponds to an over-approximation of
the DFG obtained at step (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ). Since the DFG only speci es the cause-e ect
relation amongst the system's events, in presence of loops in the DFG (resp. in the
BA), we cannot infer the number of times the system execution passes on such
loops. Because of this, in order to not prune possible system executions from the
BA model, each state in the BA is set to be nal. In this way, the BA recognises
a superset of the execution traces generated by the system.
      </p>
      <p>
        Step 3: Monitor synthesis Once we obtain a model of the system, a predictive
monitor can be synthesised (following De nition 2). In [31], the authors present
the approach for synthesising predictive monitors for LTL properties, where the
model of the system is assumed being a BA. Following the same approach, at step
(
        <xref ref-type="bibr" rid="ref3">3</xref>
        ), we synthesise a predictive monitor by combining an LTL property ' given in
input, and the BA obtained at step (2b). Naturally, depending on the formalism
used at step (2b), the monitor synthesis may vary. For instance, instead of BA,
we could use timed automata to denote the model of the system, as it is done
in [17]. Note that, this would cause a modi cation of only step (2b) and (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ); the
remaining steps of the work ow would remain unchanged. In fact, we selected
LTL and BA as formalisms for representing properties and models because are
widely used and well-known. Nonetheless, the work ow presented in this work
is not constrained to any speci c formalism. With few modi cations it can be
adapted to other formalisms as well.
      </p>
      <p>Steps 4-5: Monitor execution and Log les update These steps do not depend on
the speci c instantiation and are the same as the steps in Section 3.
2 Since less future continuations have to be considered.
The Python implementation of our approach is publicly available as a GitHub
repository3. We implemented all the engineering steps presented in this paper,
when instantiated to the case with LTL properties and BA models. More in
detail, the resulting tool takes in input: (i) a set of log les (expressed as a single
XES le4), which is the standard format used in PM to represent event logs; (ii)
a threshold to guide the mapping from PFSM to BA; (iii) an LTL property to
verify; (iv) a trace generated by the current system execution to analyse.</p>
      <p>
        To implement step (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), i.e. the application of process mining to the log les,
we used the PM4Py5 Python library. PM4Py is the leading open source
process mining platform written in Python, and is developed by the process mining
group of Fraunhofer Institute for Applied Information Technology6. Such a
library allows to develop process mining applications very quickly. In fact, the
step (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) of our approach has been completely implemented by calling PM4Py
API. Starting from the XES le denoting the knowledge we have of the system,
PM4Py generates a DFG as a Python object. The rest of the code has been fully
implemented in Python from scratch. First, the Python object representing the
DFG is translated into another Python object denoting the corresponding PFSM
(step (2a)). Such translation is straightforward, because it is enough to unroll the
transitions amongst states in the DFG; similarly to what it is usually done when
translating Kripke structures [15] to BA. Once the Python object representing
the PFSM is obtained, the tool goes on with its translation to BA (step (2b)).
Again, this translation is direct because it simply requires to prune the
transitions with a probability lower than the chosen threshold, and make all states
nal. With the BA Python object, a predictive monitor is then generated. This,
in particular, is obtained by using a Python library supporting the generation of
predictive monitors for LTL properties and BA models7. This library has been
developed by one of the authors of this paper as well. Using this library, the
step (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) is completed, and a predictive monitor ready to be used is synthesised.
Finally, the tool terminates by using such a monitor to verify a trace of events
given in input, and reporting the nal verdict to the user (step (
        <xref ref-type="bibr" rid="ref4">4</xref>
        )). The trace
so analysed can then be integrated (step (
        <xref ref-type="bibr" rid="ref5">5</xref>
        )) inside the XES le given in input
to enhance future process mining phases (i.e., next times the approach is used).
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>RV is a rich research area, but PRV is still rising. One of the oldest works on
PRV is presented in [31]. In this work, the authors present an extension of the
standard RV approach when applied to LTL properties. Di erently from the
3 https://github.com/AngeloFerrando/IncrementallyPredictiveRV
4 http://www.xes-standard.org/
5 https://pm4py.fit.fraunhofer.de/
6 http://fit.fraunhofer.de/process-mining
7 https://github.com/AngeloFerrando/MultiModelPredictiveRuntimeVerification
rest of works in literature, the prediction of future events is not obtained using
a model of the system, but is limited to a single sequence of events (called nite
predictive word ) that is concatenated to the analysed trace. With respect to our
solution, no explicit { nor complete { representation of the system is used. The
same year, one of the authors proposed an extended version [17], where instead
of considering one single predictive word, a BA model is integrated inside the
standard generation of LTL monitors. The resulting approach is at the basis
of the predictive library we use in our tool to synthesise predictive LTL
monitors. The main di erence is in the generation of the BA, which in [17] is given,
while in our approach is automatically extracted through PM. Moreover, our
approach is intrinsically general. In fact, LTL and BA are just a possible
instantiation. A more recent work where prediction is obtained through assumptions
is presented in [10]. The authors propose a di erent way to synthesise
predictive monitors for LTL properties, where the model used to predict the future
events, instead of being a BA, is a Fair Kripke Structure (FKS) [14]. Similarly,
in [21], another PRV approach is presented, where the model is instead de ned
as a Timed Automaton. In both cases, the main di erence with our approach
is in the generality and the fact that the model is not given but automatically
synthesised. On a completely di erent line of research, we may nd [6], where
probabilistic models, like Markov Models, are used. This work is very similar to
ours because, di erently from the others mentioned before, it does not assume
the model of the system is given. In fact, the probabilistic model used in the
resulting RV framework is trained on samples generated by the system
execution using the Baum-Welch algorithm [23]. Even though similar in principle,
this work di ers from our solution in three aspects: (i) it uses machine learning
techniques to extract the model, while we rely on PM techniques; (ii) it does not
de ne any notion of incrementality; (iii) it considers only nite extensions. To
the best of our knowledge, the work that is closest to ours is presented in [19];
where the authors use PM to extract the model used for synthesising
predictive monitors as well. With respect to our approach, in [19] the objective of the
predictive monitor is slightly di erent. Instead of being purely focused on the
veri cation of the system under analysis, they are more interested in using the
monitors to recommend the system on how to proceed. To do so, they focus on
the probabilistic aspects and present a framework to suggest the best actions to
perform in order to increase the probability of satisfying a given LTL formula.
Moreover, their solution is less general than ours. Their approach is hard-coded
in the Business Process scenario, while our veri cation work ow is general and
tackles all the engineering steps necessary to integrate PM inside the creation of
predictive monitors.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusions and Future Work</title>
      <p>In this paper, we present a general veri cation work ow for integrating PM in
the generation of predictive monitors. We show all the engineering steps that,
from a set of log les, bring to the extraction of a model which can be used to
predict future events and speed up the RV process. We present an overview of
the veri cation workload where no formalism is enforced. This choice increases
the impact of the work in the veri cation community, since these engineering
steps can be customised w.r.t. the user's needs. Nonetheless, to help better
understanding the approach, we also show an instantiation with LTL properties
and BA models. The choice of these two formalisms is due to their being largely
used in the veri cation community.</p>
      <p>Finally, a Python prototype tool is presented. We brie y show its features
and how it implements the engineering steps presented in the paper.</p>
      <p>
        With respect to future directions; this is an initial work on the topic and
there are many di erent aspects that still need to be tackled. For instance, at
the current level, the probability is not considered in the monitor and it is lost
in the translation from PFSM to BA. Nonetheless, this is an interesting aspect
to explore further. Indeed, the notion of threshold could be used to add more
information to the monitor's outcome. This could also bring to the generation of
multiple BA, each corresponding to a di erent threshold. This would be
interesting to analyse, and it could be a starting point for a more thorough comparison
between our approach, and the one presented in [19].
Greece, June 16-20, 2014. Proceedings. Lecture Notes in Computer Science,
vol. 8484, pp. 457{472. Springer (2014).
https://doi.org/10.1007/978-3-319-078816 31, https://doi.org/10.1007/978-3-319-07881-6_31
20. Petri, C.A.: Kommunikation mit Automaten. Ph.D. thesis, Universitat Hamburg
(1962)
21. Pinisetty, S., Jeron, T., Tripakis, S., Falcone, Y., Marchand, H., Preoteasa, V.:
Predictive Runtime Veri cation of Timed Properties. Journal of Systems and Software
132, 353{365 (2017)
22. Pnueli, A.: The temporal logic of programs. In: 18th Annual
Symposium on Foundations of Computer Science, Providence, Rhode Island, USA,
31 October - 1 November 1977. pp. 46{57. IEEE Computer Society
(1977). https://doi.org/10.1109/SFCS.1977.32, https://doi.org/10.1109/SFCS.
1977.32
23. Rabiner, L.: A tutorial on hidden markov models and selected
applications in speech recognition. Proceedings of the IEEE 77(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ), 257{286 (1989).
https://doi.org/10.1109/5.18626
24. SALOMAA, A.: Chapter ii - nite non-deterministic and probabilistic automata.
      </p>
      <p>
        In: SALOMAA, A. (ed.) Theory of Automata, International Series of Monographs
on Pure and Applied Mathematics, vol. 100, pp. 71{113. Pergamon (1969).
https://doi.org/https://doi.org/10.1016/B978-0-08-013376-8.50008-3, https:
//www.sciencedirect.com/science/article/pii/B9780080133768500083
25. Sarno, R., Sungkono, K.R., Johanes, R., Sunaryono, D.: Graph-based algorithms
for discovering a process model containing invisible tasks. International Journal of
Intelligent Engineering and Systems 12, 85{94 (2019)
26. Van Der Aalst, W.: Data science in action. In: Process mining, pp. 3{23. Springer
(2016)
27. Waspada, I., Sarno, R., Sungkono, K.: An improved method of
parallel model detection for graph-based process model discovery. International
Journal of Intelligent Engineering and Systems 13, 127{139 (04 2020).
https://doi.org/10.22266/ijies2020.0430.13
28. Weijters, A.J.M.M., Ribeiro, J.T.S.: Flexible heuristics miner (FHM). In:
Proceedings of the IEEE Symposium on Computational Intelligence and Data
Mining, CIDM 2011, part of the IEEE Symposium Series on
Computational Intelligence 2011, April 11-15, 2011, Paris, France. pp. 310{317. IEEE
(2011). https://doi.org/10.1109/CIDM.2011.5949453, https://doi.org/10.1109/
CIDM.2011.5949453
29. Wen, L., Wang, J., van der Aalst, W.M.P., Huang, B., Sun, J.: Mining
process models with prime invisible tasks. Data Knowl. Eng. 69(
        <xref ref-type="bibr" rid="ref10">10</xref>
        ), 999{1021
(2010). https://doi.org/10.1016/j.datak.2010.06.001, https://doi.org/10.1016/
j.datak.2010.06.001
30. Yu, K., Chen, Z., Dong, W.: A Predictive Runtime Veri cation Framework for
Cyber-Physical Systems. In: Software Security and Reliability-Companion. pp.
223{227. IEEE (2014)
31. Zhang, X., Leucker, M., Dong, W.: Runtime Veri cation with Predictive Semantics.
      </p>
      <p>In: NASA Formal Methods. LNCS, vol. 7226, pp. 418{432. Springer (2012)</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          : Process Mining - Discovery, Conformance and Enhancement of Business Processes. Springer (
          <year>2011</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          - 19345-3, https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -19345-3
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weijters</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maruster</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Work ow mining: Discovering process models from event logs</article-title>
          .
          <source>IEEE Trans. Knowl. Data Eng</source>
          .
          <volume>16</volume>
          (
          <issue>9</issue>
          ),
          <volume>1128</volume>
          {
          <fpage>1142</fpage>
          (
          <year>2004</year>
          ). https://doi.org/10.1109/TKDE.
          <year>2004</year>
          .
          <volume>47</volume>
          , https://doi.org/10.1109/ TKDE.
          <year>2004</year>
          .47
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Abe</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kudo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Business monitoring framework for process discovery with real-life logs</article-title>
          . In: Sadiq,
          <string-name>
            <surname>S.W.</surname>
          </string-name>
          , So er, P., Volzer, H. (eds.) Business Process Management - 12th
          <source>International Conference, BPM</source>
          <year>2014</year>
          , Haifa, Israel, September 7-
          <issue>11</issue>
          ,
          <year>2014</year>
          .
          <source>Proceedings. Lecture Notes in Computer Science</source>
          , vol.
          <volume>8659</volume>
          , pp.
          <volume>416</volume>
          {
          <fpage>423</fpage>
          . Springer (
          <year>2014</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -10172-9 30, https: //doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -10172-9_
          <fpage>30</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Augusto</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Conforti</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dumas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosa</surname>
            ,
            <given-names>M.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bruno</surname>
          </string-name>
          , G.:
          <article-title>Automated discovery of structured process models from event logs: The discover-and-structure approach</article-title>
          .
          <source>Data Knowl. Eng</source>
          .
          <volume>117</volume>
          ,
          <issue>373</issue>
          {
          <fpage>392</fpage>
          (
          <year>2018</year>
          ). https://doi.org/10.1016/j.datak.
          <year>2018</year>
          .
          <volume>04</volume>
          .007, https://doi.org/10.1016/j. datak.
          <year>2018</year>
          .
          <volume>04</volume>
          .007
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Augusto</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Conforti</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dumas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosa</surname>
            ,
            <given-names>M.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maggi</surname>
            ,
            <given-names>F.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marrella</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mecella</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Soo</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Automated discovery of process models from event logs: Review and benchmark</article-title>
          .
          <source>IEEE Trans. Knowl. Data Eng</source>
          .
          <volume>31</volume>
          (
          <issue>4</issue>
          ),
          <volume>686</volume>
          {
          <fpage>705</fpage>
          (
          <year>2019</year>
          ). https://doi.org/10.1109/TKDE.
          <year>2018</year>
          .
          <volume>2841877</volume>
          , https://doi.org/10. 1109/TKDE.
          <year>2018</year>
          .2841877
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Babaee</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Gur nkel, A.,
          <string-name>
            <surname>Fischmeister</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>P revent : A predictive run-time veri cation framework using statistical learning</article-title>
          . In: Johnsen,
          <string-name>
            <given-names>E.B.</given-names>
            ,
            <surname>Schaefer</surname>
          </string-name>
          , I. (eds.)
          <source>Software Engineering and Formal Methods - 16th International Conference, SEFM</source>
          <year>2018</year>
          ,
          <article-title>Held as Part of STAF 2018</article-title>
          , Toulouse, France, June 27- 29,
          <year>2018</year>
          ,
          <source>Proceedings. Lecture Notes in Computer Science</source>
          , vol.
          <volume>10886</volume>
          , pp.
          <volume>205</volume>
          {
          <fpage>220</fpage>
          . Springer (
          <year>2018</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -92970-5 13, https: //doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -92970-5_
          <fpage>13</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Bartocci</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Falcone</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Francalanza</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reger</surname>
          </string-name>
          , G.:
          <article-title>Introduction to runtime veri cation</article-title>
          .
          <source>In: Lectures on Runtime Veri cation</source>
          , pp.
          <volume>1</volume>
          {
          <fpage>33</fpage>
          . Springer (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. Buchi,
          <string-name>
            <surname>J.R.</surname>
          </string-name>
          :
          <article-title>On a Decision Method in Restricted Second Order Arithmetic</article-title>
          , pp.
          <volume>425</volume>
          {
          <fpage>435</fpage>
          . Springer New York, New York, NY (
          <year>1990</year>
          ). https://doi.org/10.1007/978- 1-
          <fpage>4613</fpage>
          -8928-6 23, https://doi.org/10.1007/978-1-
          <fpage>4613</fpage>
          -8928-6_
          <fpage>23</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <article-title>Business process model and notation</article-title>
          . https://www.bpmn.org/, accessed:
          <fpage>2021</fpage>
          -06- 24
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Cimatti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tian</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tonetta</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Assumption-based runtime veri cation with partial observability and resets</article-title>
          . In: Finkbeiner,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Mariani</surname>
          </string-name>
          ,
          <string-name>
            <surname>L</surname>
          </string-name>
          . (eds.) Runtime Veri cation - 19th
          <source>International Conference, RV</source>
          <year>2019</year>
          , Porto, Portugal, October 8-
          <issue>11</issue>
          ,
          <year>2019</year>
          ,
          <source>Proceedings. Lecture Notes in Computer Science</source>
          , vol.
          <volume>11757</volume>
          , pp.
          <volume>165</volume>
          {
          <fpage>184</fpage>
          . Springer (
          <year>2019</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>030</fpage>
          -32079-9 10, https: //doi.org/10.1007/978-3-
          <fpage>030</fpage>
          -32079-9_
          <fpage>10</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>E.M.:</given-names>
          </string-name>
          <article-title>Model checking</article-title>
          .
          <source>In: International Conference on Foundations of Software Technology and Theoretical Computer Science</source>
          . pp.
          <volume>54</volume>
          {
          <fpage>56</fpage>
          . Springer (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. Fisher,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Mascardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            ,
            <surname>Rozier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.Y.</given-names>
            ,
            <surname>Schlinglo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Winiko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Yorke-Smith</surname>
          </string-name>
          ,
          <string-name>
            <surname>N.</surname>
          </string-name>
          :
          <article-title>Towards a framework for certi cation of reliable autonomous systems</article-title>
          .
          <source>Auton. Agents Multi Agent Syst</source>
          .
          <volume>35</volume>
          (
          <issue>1</issue>
          ),
          <volume>8</volume>
          (
          <year>2021</year>
          ). https://doi.org/10.1007/s10458-020- 09487-2, https://doi.org/10.1007/s10458-020-09487-2
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Ghawi</surname>
          </string-name>
          , R.:
          <article-title>Process discovery using inductive miner and decomposition</article-title>
          .
          <source>CoRR abs/1610</source>
          .07989 (
          <year>2016</year>
          ), http://arxiv.org/abs/1610.07989
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Kesten</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pnueli</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raviv</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Algorithmic veri cation of linear temporal logic speci cations</article-title>
          . In: Larsen,
          <string-name>
            <given-names>K.G.</given-names>
            ,
            <surname>Skyum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Winskel</surname>
          </string-name>
          ,
          <string-name>
            <surname>G</surname>
          </string-name>
          . (eds.) Automata,
          <article-title>Languages and Programming, 25th International Colloquium</article-title>
          , ICALP'98,
          <string-name>
            <surname>Aalborg</surname>
          </string-name>
          , Denmark,
          <source>July 13-17</source>
          ,
          <year>1998</year>
          ,
          <source>Proceedings. Lecture Notes in Computer Science</source>
          , vol.
          <volume>1443</volume>
          , pp.
          <volume>1</volume>
          {
          <fpage>16</fpage>
          . Springer (
          <year>1998</year>
          ). https://doi.org/10.1007/BFb0055036, https://doi.org/10.1007/BFb0055036
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Kripke</surname>
            ,
            <given-names>S.A.</given-names>
          </string-name>
          :
          <article-title>Semantical considerations on modal logic</article-title>
          .
          <source>Acta Philosophica Fennica</source>
          <volume>16</volume>
          ,
          <issue>83</issue>
          {
          <fpage>94</fpage>
          (
          <year>1963</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Leemans</surname>
            ,
            <given-names>S.J.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fahland</surname>
            , D., van der Aalst,
            <given-names>W.M.P.</given-names>
          </string-name>
          :
          <article-title>Discovering block-structured process models from event logs - A constructive approach</article-title>
          . In: Colom,
          <string-name>
            <given-names>J.M.</given-names>
            ,
            <surname>Desel</surname>
          </string-name>
          ,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (eds.)
          <article-title>Application and Theory of Petri Nets</article-title>
          and Concurrency - 34th International Conference,
          <source>PETRI NETS</source>
          <year>2013</year>
          , Milan, Italy, June 24-28,
          <year>2013</year>
          .
          <source>Proceedings. Lecture Notes in Computer Science</source>
          , vol.
          <volume>7927</volume>
          , pp.
          <volume>311</volume>
          {
          <fpage>329</fpage>
          . Springer (
          <year>2013</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -38697-8 17, https:// doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -38697-8_
          <fpage>17</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Leucker</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Sliding between Model Checking and Runtime Veri cation</article-title>
          .
          <source>In: Runtime Veri cation. LNCS</source>
          , vol.
          <volume>7687</volume>
          , pp.
          <volume>82</volume>
          {
          <fpage>87</fpage>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Loveland</surname>
            ,
            <given-names>D.W.:</given-names>
          </string-name>
          <article-title>Automated theorem proving: a logical basis, Fundamental studies in computer science</article-title>
          , vol.
          <volume>6</volume>
          . North-Holland (
          <year>1978</year>
          ), https://www.worldcat.org/ oclc/252520243
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Maggi</surname>
            ,
            <given-names>F.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Francescomarino</surname>
            ,
            <given-names>C.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dumas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghidini</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Predictive monitoring of business processes</article-title>
          . In: Jarke,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Mylopoulos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Quix</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Rolland</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Manolopoulos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            ,
            <surname>Mouratidis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            ,
            <surname>Horko</surname>
          </string-name>
          ,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (eds.) Advanced Information Systems Engineering - 26th International Conference, CAiSE
          <year>2014</year>
          , Thessaloniki,
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>