<!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>Monitoring with Parametrized Extended Life Sequence ⋆ Charts</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ming Chai</string-name>
          <email>ming.chai@informatik.hu-berlin.de</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bernd-Holger Schlingloff</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Fraunhofer FOKUS</institution>
        </aff>
      </contrib-group>
      <fpage>88</fpage>
      <lpage>102</lpage>
      <abstract>
        <p>Runtime verification is a lightweight verification technique that checks whether an execution of a system satisfies a given property. A problem in monitoring specification languages is to express parametric properties, where the correctness of a property depends on both the temporal relations of events, and the data carried by events. In this paper, we introduce parametrized extended live sequence charts (PeLSCs) for monitoring sequences of data-carrying events. The language of PeLSCs is extended from life sequence charts by introducing condition and assignment structures. We develop a translation from PeLSCs into the hybrid logic HL, and prove that the word problem of the PeLSCs is linear with respect to the size of a parametrized event trace. Therefore, the formalism is feasible for on-line monitoring.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>Even with most advanced quality assurance techniques, correctness of complex
software can never be guaranteed. To solve this problem, runtime verification has been
proposed to provide on-going protection during the operational phase. Runtime
Verification checks whether an execution of a computational system satisfies or violates a
given correctness property. It is performed by using a monitor. This is a device or a
piece of software that observes the system under monitoring (SuM) and generates a
certain verdict (true or false) as the result. Compared to model checking and testing,
this technique is considered to be a lightweight validation technique, since it does not
try to cover all possible executions of the SuM. It detects failures of an SuM directly
in its actual running environment. This avoids some problems of other techniques, such
as imprecision of the model in model checking, and inadequateness of the artificial
environment in testing.</p>
      <p>
        An execution of a computational system checked by a monitor can be formalized
by a sequence of events. One of the challenges in building a runtime verification system
is to define a suitable specification language for monitoring properties. A monitoring
specification language should be expressive and attractive [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]: The language should
be able to express all expected monitoring properties, and the language should keep the
formulations simple for simple properties. A simple formulation means that the size of
the formulation is small, and the notations of the formulation is understood by users
(e.g., system designers).
      </p>
      <p>Over the last years, various runtime verification systems have been developed which
use some form of temporal logic, including linear temporal logic (LTL), metric temporal
logic (MTL), time propositional temporal logic (TPTL) and first-order temporal logic
(LTLF O). Although these specification languages are expressive and technically sound
for monitoring, software engineers are not familiar with them and need extensive
training to use them efficiently. Therefore, many runtime verification systems support also
other specification languages, such as regular expressions and context-free grammars.
Unfortunately, it is difficult to specify properties for parallel systems in these languages,
and they are not (yet) used in practice by system designers.</p>
      <p>
        In previous work [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], we proposed an extension of live sequence chart (LSC) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]
for expressing monitoring properties. LSC is a visual formalism that specifies the
temporal relations of the exchange of messages among instances. It extends the classical
message sequence chart formalism (MSC) by introducing possible and mandatory
elements, including universal and existential charts, and hot and cold messages and
conditions. With these extensions, LSCs are able to distinguish between required and allowed
behaviours of an SuM. Our language of the proposed extended LSCs (eLSCs)
introduces modal pre-charts. That is, we distinguish between pre-charts that are necessary
conditions of main-charts and those that are sufficient conditions of main-charts.
      </p>
      <p>The eLSC-based monitoring approach so far can not handle parametric properties,
where the correctness of a property depends on both the temporal relations of events
and data carried by the events. One possible workaround for this shortage is to
formalize each assignment of data with a unique atomic proposition. However, since the
domain of data can be infinite or unknown, this approach is not sufficient in general.
We extend eLSC to parametrized eLSC (PeLSC) by introducing assignment structures
and condition structures.</p>
      <p>In this paper, we model data-carrying events with parametrized events, where the
data is represented by parameters. Consider a client/server system that allows clients to
access a server, and consider the following properties.</p>
      <p>(P1): If there is a log in to the server, it must be followed by a log out.
(P2): A log out event can not occur, unless it is preceded by a log in.</p>
      <p>(P3): If a client logs in to the server, it must log out within 200 sec.</p>
      <p>For the first two properties, the monitor can observe a propositional events login and
logout. The expected behaviours can be formalized by the following regular expressions
L1 and L2, respectively.</p>
      <p>L1 , Σ∗ ◦ {login} ◦ {logout} ◦ Σ∗</p>
      <p>L2 , Σ∗ ◦ {login} ◦ {logout} ◦ Σ∗
For the property (P3), each of the login and logout events carries a client name
and a time stamp. An execution of this system can be formalized by a sequence of
parametrized events. Each of the propositional events carries two parameters client_id
(id) and time_stamp (time). With these definitions, property (P3) can be written more
formally as follows:</p>
      <p>When the system emits a login event with (id = x) and (time = y), a logout
event with (id = x′) and (time = y′) should occur afterwards, where (x′ = x)
and (y′ ≤ (y + 200)).</p>
      <p>The PeLSCs of Fig. 1 specify the three properties above. The chart (C1) is a
standard LSC formalizing (P1). Property (P2) cannot be formalized with LSCs; an eLSC for
it is (C2). Property (P3) involves parameters on infinite or unknown domains and thus
cannot be expressed by eLSCs. A PeLSC for it is (P U ). Formal definitions being given
below, we note that the language PeLSC contains variables, assignment and conditions
for dealing with data-parametrized events. An assignment structure is used to store an
arbitrary parameter value, and a condition structure is used to express constraints on
such values. With these extensions, PeLSCs can be used for monitoring systems where
events carry data.</p>
      <p>
        To generate monitors, we translate PeLSCs into (a subclass of) the hybrid logic
(HL) [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. HL has a type of symbols called nominals that represent names of
parameters. Let s be a symbol, an HL formula may contain the downarrow binder “x ↓ s.”.
When evaluating an HL formula over a parametrized event trace, the downarrow binder
assigns all variables x in the formula to the value of the parameter s of the “current”
parametrized event.
      </p>
      <p>(a) PeLSC for P1
(b) PeLSC for P2
(c) PeLSC for P3</p>
      <p>A monitor essentially solves the word-problem: given a trace, decide whether the
trace is in the language defined by a monitoring property. As a main result of this paper,
we prove that the complexity of the word-problem of PeLSCs is linear if the
propositions in the condition structures express only comparisons of parameter values. Thus,
monitoring can be done on-line, while the SuM is running.</p>
      <p>The rest of the paper is organized as follows. Section 2 outlines related work.
Section 3 introduces parametrized eLSCs (PeLSCs), including their syntax and trace-based
semantics. Section 4 presents a translation from PeLSCs into a subclasss of HL, and
proves the complexity of the word problem of PeLSCs. Section 5 contains some
conclusions and hints for future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        Our extension of LSCs is inspired by the treatment of time in live sequence charts
proposed by Harel et. al. [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. There, a time constraint in LSCs is defined by a combination
of assignment structures and condition structures. In contrast, we provide a more
general notation for arbitrary data parameters.
      </p>
      <p>
        There are several other runtime verification approaches for handling parametrized
events. The EAGLE logic [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], which is a linear µ -calculus, is one of the first logics in
runtime verification for specifying and monitoring data-relevant properties. Although
EAGLE has rich expressiveness, it has high computational costs [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. To avoid this
problem, other rule-based methods have been introduced. They are based on MetateM [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]
and the Rete algorithm [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. MetateM provides a framework of executing temporal
formulae and Rete is an efficient algorithm for matching patterns with objects. Inspired
by MetateM, RuleR is an efficient rule-based monitoring system that can compile
various temporal logics [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. LogicFire is an internal domain specification language for
artificial intelligence on basis of Rete [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. The rule-based runtime verification
systems have high performance. However, their implementations are still complex. The
language of PeLSCs has a comparable expressiveness. However, the implementation
of PeLSC based runtime verification system is easier because monitors are generated
automatically with the translation algorithm.
      </p>
      <p>
        TraceMatches [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is essentially a regular expression language. It extends the
language of AspectJ [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] by introducing free variables in the matching patterns.
TraceContract is an API for trace analysis, implemented in Scala, which is able to express
parametric properties with temporal logic [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Monitoring oriented programming (MOP) is
an efficient and generic monitoring framework that integrates various specification
languages [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. In particular, JavaMOP deals with parametric specification and monitoring
using TraceMatches [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. TraceMatches and JavaMOP are defined on the basis of trace
slicing, which translates parametrized events into propositional events. With trace
slicing, the problem of checking parametrized event traces is translated into a (standard)
propositional word problem. Although JavaMOP has high performance, to our opinion
its expressiveness is insufficient. As pointed out in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], trace slicing can only handle
traces where all events with the same name carry the same parameters. Our PeLSCs
based approach overcomes this shortage by using formula rewriting algorithms.
      </p>
      <p>
        Another important direction of parametric monitoring is based on automata theory.
Quantified event automata [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] are an extension of the trace slicing methods mentioned
above. They are strictly more expressive than TraceMatches. In that context, data
automata have been proposed as a down-scaled version of Rete to an automaton-based
formalism [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Unfortunately, properties of parallel systems have complex formulations
when expressed by automata. PeLSCs can keep the monitoring specification attractive
when dealing with such properties.
      </p>
      <p>
        Various extensions of LTL have been proposed for parametric monitoring. If time
is the only parameter, properties can be formalized with real-time logics such as TLTL
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], MTL [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and TPTL [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. For other parameters, first order extensions of LTL
have been introduced. Parametrized LTL [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] contains a binary binding operator, and is
further translated into parametrized automata for monitoring. First-order temporal logic
LTLF O includes both first-order and temporal connectives [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. For monitoring LTLF O
an algorithm using a spawning automaton has been developed [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. However, the word
problem of LTLF O is PSPACE-complete [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], and the translation has a potential of
suffering from the state explosion problem. A domain-specific language for monitoring
the exchange of XML messages of web service is LTLF O+ [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. This language has
a lower complexity than full first order temporal logic. However, its expressiveness is
limited by only allowing to express equivalence of variables. Metric Temporal
Firstorder Logic (MFOTL) adds quantifiers to MTL [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], and has been used for monitoring
data applications[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. An MFOTL monitoring system has been built based on a trace
decomposing technique, which may introduce additional errors/mistakes. Similiar to
the languages of automata, all these temporal logics have difficulties in specifying
concurrency properties. The language of PeLSCs can avoid these shortcomings. The word
problem for PeLSCs is linear with respect to the size of traces. Meanwhile, PeLSCs
have richer expressiveness than LTLF O+ by allowing to express general comparisons
of terms. Our rewriting based algorithms avoid the problems introduced by the LTL to
automata translations, and the trace decomposing techniques.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Definitions of Parametrized eLSCs</title>
      <p>This section presents the syntax and semantics of parametrized extended LSCs
(PeLSCs). The PeLSCs are interpreted over parametrized event traces, which are
defined as follows.</p>
      <p>Let Σ , {e1, e2, ..., en} be a finite alphabet of events, N , {s1, s2, ...} be a
countable set of nominals and D , {d1, d2, ...} any domain (e.g., integers, strings, or
reals). A parameter is a pair p , hs, di from N × D, where s is the name of p and d is
the value of p.</p>
      <p>Definition 1 (Parametrized event). Given an alphabet Σ of events, a set N of
nominals and a domain D, a parametrized event is a pair w , he, Pi, where e ∈ Σ is an
event and P ∈ 2N ×D is a set of parameters.</p>
      <p>Given a parametrized event w with P , {hs1, d1i, ..., hsm, dmi}, we define
Evet(w) , e, Para(w) , P and Nam(w) , {s1, ..., sm}. A parametrized event he, Pi
is deterministic if each parameter name in P is unique, i.e., for all p, p′ ∈ P it holds
that s 6= s′. In this paper, we assume that all parametrized events are deterministic.</p>
      <p>Parametrized event traces basically are finite sequences of parameterized events.</p>
    </sec>
    <sec id="sec-4">
      <title>Definition 2 (Parametrized event trace). Given N and D, a parameter trace ρ ,</title>
      <p>(P1, P2, ..., Pn) over N × D is a finite sequence of sets of parameters, i.e., an element
of (2N ×D)∗. Given Σ, N and D, a parametrized event trace τ , hσ, ρi is a pair of
a finite event trace σ and a parameter trace ρ with the same length, i.e., σ ∈ Σ∗ and
ρ ∈ (2N ×D)∗ and |σ| = |ρ|.</p>
      <p>By τ [i] , hσ[i], ρ[i]i we denote the ith parametrized event of τ , where σ[i] and ρ[i]
are the ith element of σ and ρ, respectively.</p>
      <sec id="sec-4-1">
        <title>Syntax of PeLSCs</title>
        <p>A universal PeLSC consists of two basic charts: a pre-chart and a main-chart. A basic
chart is visually similar to an MSC. It specifies the exchange of messages among a set
of instances. Each instance is represented by a lifeline. Lifelines in a basic chart are
usually drawn as vertical dashed lines, and messages are solid arrows between lifelines.
For each message, there are two actions: the action of sending the message and the
action of receiving it. Each action occurs at a unique position in a lifeline. The partial
order of actions induced by a basic chart is as follows.</p>
        <p>– An action at a higher position in a lifeline precedes an action at a lower position in
the same lifeline; and
– for each message m, the send-action of m precedes the receive-action of m.</p>
        <sec id="sec-4-1-1">
          <title>Formally, we define basic charts as follows.</title>
          <p>Let M be a set of messages, and let the set of events be given as Σ , (M × {!, ?}).
That is, an event e is either m! (indicating that message m is sent, or m? (indicating
that m is received).</p>
          <p>A lifeline l is a finite (possibly empty) sequence of events l , (e1, e2, ..., en). A
basic chart C is an n-tuple of lifelines hl1, ..., lni with li = (ei1, ..., eim). We say
that an event e occurs at the location (i, j) in chart C if e = eij . An event
occurrence o , (e, i, j) is a tuple consisting of an event e and the location of e. We define
loc(o) , (i, j) as the location of an event occurrence o, and lab(o) , e be the event of
o. We denote the set of event occurrences appearing in C with EO(C) A
communication h(m!, i, j), (m?, i′, j′)i in C is a pair of two event occurrences in C representing
sending and receiving of the same message m. We define mat(m!, i, j) , (m?, i, j) to
match a sending event occurrence to a receiving event occurrence of the same
communication. A communication does not have to be completely specified by a basic chart.
That is, it is possible that only the sending event or the receiving event of a message
appears in a basic chart. In addition, an event is allowed to occur multiple times in a basic
chart, i.e., a basic chart can express that a message is repeatedly exchanged. However,
each event occurrence is unique in a basic chart.</p>
          <p>The partial relation induced by a chart C on EO(C) is formalized as follows.
1. for any 1 ≤ xj &lt; |lxi| with lxi being a lifeline in C, it holds that (e, xi, xj) ≺
(e′, xi, (xj + 1));
2. for any o ∈ S, it holds that o ≺ mat(o); and
3. ≺ is the smallest relation satisfying 1 and 2.</p>
          <p>
            We admit the non-degeneracy assumption proposed by Alur et. al. [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ]: a basic chart
cannot reverse the receiving order of two identical messages sent by some lifeline.
Formally, a basic chart is degeneracy if and only if there exist two sending event
occurrences o1, o2 ∈ S with o1 ≺ o2 such that lab(o1) = lab(o2) and mat(o1) 6≺ mat(o2).
          </p>
          <p>For a basic chart, event occurrences are allowed to be absent, i.e., it is possible that
only a sending event or a receiving event of a message appears in a basic chart. Each
event occurrence is unique in a basic chart.</p>
          <p>With basic charts, a universal eLSC can be defined as follows. A universal chart
in the eLSCs consists of two basic charts: a main-chart (M ch, drawn within a solid
rectangle) and a pre-chart (P ch). There are two possibilities of pre-charts: “necessary
pre-charts” (drawn within a solid hexagon) and “sufficient pre-charts” (drawn within a
hashed hexagon). These two pre-charts are interpreted as a necessary condition and a
sufficient condition for a main-chart, respectively. Intuitively, a universal chart with a
necessary pre-chart specifies all traces such that, if contains a segment which is admitted
by the pre-chart, then it must also contain a continuation segment (directly following the
first segment) which is admitted by the main chart. On the other hand, a universal chart
with a sufficient pre-chart specifies all traces such that, if contains a segment which is
admitted by the main-chart, then the segment must (directly) follows a prefix segment
which is admitted by the pre-chart. Formally, the syntax of eLSCs is as follows.</p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>Definition 3 (Syntax of universal eLSCs). A universal eLSC is a tuple</title>
        <p>U ch , (P ch, M ch, Cate)
with Cate ∈ {Suff , Nec} denoting the category of the pre-chart. More specifically, the
chart (P ch, M ch, Suff ) is with a sufficient pre-chart, and (P ch, M ch, Nec) is with a
necessary pre-chart.</p>
        <p>We define PeLSCs by introducing condition structure and assignment structure into
eLSCs.</p>
        <p>An assignment structure is comprised of a function v := s with v being a variable
and s being the name of a parameter. The variable v is evaluated to the value of a
parameter name p. The function is surrounded by a rectangle with a sandglass icon at
the top right corner. A condition structure is comprised of a proposition prop surrounded
by a rectangle. The proposition expresses the comparisons of parameter values. The
notations for the assignment structure and the condition structure are shown in Fig. 2.
In a PeLSC, assignment structures and condition structures combine naturally with
event occurrences. Intuitively, an assignment structure stores the value of a parameter
carried by the combined event occurrence; and a condition structure expresses the
features of a parameter carried by the combined event occurrence. Formally, the syntax of
the two structures are given as follows.</p>
      </sec>
      <sec id="sec-4-3">
        <title>Definition 4 (Syntax of assignment and condition structures). Let U ch be an eLSC,</title>
        <p>o ∈ EO(U ch) an event occurrence of U ch, v a free variable, s a nominal, and prop
a proposition. An assignment structure is defined as a tuple assi , (v, s, o), where
s represents the name of of a parameter. A condition structure is defined as a pair
cond , hprop, oi.</p>
        <sec id="sec-4-3-1">
          <title>With these structures, a PeLSC can be defined as follows.</title>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Definition 5 (Syntax of PeLSCs). A PeLSC is defined as a tuple P U ,</title>
      <p>(U ch, COND, ASSI), where U ch is an eLSC, and COND and ASSI are sets of
condition structures and assignment structures, respectively.</p>
      <p>There are two possible forms of propositions in condition structures, one is with free
variables (denoted by prop(s1, ..., sn, v1, ..., vm)) and the other is without free variables
(denoted by prop(s1, ..., sn)). These two forms are used to express relative parameter
values and absolute parameter values, respectively. We divide the set COND of a PeLSC
into two subsets CONDF V and CONDNF V . The subset CONDF V is comprised of the
set of condition structures with propositions of the form prop(s1, ..., sn, v1, ..., vm);
and the subset CONDNF V is comprised of the set of condition structures with
propositions of the form prop(s1, ..., sn). It holds that (CONDF V ∩ CONDNF V ) = ∅ and
(CONDF V ∪ CONDNF V ) = COND.</p>
      <p>Given a parametrized event trace, the proposition in a condition structure hprop, oi
is evaluated to a boolean value, according to the parameter values carried by events:
– the nominals s1, ..., sn in prop are replaced by the values of the parameters named
by s1, ..., sn carried by the event lab(o); and
– the variables v1, ..., vm in prop are evaluated to the values from some event
occurrences through the assignment structures assi(v1, sx1, ox1), ..., assi (vm, sxm,
oxm).</p>
      <p>In this paper, we require our PeLSCCs to satisfy an additional non-ambiguity
assumption. We say a PeLSC is non-ambiguity, if for any condition structure with a
proposition of the form prop(s1, ..., sn, v1, ..., vm), all free variable v1, ..., vm are
evaluated to a certain value from a unique event occurrence. More formally, a PeLSC
P U , (U ch, COND, ASSI) is non-ambiguity if and only if for any condition
structure cond = (prop(s1, ..., sn, v1, ..., vm), o) in the set CONDF V it holds that for any
vxi ∈ {v1, ..., vm} there exists an assignment structure (vxi, sxi, o′) ∈ ASSI with
o′ ≺ o. With the non-ambiguity assumption, each proposition is able to be evaluated
to a certain boolean value (true or false) over a deterministic parametrized event trace.
To understand this assumption, consider the PeLSCs in Fig. 3. For the chart P U2, the
variable v has no value since there is no assignment structure to store it. For the chart
P U3, the variable v has two values stored by two assignment structures. Therefore, the
condition structure cannot be evaluated to a certain boolean value for both of the two
charts. For the chart P U4, the values of variables v1 and v2 are from different event
occurrences.</p>
      <p>The non-ambiguity assumption is a strong assumption. For instance, the variables
v1 and v2 in the chart P U4 have certain values. However, the order of the two events
!m1 and !m2, which are combined with the two assignment structures of v1 and v2, are
uncertain. Since our monitors are generated by translating PeLSCs into HL, the size
of the monitor is increased by expressing all possible executions of the pre-chart in the
resulting formula. This will reduce the monitoring efficiency.
(b) ambiguity
(c) ambiguity
(d) ambiguity
A PeLSC (U ch, COND, ASSI) defines a parametrized language (a set of parametrized
event traces) that is an extension of the propositional language (i.e., a set of event traces)
defined by U ch. Intuitively, the parametrized language is comprised of all parametrized
event traces such that the orders of events meets the partial order induced by U ch, and
all propositions in COND are evaluated to true with the values from the parameters
carried by the events. A parametrized event trace τ is admitted by a PeLSC P U if and
only if τ is in the parametrized language defined by P U .</p>
      <p>A set of sequences of event occurrences is defined by a basic chart C as follows:
EOcc(C) , {(o[x1], o[x2], ..., o[xn])|{o[x1], o[x2], ..., o[xn]} = EO(C); n =
|EO(C)|; and for all o[xi], o[xj] ∈ EO(C), if o[xi] ≺ o[xj], then xi &lt; xj}.</p>
      <p>For languages L and L′, let (L◦L′) be the concatenation of L and L′ (i.e., (L◦L′) ,
{(σσ′) | σ ∈ L and σ′ ∈ L′}); and L be the complement of L (i.e., for any σ ∈ Σ∗,
it holds that σ ∈ L iff σ ∈/ L). The language of event occurrences for eLSCs is given as
follows.</p>
      <sec id="sec-5-1">
        <title>Definition 6 (Semantics of universal eLSCs). The language of event occurrences de</title>
        <p>fined by an eLSC U ch , (P ch, M ch, Cate) is as follows
– EOcc(U ch) , EOcc(P ch) ◦ EOcc(M ch), if Cate = Suff ;
– EOcc(U ch) , EOcc(P ch) ◦ EOcc(M ch), if Cate = Nec.</p>
        <sec id="sec-5-1-1">
          <title>The evaluations of the propositions are formally defined as follows.</title>
          <p>Given a set P = {hs1, d1i, ..., hsn, dmi} of parameters and a proposition
prop(sy1, ..., syn), we define the evaluation of prop(sy1, ..., syn) over P (denoted with
[[P ⊢ prop(sy1, ..., syn)]]) as follows.</p>
          <p>true if prop(dy1, ..., dyn) is satisfied with

[[P ⊢ prop(sy1, ..., syn)]] =  {hsy1, dy1i, ..., hsyn, dymi} ⊆ P
false otherwise</p>
          <p>For the propositions of the form prop(sx1, ..., sxn, vy1, ..., vym) in P U , the values
of the variables vy1, ..., vym are from the assignment structures
ASSI(vy1, ..., vym) , {assi(vy1), ..., assi(vym)}, where assi(vyi) , (vyi, syi, o).
By ac(sx1, ..., sxn, vy1, ..., vym) we denote the pair (prop(sx1, ..., sxn, vy1, ..., vym),
ASSI(vy1, ..., vym)). Given a pair hP, P′i of two sets of parameters, the evaluation of
the pair ac(sx1, ..., sxn, vy1, ..., vym) over hP, P′i is defined as follows.
– [[hP, P′i ⊢ ac(sx1, ..., sxn, vy1, ..., vym)]] = true, if
prop(dx1, ..., dxn, dy1, ..., dym) is satisfied with {(sx1, dx1), ..., (sxn, dxn)} ⊆ P′
and
{(sy1, dy1), ..., (syn, dyn)} ⊆ P;
– [[hP, P′i ⊢ ac(sx1, ..., sxn, vy1, ..., vym)]] = f alse, otherwise.</p>
        </sec>
        <sec id="sec-5-1-2">
          <title>A PeLSC P U defines all parametrized event traces (σ, ρ) such that</title>
          <p>
            – σ = (lab(o[
            <xref ref-type="bibr" rid="ref1">1</xref>
            ]), ..., lab(o[n])) with (o[
            <xref ref-type="bibr" rid="ref1">1</xref>
            ], ..., o[n]) ∈ EOcc(U ch);
– for all hprop, oi ∈ CONDNF V , if there exists zi ∈ [1, n] with o[zi] = o, then
[[ρ[zi] ⊢ prop]] = true; and
– for all hprop(sx1, ..., sxn, vy1, ..., vym), oi ∈ CONDF V and (vyi, syi, o′) ∈
ASSI(vy1, ..., vym), if there exists zj, zk ∈ [1, n] such that o[zj] = o′ and o[zk] =
o, then [[hρ[zj], ρ[zk]i ⊢ prop]] = true.
          </p>
          <p>By PTra(P U ) we denote the set of parametrized event traces defined by P B. Let
E (U ch) be the set of events appearing in an eLSC. We call each ǫUch ∈ (Σ\E (U ch))
a stutter event, and Pǫ ∈ 2N D an arbitrary set of stutter parameters.</p>
        </sec>
      </sec>
      <sec id="sec-5-2">
        <title>Definition 7 (Trace based semantics for PeLSCs). The parametrized language de</title>
        <p>fined by a PeLSC P U is</p>
        <p>PL(P U ) , {(ǫ∗, e1, ǫ∗, ..., en, ǫ∗), (Pǫ∗, P1, Pǫ∗..., Pn, Pǫ∗)},
where ((e1, ..., en), (P1, ..., Pn)) ∈ P T ra(P U ), and
|(ǫ∗, e1, ǫ∗, ..., en, ǫ∗)| = |(Pǫ∗, P1, Pǫ∗..., Pn, Pǫ∗)|, and ǫ∗ and Pǫ∗ are finite (possible
empty) sequences of stutter events and stutter parameters, respectively.
4</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>A Translation of PeLSCs into HL Formulae</title>
      <p>In this subsection, we present a translation of PeLSCs into a subclass of the hybrid logic
(HL) formulae. Whether an observation is admitted by a PeLSC can then be checked
with the resulting formula.</p>
      <p>The syntax and semantics of HL are given as follows.</p>
      <p>Definition 8 (Syntax of HL). Given the finite set AP of atomic propositions, a set V of
variables, the set Z of integers, and a set N of nominals, the terms π and formulae ϕ
of HL are inductively formed according to the following grammar, where x ∈ V , p ∈
AP , s ∈ N , r ∈ Z and ∼∈ {&lt;, =}:
π ::= x + r | r
ϕ ::= ⊥ | p | (ϕ1 ⇒ ϕ2) | (ϕ1 U ϕ2) | (π1 ∼ π2) | x ↓ s.ϕ.</p>
      <p>
        Intuitively, an HL formula x ↓ s.ϕ(x) is satisfied by a parametrized event trace
τ , (σ, ρ) if and only if ϕ(d) is satisfied by σ with (s, d) ∈ ρ[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. For instance, let t and
id be parameters representing time stamps and clients’ ID, respectively, a formula
x ↓ t.y ↓ id.(login ⇒ ♦x′ ↓ t.y′ ↓ id.(logout ∧ (y′ = y) ∧ (x′ &lt; 200 + x)))
expresses the property Pro.
      </p>
      <p>Assume that E is a function E : V → Z for assigning free variables in the domain of
integers N≥0 such that E (x + d) = E (x) + d and E (d) = d. Given a variable x and a
natural number d, we denote E [x := d] for the evaluation E ′ such that E ′(x) = d, and
E ′(y) = E (y) for all y ∈ V \{x}. The HL is defined on parametrized event traces as
follows.</p>
      <sec id="sec-6-1">
        <title>Definition 9 (Trace-based Semantics for HL).</title>
        <p>
          Let τ , (σ, ρ) be a parametrized event trace with σ , (e[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], e[
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], ...) being an event
trace and ρ , (P[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], P[
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]..., ) being a parameter trace. Let i ∈ Z&gt;0 be a position, p
a proposition, s a nominal, d a value in the domain of parameters, and ϕ1 and ϕ2 any
HL formulae. The satisfaction relation (τ, i, E ) |= ϕ is defined inductively as follows:
(τ, i, E ) 2 ⊥;
(τ, i, E ) |= p iff p ∈ e[i] ;
(τ, i, E ) |= (ϕ1 ⇒ ϕ2) iff (τ, i, E ) |= ϕ1 implies (τ, i, E ) |= ϕ2;
(τ, i, E ) |= (ϕ1 U ϕ2) iff there exists j &gt; i with (τ, j, E ) |= ϕ2 and for all i &lt; j′ &lt; j
it holds that (τ, j′, E ) |= ϕ1;
(τ, i, E ) |= π1 ∼ π2 iff E (π1) ∼ E (π2);
(τ, i, E ) |= x ↓ s.ϕ iff (τ, i, E [x := d]) |= ϕ, where (s, d) ∈ P[i].
        </p>
        <p>As usual, τ |= ϕ iff (τ, 1, E ) |= ϕ.</p>
        <p>
          We now show how to translate a PeLSC into an HL formula to check whether a
parametrized trace is admitted. The translation is developed on basis of the translation
form an eLSC U ch into an LTL formulae ϕ(U ch) as shown in [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. Here we concern
the translation of the introduced assignment and condition structures for PeLSCs.
        </p>
        <p>A PeLSC is comprised of a universal eLSC U ch, a set COND of condition structures
and a set ASSI of assignment structures. Propositions appearing in a PeLSC are
specified by the comparisons of terms, i.e., π1 ∼ π2. According to the subset CONDNF V
and CONDF V , the following formulae are defined.</p>
        <p>– Let e be an even in U ch combined with a constraint structure cond = (prop, o from
the set CONDNF V with prop(s1, ..., sn) and lab(o) = e. The condition structure
is translated into an HL formula
d(cond) ,</p>
        <p>(x1 ↓ s1. · · · xn ↓ sn.(e ⇒ prop(x1, ..., xn))).</p>
        <p>The formula specifies that whenever the event e occurs, then the proposition must
be evaluated to true with values of the parameters named by s1, ..., sn carried by e.
I.e., if the event occurs at a position z1 of the trace, the proposition prop(d1, ..., dn)
is true with {(s1, d1), ..., (sn, dn)} ⊆ ρ[z1].
d(cond) ,
((e′ ∧ ♦e) ⇒ (x1 ↓ v1. · · · xm ↓ vm.(e′ ∧ ♦y1 ↓ s1. · · · yn ↓</p>
        <p>sn.(e ∧ (prop(y1, ..., yn, x1, ..., xm)))))).</p>
        <p>This formula expresses that if both of the events, combined with the assignment
structures and with the condition structure, occurs, then the proposition must be
evaluated to true with the values of the parameters carried by the two events. I.e.,
if e′ and e occur at positions z1 and z2 of the trace, respectively, the proposition
prop(dzy1, ..., dzyn, dzx1, ..., dzxm) is true with {(szy1, dzy1), ..., (szyn, dzyn)} ⊆
ρ[z2] and {(szx1, dzx1), ..., (szxm, dzxm)} ⊆ ρ[z1].</p>
        <p>From a PeLSC P U , (U ch, COND, ASSI) we define an HL formula
ϕ(P U ) ,
ϕ(U ch) ∧</p>
        <p>V
cond∈CONDNF V
d(cond) ∧</p>
        <p>V
cond∈CONDF V</p>
        <p>!
d(cond) .</p>
        <p>The formula expresses that, a parametrized event trace τ = (σ, ρ) satisfies the formula
ϕ(P U ) if and only if σ is in the language defined by U ch, and the parameters carried
by the events in τ meet the specification of the assignment structures and the condition
structures. For any parametrized event trace τ , it holds that τ is admitted by P U iff
τ |= ϕ(P U ).</p>
        <p>
          A rewriting algorithm for HL can be developed directly upon the semantics of the
logic. Then a PeLSC property can be checked by a monitor by implementing the
algorithm in some rewriting environment, e.g, Maude [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ].
        </p>
        <p>Theorem 1. The complexity of the word-problem of HL is linear with respect to the
size of input traces.</p>
        <p>
          Proof. Given an HL formula ϕ = x ↓ s.ψ(x) and a parametrized event trace τ ,
(σ, ρ). The trace τ satisfies ϕ if and only if σ |= ψ(d) with (s, d) ∈ ρ[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. Since d is a
certain integer value, the sub-formulae of the comparisons of terms in ϕ is able to be
directly evaluated a boolean value true or f alse. Therefore, the process of checking an
HL formula over a parametrized event trace τ is essentially the same with the process
of checking an LTL formula over an event trace σ. Since the complexity of checking
whether or not a trace σ satisfies an LTL formula is linear with respect to the size of the
trace σ, the complexity of the word problem of HL is linear with respect to the length
of the input parametrized event traces.
        </p>
        <p>Corollary 1. The complexity of PeLSCs is linear with respect to the size of traces.</p>
        <p>According to the corollary, the language of PeLSCs is feasible for runtime
verification implementations, especially for on-line monitoring.</p>
        <p>
          We implement the algorithms in Maude [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], which provides a formula rewriting
environment for monitoring. The implementation is valuated on several benchmarks.
The monitoring efficiency for the property P3 is shown in Fig. 4. The property P3 is
comprised of an eLSC and two condition structures with assignments (i.e., with free
variables). Fig. 4(a) shows the monitoring efficiency for the condition structures, and
Fig. 4(b) shows the monitoring efficiency for the eLSC. In this monitoring
implementation, the most rewrites are spent on monitoring the condition structures with free
variables.
(a) Parametric requirements
        </p>
        <p>(b) Temporal requirements
In this paper, we defined PeLSCs for parametric properties by introducing assignment
and condition structures into LSCs. With these structures, PeLSC can be interpreted
over parametrized event traces. The language can than intuitively express requirement
of data (e.g., values of time or other variables) carried by events. We developed
translation from PeLSCs into HL for monitoring. We prove that the complexity of the word
problem of PeLSCs is linear if propositions in the condition structures only express
comparisons of terms.</p>
        <p>There are several interesting topics for future work. Firstly, in this paper, we only
concerned comparisons of terms in the condition structures. It is interesting to find
out whether or not the PeLSC is still feasible for monitoring if the expressiveness of
conditions is extended by, e.g., introducing quantifiers ∀ and ∃. Secondly, since the
sizes of resulting formulae are often large, translating PeLSC into HL formulae is not
an efficient way for monitoring. Therefore, we are currently developing a more efficient
implementation, which can check PeLSC specifications directly. Last but not least, the
synthesis problem of PeLSC based monitors is left open in this paper. As PeLSCs have
features of the first order logic, the existing LSC synthesising techniques cannot handle
this problem.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Allan</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Avgustinov</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Christensen</surname>
            ,
            <given-names>A.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hendren</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuzins</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lhoták</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Moor</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sereni</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sittampalam</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tibble</surname>
          </string-name>
          , J.:
          <article-title>Adding Trace Matching with Free Variables to AspectJ</article-title>
          .
          <source>In: ACM SIGPLAN Notices</source>
          . vol.
          <volume>40</volume>
          , pp.
          <fpage>345</fpage>
          -
          <lpage>364</lpage>
          . ACM (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Alur</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Etessami</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yannakakis</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Inference of Message Sequence Charts</article-title>
          .
          <source>Software Engineering, IEEE Transactions on 29(7)</source>
          ,
          <fpage>623</fpage>
          -
          <lpage>633</lpage>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Barringer</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Falcone</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Havelund</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reger</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rydeheard</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          : Quantified Event Automata:
          <article-title>Towards Expressive and Efficient Runtime Monitors</article-title>
          .
          <source>In: FM 2012: Formal Methods</source>
          , pp.
          <fpage>68</fpage>
          -
          <lpage>84</lpage>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Barringer</surname>
            , H., Fisher,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gabbay</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gough</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Owens</surname>
          </string-name>
          , R.:
          <article-title>MetateM: A Framework for Programming in Temporal Logic</article-title>
          . In: de Bakker, J., de Roever,
          <string-name>
            <given-names>W.P.</given-names>
            ,
            <surname>Rozenberg</surname>
          </string-name>
          ,
          <string-name>
            <surname>G</surname>
          </string-name>
          . (eds.)
          <source>Stepwise Refinement of Distributed Systems Models, Formalisms, Correctness, Lecture Notes in Computer Science</source>
          , vol.
          <volume>430</volume>
          , pp.
          <fpage>94</fpage>
          -
          <lpage>129</lpage>
          . Springer Berlin Heidelberg (
          <year>1990</year>
          ), http://dx.doi.org/10.1007/3-540-52559-9_
          <fpage>62</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Barringer</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goldberg</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Havelund</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Rule-based Runtime Verification</article-title>
          . In: Verification,
          <string-name>
            <given-names>Model</given-names>
            <surname>Checking</surname>
          </string-name>
          , and Abstract Interpretation. pp.
          <fpage>44</fpage>
          -
          <lpage>57</lpage>
          . Springer (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Barringer</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Havelund</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>TraceContract: A Scala DSL for Trace Analysis</article-title>
          . In: Butler,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Schulte</surname>
          </string-name>
          , W. (eds.)
          <source>FM 2011: Formal Methods, Lecture Notes in Computer Science</source>
          , vol.
          <volume>6664</volume>
          , pp.
          <fpage>57</fpage>
          -
          <lpage>72</lpage>
          . Springer Berlin Heidelberg (
          <year>2011</year>
          ), http://dx.doi.org/10.1007/978- 3-
          <fpage>642</fpage>
          -21437-
          <issue>0</issue>
          _
          <fpage>7</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Barringer</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rydeheard</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Havelund</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Rule Systems for Run-time Monitoring: from Eagle to RuleR</article-title>
          .
          <source>Journal of Logic and Computation</source>
          <volume>20</volume>
          (
          <issue>3</issue>
          ),
          <fpage>675</fpage>
          -
          <lpage>706</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Basin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Caronni</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ereth</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harvan</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klaedtke</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mantel</surname>
          </string-name>
          , H.:
          <article-title>Scalable Offline Monitoring</article-title>
          . In: Bonakdarpour,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Smolka</surname>
          </string-name>
          , S. (eds.)
          <source>Runtime Verification, Lecture Notes in Computer Science</source>
          , vol.
          <volume>8734</volume>
          , pp.
          <fpage>31</fpage>
          -
          <lpage>47</lpage>
          . Springer International Publishing (
          <year>2014</year>
          ), http: //dx.doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -11164-
          <issue>3</issue>
          _
          <fpage>4</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Basin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klaedtke</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Müller</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Policy Monitoring in First-order Temporal Logic</article-title>
          . In: Computer Aided Verification. pp.
          <fpage>1</fpage>
          -
          <lpage>18</lpage>
          . Springer (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Basin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klaedtke</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , Za˘linescu, E.:
          <article-title>Algorithms for Monitoring Real-time Properties</article-title>
          . In: Runtime Verification. pp.
          <fpage>260</fpage>
          -
          <lpage>275</lpage>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Bauer</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Küster</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vegliach</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>From Propositional to First-order Monitoring</article-title>
          .
          <source>In: Runtime Verification</source>
          . pp.
          <fpage>59</fpage>
          -
          <lpage>75</lpage>
          . Springer (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Bauer</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leucker</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schallhart</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Runtime Verification for LTL and TLTL</article-title>
          .
          <source>ACM Transactions on Software Engineering and Methodology (TOSEM) 20(4)</source>
          ,
          <volume>14</volume>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Blackburn</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seligman</surname>
          </string-name>
          , J.:
          <source>Hybrid Languages. Journal of Logic, Language and Information</source>
          <volume>4</volume>
          (
          <issue>3</issue>
          ),
          <fpage>251</fpage>
          -
          <lpage>272</lpage>
          (
          <year>1995</year>
          ), http://dx.doi.org/10.1007/BF01049415
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Chai</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schlingloff</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Monitoring Systems with Extended Live Sequence Charts</article-title>
          . In: Runtime Verification - 5th
          <source>International Conference, RV 2014</source>
          , Toronto, ON, Canada,
          <source>September 22-25</source>
          ,
          <year>2014</year>
          . Proceedings. pp.
          <fpage>48</fpage>
          -
          <lpage>63</lpage>
          (
          <year>2014</year>
          ), http://dx.doi.org/10. 1007/978-3-
          <fpage>319</fpage>
          -11164-
          <issue>3</issue>
          _
          <fpage>5</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Chai</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schlingloff</surname>
          </string-name>
          , H.:
          <article-title>A Rewriting Based Monitoring Algorithm for TPTL</article-title>
          . In: CS&amp;
          <string-name>
            <surname>P</surname>
          </string-name>
          <year>2013</year>
          . pp.
          <fpage>61</fpage>
          -
          <lpage>72</lpage>
          .
          <string-name>
            <surname>Citeseer</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , Ros¸u, G.:
          <article-title>Mop: an Efficient and Generic Runtime Verification Framework</article-title>
          .
          <source>In: ACM SIGPLAN Notices</source>
          . vol.
          <volume>42</volume>
          , pp.
          <fpage>569</fpage>
          -
          <lpage>588</lpage>
          . ACM (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Clavel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Durán</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eker</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lincoln</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martı-Oliet</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meseguer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Talcott</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <source>Maude Manual (version 2.6)</source>
          . University of Illinois,
          <source>Urbana-Champaign</source>
          <volume>1</volume>
          (
          <issue>3</issue>
          ),
          <fpage>4</fpage>
          -
          <lpage>6</lpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Damm</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harel</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>LSCs: Breathing Life into Message Sequence Charts</article-title>
          .
          <source>Formal Methods in System Design</source>
          <volume>19</volume>
          (
          <issue>1</issue>
          ),
          <fpage>45</fpage>
          -
          <lpage>80</lpage>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Forgy</surname>
            ,
            <given-names>C.L.</given-names>
          </string-name>
          :
          <article-title>Rete: A Fast Algorithm for the Many Pattern/many Object Pattern Match Problem</article-title>
          .
          <source>Artificial intelligence</source>
          <volume>19</volume>
          (
          <issue>1</issue>
          ),
          <fpage>17</fpage>
          -
          <lpage>37</lpage>
          (
          <year>1982</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Halle</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Villemaire</surname>
          </string-name>
          , R.:
          <article-title>Runtime Monitoring of Message-based Workflows with Data</article-title>
          .
          <source>In: Enterprise Distributed Object Computing Conference</source>
          ,
          <year>2008</year>
          . EDOC'
          <volume>08</volume>
          . 12th International IEEE. pp.
          <fpage>63</fpage>
          -
          <lpage>72</lpage>
          . IEEE (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Harel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marelly</surname>
          </string-name>
          , R.:
          <article-title>Playing with Time: On the Specification and Execution of Timeenriched LSCs</article-title>
          .
          <source>In: Modeling, Analysis and Simulation of Computer and Telecommunications Systems</source>
          ,
          <year>2002</year>
          .
          <source>MASCOTS 2002. Proceedings. 10th IEEE International Symposium on</source>
          . pp.
          <fpage>193</fpage>
          -
          <lpage>202</lpage>
          . IEEE (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Havelund</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Monitoring with Data Automata</article-title>
          .
          <source>In: Leveraging Applications of Formal Methods, Verification and Validation. Specialized Techniques and Applications</source>
          , pp.
          <fpage>254</fpage>
          -
          <lpage>273</lpage>
          . Springer (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Havelund</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Monitoring with Data Automata</article-title>
          .
          <source>In: Leveraging Applications of Formal Methods, Verification and Validation. Specialized Techniques and Applications</source>
          , pp.
          <fpage>254</fpage>
          -
          <lpage>273</lpage>
          . Springer (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Kiczales</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hilsdale</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hugunin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kersten</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palm</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Griswold</surname>
            ,
            <given-names>W.G.</given-names>
          </string-name>
          :
          <article-title>An Overview of AspectJ</article-title>
          . In: ECOOP 2001U˚
          <string-name>
            <surname>Object-Oriented</surname>
            <given-names>Programming</given-names>
          </string-name>
          , pp.
          <fpage>327</fpage>
          -
          <lpage>354</lpage>
          . Springer (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Meredith</surname>
            ,
            <given-names>P.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Griffith</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , Ros¸u, G.:
          <article-title>An Overview of the MOP Runtime Verification Framework</article-title>
          .
          <source>International Journal on Software Tools for Technology Transfer</source>
          <volume>14</volume>
          (
          <issue>3</issue>
          ),
          <fpage>249</fpage>
          -
          <lpage>289</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Merz</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Decidability and Incompleteness Results for First-order Temporal Logics of Linear Time</article-title>
          .
          <source>Journal of Applied Non-Classical Logics</source>
          <volume>2</volume>
          (
          <issue>2</issue>
          ),
          <fpage>139</fpage>
          -
          <lpage>156</lpage>
          (
          <year>1992</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Olveczky</surname>
            ,
            <given-names>P.C.</given-names>
          </string-name>
          :
          <article-title>Real-time Maude 2.3 Manual. Research report (</article-title>
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Stolz</surname>
          </string-name>
          , V.:
          <article-title>Temporal Assertions with Parametrized Propositions</article-title>
          .
          <source>Journal of Logic and Computation</source>
          <volume>20</volume>
          (
          <issue>3</issue>
          ),
          <fpage>743</fpage>
          -
          <lpage>757</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>