<!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>Plausibility Checking of Formal Business Process Specifications in Linear Temporal Logic</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Christoph Czepa</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Huy Tran</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Uwe Zdun</string-name>
          <email>uwe.zdun@univie.ac.at</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Thanh Tran Thi Kim</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Erhard Weiss</string-name>
          <email>erhard.weiss@isis-papyrus.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christoph Ruhsam</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Isis Papyrus Europe AG</institution>
          ,
          <addr-line>Alter Wienerweg 12, 2344 Maria Enzersdorf</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Vienna, Faculty of Computer Science, Software Architecture Research Group</institution>
          ,
          <addr-line>Wa ̈hringerstraße 29, 1090 Vienna</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Many approaches for keeping business processes in line with constraints stemming from various sources (such as laws and regulations) are based on Linear Temporal Logic (LTL). Creating LTL specifications is an error-prone task which entails the risk that the formula does not match the intention of its creator. This paper proposes a plausibility checking approach for LTL-based specifications. The proposed approach can provide confidence in an LTL formula if plausibility checking is passed. If the formula does not pass the plausibility checks, a counterexample trace and the truth values of both the LTL formula and the plausibility specification are generated and can be used as a starting point for correction.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Keeping business processes in line with requirements stemming from various sources
(e.g., laws, regulations, standards, internal policies, best practices) has become an
important research field due to increasing flexibility demands in business process
management, especially in knowledge-intensive environments. In recent years, both academia
and industry are working towards solutions for enabling the flexible handling of
business processes while providing support to meet necessary requirements. Two closely
related categories of such supporting approaches have been extensively investigated.
Firstly, there are compliance enabling approaches developed for checking semantic
constraints (also called compliance rules) at runtime (e.g., [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]) and design time (e.g., [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ])
of business processes. Secondly, constraint-based business processes models (also called
declarative workflows) are defined in which a set of constraints is used to describe the
business process and these constraints become the basis for the enactment of the
process. A prominent example for the declarative workflow approach is Declare [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] which
provides a graphical front end with mappings to Linear Temporal Logic (LTL) [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]
as underlying formalism3. Temporal logics, such as LTL and CTL (Computation Tree
3 The graphical notations of Declare can also be translated to other formalisms, such as Event
      </p>
      <p>
        Calculus [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>Copyright c by the paper’s authors. Copying permitted only for private and academic
purposes.</p>
      <p>
        Logic), are established ways to describe desired system properties for verification.
Especially LTL has become a de facto standard for defining system specifications due to its
extensive use in model checking (e.g., [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]) and the possibility to automatically
translate LTL formulas to nondeterministic finite automata (NFA) for runtime verification
on finite traces [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        The creation of LTL formulas is a challenging and error-prone task that requires
considerable knowledge of and experience with LTL. It is hardly surprising that higher
levels of abstraction, such as the property specification patterns proposed by Dwyer
et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], are often preferred over authoring new LTL formulas. There are two major
issues when solely trying to rely on a pattern-based approach. Firstly, formal patterns
that precisely match the intention of the user might not be available. Hence, manually
defining the constraint by modifying or combining existing patterns or by creating a new
specialized LTL formula might be required. Secondly, if an existing candidate pattern
has been identified, how can the user be sure that her or his intention is really met
by the pattern? Either the meaning of the pattern could be misinterpreted or the LTL
formula might contain errors. Such problems in the specifications could result in severe
consequences (e.g., legal issues due to the violation of compliance requirements). Thus,
it is highly important to provide better support for creating correct specifications.
      </p>
      <p>
        Plausibility checking aims at supporting technical users during the creation process
of LTL formulas and at increasing the confidence in LTL formulas by ensuring that
an LTL specification matches the user’s intention. Whenever an LTL formula is
created or modified, the user also creates a plausibility specification which is used to check
whether an LTL formula is contradictory to this plausibility specification. The approach
performs reasoning on finite traces by Complex Event Processing (CEP)—with
plausibility specifications encoded as Temporal Queries (TQs) on top of Event Processing
Language (EPL)—and Nondeterministic Finite Automata (NFA)—representing LTL
formulas. We discuss the practical use of our approach by the following scenario: The
implementation of a new constraint pattern stemming from an EPA (Environmental
Protection Agency) compliance document [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        To the best of our knowledge, only very few studies exist on keeping LTL formulas in
line with the users’ understanding of the formula. Salamah et al. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] propose to use a
set of manually created test cases to check the plausibility of pattern-generated LTL
formulas. However, this involves the user in the generation process of all the sample traces
and the expected truth values at the end of this traces. As a result, the count of test cases
remains marginal because the manual specification of test cases is time-consuming.
Yan et al. [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] claim to keep natural language requirements and their corresponding
formulas consistent by translating specifications in structured English grammar to LTL,
mainly by mapping English words to LTL operators. While the approach provides relief
for specifying discrete time properties, the direct mapping of LTL operators to words
does not really simplify the creation process of LTL specifications. Thus, there is still
the risk to create formulas that contradict the actual intention of the creator.
      </p>
      <p>
        Other plausibility checking approaches do not focus on the consistency between
the users’ intention and its actual formal representation in LTL, but check the internal
consistency of LTL formulas (e.g., Barnat et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]). Vacuity detection is concerned
with avoiding tautologies and subformulas that are not relevant for the satisfaction of
the formula (e.g., Simmonds et al. [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]). Consistency checking of LTL formulas means
finding contradicting parts of a formula or contradictions in sets of formulas (e.g.,
compliance rule collections) that are generally unsatisfiable (e.g., Awad et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]). While
these plausibility checking approaches are also very important, their focus is entirely
different from the approach presented in this paper.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Temporal Queries (TQs)</title>
      <p>
        We devise Temporal Queries (TQs) as an abstraction layer on top of EPL (Event
Processing Language) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]—an event query language— for supporting plausibility
checking. A temporal query is of the form e V r where e is an temporal expression and r is
a truth value. The expression formed by the operator V implies that there is a change
of the truth value caused by the temporal expression e and the resulting truth value is r
which has one of the following states:
– ? stands for temporarily violated,
– &gt; stands for temporarily satisfied,
– ?P stands for permanently violated,
– &gt;P stands for permanently satisfied.
      </p>
      <p>
        The aforementioned set of states is used in Declare [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and other automata-based
approaches [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and also proposed for runtime verification of LTL formulas on finite
traces in general [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Thus, we adopt these states as they are sufficient for our
plausibility checking approach. Once a permanent state is reached for a constraint instance, it
cannot be left anymore.
      </p>
      <p>A temporal expression e can contain events and the following expressions:
– e1 e2, where both e1 and e2 contain at least one non-negated event, means e1
eventually leads to e2 (‘ ’ is equivalent to the ‘-&gt;’ operator in EPL),
– :e1 U e2, where both e1 and e2 contain at least one non-negated event, means e1
does not occur until e2 eventually occurs (‘U ’ is equivalent to the ‘until’ operator
in EPL).</p>
      <p>Furthermore, a temporal expression e can contain the following boolean operators
and quantifiers:
– :e is a negation (not e), initialized as true and changing to false once e occurs,
– e1 ^ e2 is a logical conjugation (e1 and e2),
– e1 _ e2 is a logical disjunction (e1 or e2),
– 8e means for every e (‘8’ is equivalent to the ‘every’ operator in EPL).</p>
      <p>For example, the query 8(a b) V &gt; implies a truth value change to temporarily
satisfied for every time event a is followed by event b. Without the 8 quantifier, the query
(a b) V &gt; observes just the first occurrence where a leads to b and stops thereafter.
The following query a 8(b c) V &gt; will denote a change to temporarily satisfied
for every occurrence of b leads to c after the first occurrence of a. Another query 8(a
:d ^ :b U c d) V ?P indicates a change to permanently violated when c is not
preceded by b in between every occurrence of a and d.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Plausibility Checking Approach</title>
      <p>Authoring LTL formulas usually starts with thinking about some kind of constraint or
requirement in natural language. In this case, the user intends to create an LTL formula
that matches the description in natural language. Alternatively, a natural language
description and the corresponding LTL formula could already be existent and the business
user is interested in finding out whether the LTL formula is a plausible representation of
the natural language description. For the creation of plausibility specifications, we
propose to use Temporal Queries (TQs) which are a way for specifying truth value changes
while observing finite traces, like the execution trace of a business process instance.
Additionally to the creation of the TQs, it is necessary to define the initial truth value of
the specification (i.e., temporarily satisfied or temporarily violated) otherwise the truth
value of the plausibility specification would be undefined until a TQ causes a truth value
change. Up to four TQs, namely one for each possible truth value state (?, &gt;, ?P , and
&gt;P ), and an initial truth value (either &gt; or ?) are defined to represent a plausibility
specification.</p>
      <p>Specification</p>
      <p>PLAUSIBILITY CHECKING
creates</p>
      <p>or
reuses</p>
      <p>LTL
Formula
creates</p>
      <p>Initial Truth Value
Temporal Queries</p>
      <p>‹‹transform››</p>
      <p>An overview of Plausibility Checking is shown in Figure 1. Plausibility checking
requires two inputs, namely an LTL formula and its corresponding plausibility
specifications. The LTL formula is then transformed into a nondeterministic finite automaton
(NFA). The plausibility specifications consist of an initial truth value and TQs. The TQs
are transformed to event query statements and listeners that can be used by a Complex
Event Processing (CEP) engine.</p>
      <p>In particular, there can be up to four listeners, namely, one for each runtime
verification state. Once a permanent state is reached, the truth value becomes immutable. Both
the NFA and CEP receive inputs which are the elements of finite traces. These inputs
will lead to changes of both the Truth Value and the Reference Truth Value. A change
of the Reference Truth Value of the plausibility specification occurs once a listener is
triggered because the temporal query matches the current trace. The Truth Value reflects
the current acceptance state of the automaton.</p>
      <p>
        In order to achieve a positive plausibility checking result, there must not be any
deviation between the Truth Value and the Reference Truth Value for all inputs. A large set
of test cases can be created and checked automatically. There are two options: Option 1:
All words over the alphabet of the NFA having sufficient length can be used as inputs.
A moderate maximum trace length between 7 and 10 is in most cases we encountered
so far already sufficient. Option 2: Only a subset of traces with greater maximum size
is created randomly and checked automatically as well. The alphabet of the automaton
always consists of the variables of the LTL formula and a single additional variable that
functions as a surrogate for all other variables that are not part of the LTL formula. If
the formula does not meet the plausibility specifications, a counterexample trace and
the truth values of both the LTL formula and the plausibility specification are being
made available as a starting point for the correction of the LTL formula. The approach
has been fully implemented in a prototype which makes use of the open source CEP
engine Esper [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and the LTL2NFA algorithm [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>In this way, the plausibility checking can be leveraged for aiding users during the
creation of a new constraint patterns as well as for analyzing existing patterns to gain
confidence in the proposed LTL representation of the pattern.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Running Example</title>
      <p>
        Pattern collections, most notably the Property Specification Patterns by Dwyer et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ],
contain a large number of patterns that fit in many cases. However, such collections are
far from being complete. If no suitable pattern is available to realize a certain constraint,
a new formula must be created. We are now going to illustrate this scenario by a
practical example extracted from our prior research work related to capturing and formalizing
real-world compliance requirements [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
      <p>
        Let us consider a compliance guidance document [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] published by the United States
Environmental Protection Agency (EPA) regarding buildings built before or after 1978—
since then lead-based paints are prohibited residential and public buildings in USA—
that states “In housing built before 1978, you must: Distribute EPA’s lead pamphlet [...]
to the owner and occupants before renovation starts.”. This rule involves three tasks,
namely, checking whether the house is built before 1978, distributing EPA’s lead
pamphlets, and starting the renovation process. It makes sense to distribute the lead
pamphlet in case the house was built before 1978. Hence, a confirmation that the housing
was built before 1978 must coexist with the distribution of lead pamphlets in the same
process instance before the renovation is started. Now we are facing the problem that
the pattern catalog by Dwyer et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] does not introduce Coexistence patterns. The
declarative workflow approach Declare [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], as another important source of patterns,
does offer a Coexistence pattern but only in the global- instead of the needed
beforescoped variant. To the best of our knowledge, the Coexistence Before pattern does not
exist, thus it must be newly created. During this process, we will leverage the proposed
plausibility checking approach.
      </p>
      <p>A brief description of the pattern in natural language, such as before c: a coexists
with b, outlines what we aim for. At first, we create appropriate Temporal Queries (TQs)
for the pattern. On the one hand, we need a TQ (a b c) _ (b a c) V &gt;P
that turns the truth value to permanently satisfied and another TQ (:c ^ :b U a
:b U c) _ (:c ^ :a U b :a U c) V ?P that turns the truth value to permanently
violated. Creating these formulas is relatively straightforward. The pattern becomes
permanently satisfied when a and b, in any order, occur before c. A permanent violation
of the pattern occurs if one of the following conditions is satisfied.</p>
      <p>– there is no c and no b until a occurs and thereafter is again no b until c occurs.
– there is no c and no a until b occurs and thereafter is again no a until c occurs.</p>
      <p>On the other hand, we need to create the LTL formula. As soon as we believe that
the LTL formula corresponds to the meaning of the pattern, we can run the plausibility
check. For example, when we perform plausibility checking on F c ! ((:c U a) ^
(:c U b)), our approach reports a plausibility issue in relation with the trace [c]. The
plausibility specification is still in its initial state, namely temporarily satisfied while
the LTL formula indicates already a violation. We intended that the formula becomes
only violated if either a exists before c but b does not, or b exists before c but a does not.
Since this is not the case for the trace [c], the plausibility checking approach correctly
identifies an issue. Hence, we must revise the LTL formula. Eventually, we come up
with the formula (F c ! ((:c U a) ! (:c U b))) ^ (F c ! ((:c U b) ! (:c U a)))
that passes the plausibility checks. Therefore, we have found a plausible representation
of the pattern in LTL. Now, we can encode the compliance requirement in LTL as
(F “Renovation started” ! ((:“Renovation started” U “Housing build before 1978
confirmed”) ! (:“Renovation started” U “Distribute pamphlet finished”)))
^ (F “Renovation started” ! ((:“Renovation started” U “Distribute pamphlet
finished”) ! (:“Renovation started” U “Housing build before 1978 confirmed”))):</p>
      <p>
        To complete the formalization of the compliance rule, it is additionally required
that an execution of the Housing build before 1978 task happens before the start of
the renovation process. This can be realized by using the already existing Precedence
Global pattern [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
6
      </p>
    </sec>
    <sec id="sec-6">
      <title>Discussion</title>
      <p>
        Although the motivation and reason for proposing plausibility checking is related to
business process management, the approach is applicable to other domains, such as the
verification of software in general. The current plausibility checking approach assumes
a single state per instant of time which has been sufficient for plausibility checking
problems that we encountered by now. Multiple states per instant are currently not
considered due to the resulting exponential blowup of traces. Even if working with a single
state per instant, the main drawback of the approach is the exponential growth of the
number of traces. It is, however, in the scenarios we encountered so far, sufficient to
work with moderate maximum trace lengths because the count of propositional
variables that are present in most semantic constraints is usually low (cf. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]) and most
issues are already discoverable in short traces (cf. Section 6). Alternatively, if LTL
formulas involve a high count of propositional variables, the proposed approach still can
perform a large quantity of plausibility checks with randomly generated longer traces,
which is an improvement over generating only a few test cases manually.
7
      </p>
    </sec>
    <sec id="sec-7">
      <title>Conclusion and Future Work</title>
      <p>
        This paper proposes an approach for plausibility checking of LTL specifications based
on Nondeterministic Finite Automata (NFA) and Complex Event Processing (CEP).
The approach has been discussed in the context of a practical scenario, namely the
creation of a new constraint pattern stemming from a compliance document. Existing
pattern-based approaches, such as Declare, can benefit from our approach. Whenever it
becomes necessary to extend the set of supported constraints, our approach can enable
support. Not only runtime verification or declarative workflow techniques can benefit
but also design time approaches since specifications for model checking are often
encoded in LTL. In our future work, we plan to further evaluate the approach through
performance, scalability and user experiments and to apply our approach to other
formalisms that have, for example, a notion of quantitative time [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        Acknowledgement. The research leading to these results has received funding from the FFG
project CACAO, no. 843461 and the Wiener Wissenschafts-, Forschungs- und Technologiefonds
(WWTF), Grant No. ICT12-001. This paper contains an image licensed under CC [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Property</given-names>
            <surname>Pattern</surname>
          </string-name>
          <article-title>Mappings for LTL</article-title>
          . http://patterns.projects.cis.ksu. edu/documentation/patterns/ltl.shtml,
          <source>last accessed: May</source>
          <volume>18</volume>
          ,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Autili</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grunske</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lumpe</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelliccione</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tang</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Aligning qualitative, real-time, and probabilistic property specification patterns using a structured english grammar</article-title>
          .
          <source>Software Engineering</source>
          <volume>41</volume>
          (
          <issue>7</issue>
          ),
          <fpage>620</fpage>
          -
          <lpage>638</lpage>
          (
          <year>July 2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Awad</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weske</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Efficient Compliance Checking Using BPMNQ and Temporal Logic</article-title>
          .
          <source>In: 6th International Conference on Business Process Management (BPM)</source>
          . pp.
          <fpage>326</fpage>
          -
          <lpage>341</lpage>
          . Springer, Berlin, Heidelberg (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Awad</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weidlich</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weske</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Consistency checking of compliance rules</article-title>
          .
          <source>In: Business Information Systems</source>
          , vol.
          <volume>47</volume>
          , pp.
          <fpage>106</fpage>
          -
          <lpage>118</lpage>
          . Springer (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Barnat</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bauch</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brim</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Checking sanity of software requirements</article-title>
          .
          <source>In: Software Engineering and Formal Methods, LNCS</source>
          , vol.
          <volume>7504</volume>
          , pp.
          <fpage>48</fpage>
          -
          <lpage>62</lpage>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>De</given-names>
            <surname>Giacomo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>De</surname>
          </string-name>
          <string-name>
            <surname>Masellis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Montali</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>Reasoning on ltl on finite traces: Insensitivity to infiniteness</article-title>
          . In: AAAI. pp.
          <fpage>1027</fpage>
          -
          <lpage>1033</lpage>
          . AAAI Press (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Dwyer</surname>
            ,
            <given-names>M.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Avrunin</surname>
            ,
            <given-names>G.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corbett</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          :
          <article-title>Patterns in property specifications for finite-state verification</article-title>
          .
          <source>In: 21st International Conference on Software Engineering (ICSE)</source>
          . pp.
          <fpage>411</fpage>
          -
          <lpage>420</lpage>
          . ACM (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Elgammal</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Turetken</surname>
          </string-name>
          , O., van den Heuvel, W.J.,
          <string-name>
            <surname>Papazoglou</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Formalizing and applying compliance patterns for business process compliance</article-title>
          .
          <source>Software &amp; Systems</source>
          Modeling pp.
          <fpage>1</fpage>
          -
          <lpage>28</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <article-title>[9] EPA: Small Entity Compliance Guide to Renovate Right</article-title>
          . http://www2.epa. gov/sites/production/files/documents/sbcomplianceguide.pdf,
          <source>last accessed: May</source>
          <volume>18</volume>
          ,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>EsperTech</given-names>
            <surname>Inc</surname>
          </string-name>
          .: EPL Reference. http://www.espertech.com/esper/ release-5.1.0/esper-reference/html/event_patterns.html,
          <source>last accessed: May</source>
          <volume>18</volume>
          ,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>EsperTech</given-names>
            <surname>Inc</surname>
          </string-name>
          .: Esper. http://www.espertech.com/esper/, last accessed: May 18,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Lichtenstein</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pnueli</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zuck</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>The glory of the past</article-title>
          .
          <source>In: Logics of Programs</source>
          . pp.
          <fpage>196</fpage>
          -
          <lpage>218</lpage>
          . Springer (
          <year>1985</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Ly</surname>
            ,
            <given-names>L.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maggi</surname>
            ,
            <given-names>F.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Montali</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rinderle-Ma</surname>
          </string-name>
          , S., van der Aalst, W.M.:
          <article-title>Compliance monitoring in business processes: Functionalities, application, and toolsupport</article-title>
          .
          <source>Information Systems</source>
          <volume>54</volume>
          ,
          <fpage>209</fpage>
          -
          <lpage>234</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Maggi</surname>
            ,
            <given-names>F.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Westergaard</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Montali</surname>
          </string-name>
          , M.,
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          :
          <article-title>Runtime verification of ltl-based declarative process models</article-title>
          .
          <source>In: Second International Conference on Runtime Verification (RV)</source>
          . pp.
          <fpage>131</fpage>
          -
          <lpage>146</lpage>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Montali</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maggi</surname>
            ,
            <given-names>F.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chesani</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mello</surname>
            , P., van der Aalst,
            <given-names>W.M.P.</given-names>
          </string-name>
          :
          <article-title>Monitoring business constraints with the event calculus</article-title>
          .
          <source>ACM Trans. Intell. Syst. Technol</source>
          .
          <volume>5</volume>
          (
          <issue>1</issue>
          ),
          <volume>17</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>17</lpage>
          :
          <fpage>30</fpage>
          (Jan
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Pesic</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.:</given-names>
          </string-name>
          <article-title>A declarative approach for flexible business processes management</article-title>
          .
          <source>In: BPM Workshops</source>
          . pp.
          <fpage>169</fpage>
          -
          <lpage>180</lpage>
          . Springer (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Pnueli</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The temporal logic of programs</article-title>
          .
          <source>In: Foundations of Computer Science</source>
          ,
          <year>1977</year>
          ., 18th Annual Symposium on. pp.
          <fpage>46</fpage>
          -
          <lpage>57</lpage>
          (
          <year>Oct 1977</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Rozier</surname>
            ,
            <given-names>K.Y.</given-names>
          </string-name>
          : Survey:
          <article-title>Linear temporal logic symbolic model checking</article-title>
          .
          <source>Comput. Sci. Rev</source>
          .
          <volume>5</volume>
          (
          <issue>2</issue>
          ),
          <fpage>163</fpage>
          -
          <lpage>203</lpage>
          (May
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Salamah</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gates</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roach</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mondragon</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Verifying pattern-generated ltl formulas: A case study</article-title>
          .
          <source>In: Model Checking Software, LNCS</source>
          , vol.
          <volume>3639</volume>
          , pp.
          <fpage>200</fpage>
          -
          <lpage>220</lpage>
          . Springer (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Simmonds</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Davies</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gurfinkel</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chechik</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Exploiting resolution proofs to speed up ltl vacuity detection for bmc</article-title>
          .
          <source>International Journal on Software Tools for Technology Transfer</source>
          <volume>12</volume>
          (
          <issue>5</issue>
          ),
          <fpage>319</fpage>
          -
          <lpage>335</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Tran</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weiss</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruhsam</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Czepa</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tran</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zdun</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Embracing process compliance and flexibility through behavioral consistency checking in acm: A repair service management case</article-title>
          .
          <source>In: AdaptiveCM</source>
          <volume>15</volume>
          (
          <year>August 2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22] Wikiphoto: http://www.wikihow.com/
          <article-title>Become-a-Software-Engineer, licensed under</article-title>
          : http://creativecommons.org/licenses/by-nc
          <source>-sa/3</source>
          .0/ Last accessed: May 18,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Yan</surname>
          </string-name>
          , R., Cheng, C.H.,
          <string-name>
            <surname>Chai</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Formal consistency checking over specifications in natural languages</article-title>
          .
          <source>In: DATE '15</source>
          . pp.
          <fpage>1677</fpage>
          -
          <lpage>1682</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>