<!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>Evidence Extraction from Parameterised Boolean Equation Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Wieger Wesselink</string-name>
          <email>j.w.wesselink@tue.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tim A.C. Willemse</string-name>
          <email>t.a.c.willemse@tue.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Eindhoven University of Technology</institution>
          ,
          <addr-line>Eindhoven</addr-line>
          ,
          <country country="NL">The Netherlands</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <volume>2095</volume>
      <fpage>86</fpage>
      <lpage>100</lpage>
      <abstract>
        <p>Model checking is a technique for automatically assessing the quality of software and hardware systems and designs. Given a formalisation of both the system behaviour and the requirements the system should meet, a model checker returns either a yes or a no. In case the answer is not as expected, it is desirable to provide feedback to the user as to why this is the case. Providing such feedback, however, is not straightforward if the requirement is expressed in a highly expressive logic such as the modal μ-calculus, and when the decision problem is solved using intermediate formalisms. In this paper, we show how to extract witnesses and counterexamples from parameterised Boolean equation systems encoding the model checking problem for the first-order modalμ-calculus. We have implemented our technique in the modelling and analysis toolset mCRL2 and showcase our approach on a few illustrative examples.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>The complexity of the average computer-controlled system has reached a point at which it has become
impossible to fully understand a system. By modelling a system and subsequently analysing whether
the crucial safety and liveness requirements of the system are upheld, some confidence in the system’s
correctness can be obtained. The complexity of the average system, however, precludes that such an
analysis can be conducted manually.</p>
      <p>Model checking is an automated technique for assessing whether a requirement holds for a model of
a system. This technique requires as input a mathematical description of the behaviour of a system, often
given in terms of (a high-level description of) a Kripke Structure or Labelled Transition System, and a
logical formula, often given in some appropriate temporal logic. By feeding both artefacts to a tool,
colloquially referred to as the model checker, the yes or no verdict produced by the tool states whether
(the model of) the system meets the requirement. Knowing that a system fails to meet a requirement,
however, does not help to improve on the system design. For that, richer feedback in the form of
evidence (i.e. a counterexample or a witness) of the model checker is required.</p>
      <p>Depending on the logic that is required to perform the verification, however, it is not always clear
what type of evidence must be extracted from a negative model checking exercise. While for linear time
logic (LTL), a lasso, or a prefix of a lasso typically suffices, the problem becomes more pronounced
for branching time logics such as CTL, CTL∗ or the modal μ-calculus. The reason for this is that the
formulae over such logics are essentially interpreted over infinite computation trees.</p>
      <p>
        In this paper, we describe how evidence can be constructed for an extension of the modal μ-calculus,
viz. the first-order modalμ-calculus [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], within the context of the analysis toolset mCRL2 [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. This
logic extends the standard modal μ-calculus by adding first-order quantification and parameterised
fixpoints. We draw inspiration from previous work [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] explaining how, in theory, evidence can be extracted
from decision problems encoded in the logic of Least Fixed Point (LFP). The main idea is that a
counterexample or witness for the model checking problem is a ‘submodel’ of the original model, which can
be used to reconstruct the proof of the original negative model checking result.
      </p>
      <p>
        Related Work. We refer to Busard’s PhD thesis [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] for a thorough overview of literature on generating
diagnostics for model checking for the modal μ-calculus, but also other logics such as CTL and
epistemic logics; we here give a concise overview of the most relevant related works. There are several
works that address the problem of constructing diagnostics for the modal μ-calculus model checking
problem. In [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], diagnostics is presented as a game played on the model checking game for the modal
μ-calculus. A related approach is given by [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] who essentially suggests to generate tableaux as
witnesses to the model checking problem. In [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], diagnostics are defined as explanations for the truth
values of the underlying Boolean equation system that is used to solve a model checking problem for
the alternation-free fragment of the modal μ-calculus. This technique is closely related to [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. In
contrast to our work, these approaches require the user conducting the verification to understand the
underlying mechanism for conducting the verification. Finally, in the work by Tan and Cleaveland [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ],
which can be seen as a generalisation of [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], evidence is presented as information extracted from
(decorated) support sets. These are closely related to the proof graphs underlying [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and the idea of using
decorations is reminiscent of the idea underlying [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] to allow first-order relations in proof graphs.
Outline. We give a cursory overview of the necessary background in Section 2; i.e. we briefly address
the underlying theory for modelling data and system behaviours, the first-order modal μ-calculus, and
we formalise the model checking problem. In Section 3, we introduce PBESs, we explain how the model
checking problem can be converted to the problem of solving a PBES, and we illustrate the problem of
extracting evidence from a PBES encoding a model checking problem. In Section 4, we illustrate how
we can extract evidence from a PBES by modifying the encoding of the model checking problem and
in Section 5, we illustrate how our solution works on practical examples. We conclude in Section 6.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>Our work is set in a context in which we rely on abstract data types to describe (and reason about) data.
That is, we assume a given algebraic specificationS = hS, Σ, Ei where S is a set of sorts, Σ is a family
of operation(s) and E is a family of equations. As a convention, we write data sorts using letters D, E,
etcetera. We have a set D of data variables, with typical elements d, d1, . . .</p>
      <p>The semantics of an algebraic specificationS = hS, Σ, Ei is given by a many-sorted Σ-algebra
consisting of data domains corresponding to S and operations corresponding to Σ, satisfying the identities
of E. We here adopt an initial algebra semantics point of view. For every sort D, E,. . . , we denote the
domains they represent by D, E,. . . . For a closed term t of a given sort, say D (denoted t:D), we assume
an interpretation function [[t]] that maps t to a value of D it represents. For open terms we use a data
environment ε that maps each variable from D to a value of the proper domain. If we wish to indicate
which variables may occur freely within a term t, we add these as ‘parameters’ to t; i.e. we write t(d)
to indicate that d is the only free variable in t. The interpretation of an open term t, denoted as [[t]]ε is
obtained in the standard way. We write ε[d 7→ v] for the environment that maps variable d to value v and
all other variables d0 are mapped to ε(d0).
2</p>
      <p>We require the presence of a sort B representing the Booleans B = {true, false}. For convenience we
also assume the existence of the sort N representing the natural numbers N. For both sorts we assume
the usual operators are available and we do not write constants or operators in the syntactic domain
any different from their semantic counterparts. For example, the Boolean value true is represented
by the constant true and the value false is represented by the constant false. The syntactic operator
∧ :B × B → B corresponds to the usual, semantic conjunction ∧ :B × B → B; etcetera.</p>
      <p>Note that for readability, and without loss of generality, we use a single—possibly compound—data
type in our definitions and formal statements.
2.1</p>
      <sec id="sec-2-1">
        <title>Processes</title>
        <p>
          The behaviours of software and hardware systems can be adequately modelled using labelled transition
systems (LTSs). Modelling languages, such as process algebras and I/O-automata, provide language
constructs such as conditional choice, interleaving parallelism and sequential composition through
which one can compactly specify such systems. A useful normal form to which many such
specifications can be compiled automatically is the Linear process equation (LPE) format, see e.g. [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>An LPE typically models the (global) state of a (software or hardware) system by means of a finite
vector of formal data parameters, ranging over adequately chosen sorts. The behaviours are described by
a non-deterministic choice (denoted by the + operator) among rules taken from a finite set
ofconditionaction-effect rules, prescribing under which condition an action (modelling a message exchange or an
event) is enabled, leading to an update of the vector of formal parameters. A formal definition of an
LPE, employing syntax that stays true to its process-algebraic heritage, is given below.</p>
        <sec id="sec-2-1-1">
          <title>Definition 1.</title>
          <p>A linear process equation is an equation of the following form:
L(dL:DL) = + { ∑ ca(dL, ea) → a( fa(dL, ea)) · L(ga(dL, ea)) | a ∈ A ct}</p>
          <p>ea:Ea
The sort DL is used to represent the set of states and variable dL represents a state; a is a (typed) action
label taken from a finite setA ct of (typed) action labels. Each action label a is associated with a local
variable ea of sort Ea, an expression ca:B, which acts as a condition, an expression fa:Da, which yields
an argument emitted along a when executed, and an operation ga:DL, which yields a new state. We
require that dL and eL are the only free variables occurring in these expressions.</p>
          <p>The interpretation of L with an initial state represented by closed term e:DL, denoted by L(e), is a
labelled transition system M = hS, A, →, s0i, where:
• S = DL with initial state s0 = [[e]] ∈ S;
• A = {a(va) | a ∈ A ct, va ∈ Da} is the (possibly infinite) set ofactions;
• →⊆ S×A×S is the set of transitions, where v −a−(v−a→) w holds if and only if for some u ∈ Ea and
environment ε:
– [[ fa(dL, ea)]]ε[dL 7→ v, ea 7→ u] = va and [[ga(dL, ea)]]ε[dL 7→ v, ea 7→ u] = w,
– [[ca(dL, ea)]]ε[dL 7→ v, ea 7→ u] evaluates to true.</p>
          <p>Throughout this paper, whenever we refer to an LPE L we implicitly mean the LPE as given by
Def. 1, with dL being the state parameter of sort DL of process L. Note that an LPE L compactly
expresses that in a state, represented by parameter dL, whenever condition ca(dL, da) holds (for some
non-deterministically chosen value for variable da), then action a carrying data parameter fa(dL, da) can
be executed, effectively changing the global state to ga(dL, da).</p>
          <p>Notation 1. In our examples we permit ourselves to be less strict in following the LPE format and allow
for multiple summands ranging over the same action label. Moreover, in case a summand binds a local
variable da which does not occur in the expressions ca, fa and ga, we omit the ∑-symbol altogether. In
our examples, action labels can carry zero or more arguments. Whenever condition ca is the constant
true, we omit both the condition and the → symbol.</p>
          <p>Example 1. As a running example, we consider a small system modelling a simple counter that can
increase and decrease a parameter n, reset that parameter to 0 when it has a positive value, and show the
current value. The system is described by L(0), where LPE L is given below.</p>
          <p>L(n:N) = inc · L(n + 1)
+ (n &gt; 0) → dec · L(n − 1)
+ (n &gt; 1) → reset · L(0)
+ show(n) · L(n)
Parts of the (infinite) labelled transition system associated to the LPE are depicted below; the dashed
edges indicate the presence of one (or more) edges.</p>
          <p>show(0)
show(1)
show(2)</p>
          <p>show(3)
0
inc
dec</p>
          <p>1
reset
inc
dec
reset
2
inc
dec
3</p>
          <p>
            First-Order Modal μ -Calculus
Model checking is concerned with checking whether a modal property holds for a given system or not.
The first-order modalμ-calculus (μ-calculus for short) of [
            <xref ref-type="bibr" rid="ref12 ref18">18, 12</xref>
            ] is a highly-expressive language for
stating such properties. This logic is based on the standard modal μ-calculus [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ], extended with
firstorder quantification and parameterised fixpoints, adding data as a first-class citizen. We briefly review
its syntax and semantics, and we demonstrate its use by means of several small examples.
Definition 2. The μ-calculus, ranging over a set of (typed) action labels A ct is given by the following
BNF grammar; formula ϕ represents a state formula and formula α represents an action formula:
ϕ ::=
α ::=
b | Z(e) | ¬ϕ | ϕ1 ∧ ϕ2 | [α]ϕ1 | ∀d:D. ϕ | νZ(d:D = e). ϕ
a(ea) | b | ¬α1 | α1 ∧ α2 | ∀d:D. α1
b is an expression of sort B; e is a data expression of type D; Z:D → B is a fixpoint variable from a
set of fixpoint variablesP; for simplicity, we assume all fixpoint variables range over the same sortD.
Expressions of the form (νZ(d:D = e). ϕ) are subject to the restriction that any free occurrence of Z in
ϕ must be within the scope of an even number of negation symbols ¬. Finally, a is an action label from
the set A ct and expression ea of sort Da is a parameter of a.
          </p>
          <p>
            For reference we include the semantics of a μ-calculus formula in Table 1. Note that the ordered set
h[D → 2S], vi is a complete lattice, where [D → 2S] is the set of functions from D to subsets of S and v
is defined as f v g iff for all v ∈ D, we have f (v) ⊆ g(v). Since the functionals Φρε are monotonic over
this lattice, the interpretation of fixpoint expressions is then justified [
            <xref ref-type="bibr" rid="ref22">22</xref>
            ].
          </p>
          <p>In the remainder of this paper, we use the following standard abbreviations for μ-calculus formulae
ϕ, action formulae α and (both μ-calculus formulae and action formulae) ψ.</p>
          <p>(ψ1 ∨ ψ2)
hαiϕ
∃d:D.ψ
μZ(d:D = e).ϕ
¬(¬ψ1 ∧ ¬ψ2)
¬[α]¬ϕ
¬∀d:D.¬ψ
¬νZ(d:D=e). ¬ϕ[Z := ¬Z]
{w∈S | ∀w0∈S ∀a∈A (w →−a w0 ∧ a∈k α kε) ⇒ w0∈[[ϕ]]ρε}</p>
          <p>Tv∈D[[ϕ]]ρ(ε[d 7→ v])
= (νΦρε )([[e]]ε), where Φρε :(D → 2S) → (D → 2S) is defined as:</p>
          <p>
            Φρε (F) = λ v ∈ D.[[ϕ]](ρ[Z 7→ F])(ε[d 7→ v]) for F:D → 2S
A μ-calculus formula (in the language enriched with the above abbreviations) is in Positive Normal
Form (PNF) whenever negation only occurs at the lowest level and all bound variables are distinct.
We only consider formulae in PNF. Note that this is no restriction as every μ-calculus formula can be
converted to PNF using suitable α-renaming and logical rules such as De Morgan. Moreover, we only
consider μ-calculus formulae that are closed: data variables d only occur in the scope of a quantifier
or a fixpoint binding it, and each fixpoint variableZ only occurs in the scope of a fixpoint that binds
it. Since the semantics of closed formulae is independent from the environments ε and ρ, we typically
write [[ϕ]] rather than [[ϕ]]ρε for closed ϕ. A formula ϕ is normalised whenever none of its subformulae
of the form σ X (d:D = e). ψ contain unbound data variables. Every closed formula can be converted (in
linear time) to an equivalent normalised formula, see e.g. [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ].
          </p>
          <p>We are mainly concerned with the problem of deciding (and explaining) whether a given LPE L(e)
meets a logical specification ϕ given by a μ-calculus formula; this is known as the model checking
problem. That is, we wish to decide whether [[e]] ∈ [[ϕ]]; we write L(e) |= ϕ to denote just this.</p>
          <p>We finish this section with a few illustrative examples of the use of data in formulae and
parameterisation of fixpoints.</p>
          <p>Example 2. Consider the LPE modelling the counter. Below are some simple properties of the counter,
expressed in the μ-calculus.</p>
          <p>1. the counter is deadlock-free: νX .([true]X ∧ htrueitrue);
2. the counter can be incremented ad infinitum: νX .hinciX ;
3. the counter can alternatingly increase and decrease ad infinitum: νX .hincihdeciX ;
4. the counter can be decreased infinitely often: νX .μY.(hdeciX ∨ hinciY );
5. the counter can take on any natural number: ∀n:N.μX .(hshow(n)itrue ∨ htrueiX ).
6. on all paths, the counter can decrease as often as it has increased:</p>
          <p>νX (m:N = 0).([inc]X (m + 1) ∧ [dec]X (m − 1) ∧ [¬inc ∧ ¬dec]X (m) ∧ (m = 0 ∨ hdecitrue));
Note that all of the above properties hold for the initial state of the counter except for the last one: due
to the reset action that can take place at any moment, the system may return to the initial state in which
it can no longer perform a dec action.
3</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Model Checking using Parameterised Boolean Equation Systems</title>
      <p>
        Solving the first-order modalμ-calculus model checking problem can be done in various ways. We here
focus on the use of an intermediate formalism called parameterised Boolean equation systems [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
These equation systems underlie several verification toolsets for specifying and analysing software and
hardware systems, such as the CADP and mCRL2 toolsets. The advantage of using an intermediate
formalism is that it allows for building dedicated techniques for that formalism [
        <xref ref-type="bibr" rid="ref12 ref13">13, 12</xref>
        ].
      </p>
      <p>Parameterised Boolean Equation Systems are sequences of fixpoint equations where each equation
is of the form νX (d:D) = ϕ or μX (d:D) = ϕ. A parameterised Boolean equation is, in a sense, a
simplified and equational variant of a first-orderμ-calculus formula, lacking modal operators. We refer
to the left-hand side variable of a parameterised Boolean equation as a predicate variable, whereas the
right-hand side formula is called a predicate formulae.</p>
      <sec id="sec-3-1">
        <title>Definition 3.</title>
        <p>A parameterised Boolean equation system E is a system of equations defined by:</p>
        <p>E ::=
ϕ ::=
0/ | (μX (dX :DX ) = ϕ) E | (νX (dX :DX ) = ϕ) E
b | X (e) | ϕ ∨ ϕ | ϕ ∧ ϕ | ∃d:D.ϕ | ∀d:D.ϕ
b is an expression of sort B, X is a predicate variable taken from some sufficiently large set of typed
predicate variables X , dX is a data parameter of sort DX , d is a data variable of sort D and e is a data
expression of the appropriate sort. Again for simplicity, we assume that all predicate variables range
over the same sort DX .</p>
        <p>We only consider well-formed, closed PBESs in this paper. A PBES E is said to be well-formed
iff every predicate variable X ∈ bnd(E ), where bnd(E ) is the set of bound variables (those predicate
variables occurring at the left-hand side of the equations), occurs at the left-hand side of precisely one
equation of E . A PBES E is said to be closed iff (1) for each right-hand side predicate formula ϕ
occurring in E we have occ(ϕ) ⊆ bnd(E ), where occ(ϕ) contains all predicate variables occurring in
6
ϕ, and, (2) whenever the only free data variable occurring in ϕ is the data parameter occurring at the
left-hand side of ϕ’s equation.</p>
        <p>
          The interpretation of predicate formulae is listed in Table 2; for the fixpoint semantics of a PBES
we refer to e.g. [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. Instead of the fixpoint semantics we here focus on the equivalent proof graph
semantics provided in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. This semantics is both more accessible (operational) and better suits our
needs of computing counterexamples and witnesses. The proof graph semantics of a PBES explains the
value, or truth assignment for each bound predicate variable by means of a directed graph with vertices
ranging over the signatures of a PBES. A signature is a tuple (X , v) for X ∈ bnd(E ) and v ∈ DX a value
taken from the domain underlying the type of X ; that is, we set sig(E ) = {(X , v) | v ∈ DX , X ∈ bnd(E )}.
We order each pair of variables X ,Y ∈ bnd(E ) as follows: X ≤ Y iff the equation for Y follows that of X
and we write X &lt; Y iff X ≤ Y and X 6= Y . Moreover, we say that a variable X is a ν-variable whenever
X occurs at the left-hand side of a greatest fixpoint equation; otherwise,X is a μ-variable.
Definition 4. A graph G = (V, E), for V ⊆ sig(E ) and E ⊆ V × V is a proof graph iff:
1. for all equations (σ X (dX :DX ) = ϕ) in E for which (X , v) ∈ V , [[ϕ]]Θ(X,v)ε[dX 7→ v] holds
for some ε and where Θ(X,v) is the environment defined as follows: Θ(X,v)(Y ) = {w ∈ DX |
h(X , v), (Y, w)i ∈ E} for all Y ;
2. for all infinite paths (X1, v1) (X2, v2) . . . through G , the smallest variable (w.r.t. the ordering &lt;)
occurring infinitely often on that path is aν-variable.
        </p>
        <p>
          The semantics (often referred to as the (partial) solution) of a PBES is as follows; the correspondence
with the more traditional fixpoint semantics follows from,e.g. [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
        </p>
        <p>Definition 5. Let E be a PBES. The semantics of E is a predicate environment [[E ]] defined as follows:
v ∈ [[E ]](X ) iff X ∈ bnd(E ) and there is a proof graph G = (V, E) such that (X , v) ∈ V .</p>
        <p>The dual of a proof graph is called a refutation graph. Such a graph explains that a value v does
not belong to the set of values defined by some variableX . The notion of a refutation graph is defined
analogously to a proof graph, using complementation for Θ(X,v) in condition 1 and requiring that the
least variable occurring on any infinite path in the graph is aμ-variable.</p>
        <p>A proof graph containing a vertex (X , v) provides evidence that the value v belongs to the set of
values defined by X in the PBES. In that case, the first condition essentially states that v belongs to X
because all successors of (X , v) together yield an environment that makes the right-hand side formula
for X hold when parameter dX is assigned value v. The second condition ensures that the graph respects
the parity condition typically associated with (nested) fixpoint formulae.</p>
        <p>Example 3. Consider the PBES (νX (n:N) = Y (n)) (μY (n:N) = (n &gt; 0 ∧ X (n − 1)) ∨ Y (n + 1)). A
proof graph for this PBES is given below:
From the first proof graph it follows that{0} ⊆ [[E ]](X ), whereas from the second proof graph it follows
that {0, 1} ⊆ [[E ]](X ) and {0, 1, 2} ⊆ [[E ]](Y ). Note that it is straightforward to show, by extending the
given proof graphs, that for any natural number k ∈ N, we have k ∈ [[E ]](X ) and k ∈ [[E ]](Y ).</p>
        <p>
          A proof graph is minimal if leaving out vertices or edges yields a graph that violates the proof graph
conditions. We here note that the problem of computing a minimal proof graph (i.e. a subgraph of a
proof graph that is as small as possible), is NP hard [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. However, some techniques for computing a
proof graph, such as solving a parity game induced by a PBES and using the winning strategies to filter
unreachable vertices, yield minimal proof graphs by definition. Note that minimality of a proof graph
does not imply the non-existence of a proof graph that is strictly smaller, see the example below.
Example 4. Consider the two proof graphs of Example 3. The first graph is aminimal proof graph and
it is also the smallest possible proof graph. The second proof graph is clearly not minimal; however, by
omitting the edge from (Y, 1) to (X , 0) we obtain another minimal proof graph. The thus obtained proof
graph is clearly not the smallest possible proof graph.
        </p>
        <p>
          There are numerous ways in which a PBES E can be partially solved, i.e. for which we can decide,
for a given bound predicate variable X ∈ bnd(E ) and value v, whether v ∈ [[E ]](X ). For instance, one
can use Gauß Elimination and symbolic approximation [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], or by constructing and solving a parity
game that is induced by a PBES [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
        </p>
        <p>
          As we remarked at the start of this section, the usefulness of PBESs lies in the observation that
there is a linear-time reduction of the first-order modalμ-calculus model checking problem for LPEs to
PBESs, see e.g. [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. This transformation generalises the reduction of the (standard) modal μ-calculus
for LTSs to Boolean equation systems [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. For reference, we provide the details for this reduction in
Table 3; in the next section, we present our modifications to this transformation. The correctness of the
original transformation is given by the following theorem, taken from [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>Theorem 1. Let formula σ X (d:D = e0). ψ be a closed, normalised first-order modalμ-calculus formula
and L(e) be an LPE. Then L(e) |= σ X (d:D = e0). ψ iff ([[e]], [[e0]]) ∈ [[EL(σ X (d:D = e0). ψ)]](X ).
Example 5. We illustrate the transformation on the counter modelled by LPE L(0) of Example 1.
Say that we wish to analyse whether the counter can be decreased infinitely often, i.e. property (4)
of Example 2: νX .μY.(hdeciX ∨ hinciY ). The PBES resulting from the transformation (after logical
simplification, eliminating all subformulae obtained from summands not matching the action labels in
the modal operators) is the PBES of Example 3. Note that, per Theorem 1, the proof graphs given there
illustrate that the property holds for L(0).</p>
        <p>Next, suppose we wish to verify the property that we can infinitely often alternatingly increase and
decrease parameter n, i.e. property (3) of Example 2. Recall that this is formalised by the following
μcalculus formula νX .hincihdeciX . The PBES E we obtain from this property (again after some logical
simplification) is as follows:</p>
        <p>νX (n:N) = n + 1 &gt; 0 ∧ X ((n + 1) − 1)
It follows, by definition, that 0∈ [[E ]](X ), see the proof graph given below.
Consequently, by Theorem 1 we find that alsoL(0) |= νX .hincihdeciX .</p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], proof graphs and refutation graphs for PBESs were introduced in an effort to provide a
meaningful explanation of the answer to a decision problem encoded in a PBES. While at the level of
a PBES these graphs indeed meet their objective, as they provide the exact reasoning underlying the
(partial) solution of a PBES, they do not aid in understanding the solution at the level of the decision
problem that is encoded in the PBES. This is clearly illustrated in, e.g. the last proof graph for the PBES
underlying the model checking problem of Example 5: the single vertex with a self-loop, constituting
the proof graph, does not explain which transitions of the LTS of Example 5 are involved.
8
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Evidence Extraction from PBESs</title>
      <p>
        Whenever a model checking problem yields an unexpected verdict, evidence in the form of a witness or
counterexample supporting that verdict can be helpful in analysing the root cause. Following [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], such a
witness or counterexample is a fragment of the original labelled transition system (or LPE) that can be
used to reconstruct the model checking verdict. However, a proof graph underlying a PBES that encodes
a model checking problem lacks some essential information about the LPE to extract a counterexample
or witness, see Example 5. This issue was recognised and further studied in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] in a slightly different
setting, viz. in the setting of the logic Least Fixed Point (LFP).
      </p>
      <p>
        The solution proposed in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is to extend the proof graphs with information about first-orderrelation
symbols from the structures involved in the encoded decision problem. Using proof graphs enriched
in this way, evidence (e.g. counterexamples or witnesses) can be extracted from the proof graphs by
projecting onto the vertices referring to the relational symbols of the desired structure(s). The thus
obtained structures are weak substructures of the original structures that allow for reconstructing the
proof graph underlying the original PBES.
      </p>
      <p>Porting the proposed solution to the setting to PBESs is, however, not straightforward. The reason
for this is that, unlike in LFP formulae, one cannot refer to first-order relational symbols; one can
essentially only refer to Boolean expressions and predicate variables. Consequently, proof graphs for
PBESs cannot be enriched in a similar fashion.</p>
      <p>We propose to solve this problem by adding the information from the structures, relevant for
constructing proper diagnostics, to the encoding of the decision problem. For instance, if the diagnostics
for a model checking problem requires that a weak substructure of the original structures can be
reconstructed, then we add information about that structure to our encoding. The extra information is added
in the form of additional equations and by adding predicate variables that refer to those equations. For
the model checking problem, this only requires changing the rules for RHSL([α]ϕ) and RHSL(hαiϕ):
RHSL([α]ϕ)
RHSL(hαiϕ)
=
=</p>
      <p>Va∈A ct ∀ea:Ea. (ca(dL, ea) ∧ match(a( fa(dL, ea)), α))
=⇒</p>
      <p>RHSL(ϕ)[ga(dL, ea)/dL] ∧ La+(dL, fa(dL, ea), ga(dL, ea))
∨ La−(dL, fa(dL, ea), ga(dL, ea))
Wa∈A ct ∃ea:Ea. ca(dL, ea) ∧ match(a( fa(dL, ea)), α)
∧</p>
      <p>RHSL(ϕ)[ga(dL, ea)/dL] ∨ La−(dL, fa(dL, ea), ga(dL, ea))
∧ La+(dL, fa(dL, ea), ga(dL, ea))
All remaining rules remain as before. The two additional equations that must be added to the translation
for each action label a, are as follows:</p>
      <p>(νLa+(dL:DL, da:Da, dL0:DL) = true) (μLa−(dL:DL, da:Da, dL0:DL) = false)
Note that their exact position in the resulting PBES does not matter (their solutions are independent
of other equations as they are simple constants, so in a proof graph or refutation graph, vertices of the
form (La+, v, va, w) or (La−, v, va, w) never need to be part of an infinite path); for simplicity, we add these
c
equations at the end of the PBES. We denote the updated translation by EL.</p>
      <p>
        Theorem 2. Let formula σ X (d:D = e0). ψ be a closed, normalised first-order modalμ-calculus formula
and L(e) be an LPE. Then L(e) |= σ X (d:D = e0). ψ iff ([[e]], [[e0]]) ∈ [[EcL(σ X (d:D = e0). ψ)]](X ).
Proof. The correctness of the new transformation follows immediately from the fact that we can
substitute ‘solved’ equations for their references, see [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. That is, by replacing La+ by the constant true
and replacing La− by the constant false we can effectively reduce the new rules for translating [α]ϕ and
hαiϕ to the ones from Table 3.
      </p>
      <p>Intuitively, the modification in the translation of thehαiϕ and [α]ϕ construction allows for
extracting evidence from a proof graph because whenever the proof graph records information about which
predicate variables are required to make ϕ hold true, also information about the transition, encoded by
the predicate variable La+ must be recorded in the proof graph. This follows from the fact that, e.g. in the
new translation for hαiϕ, the expression La+ is added as a conjunct in the new translation. For similar
reasons, whenever there is no α-matching transition leading to a state satisfying ϕ, the proof graph will
contain all α-matching transitions, encoded by the predicate variable L−.
a</p>
      <p>
        Before we formally define how we can extract diagnostic information from a proof graph, we
illustrate the basic idea by showing how to solve the problem we encountered in Example 5.
Example 6. Reconsider the second model checking problem of Example 5, i.e. the problem of deciding
whether the counter system satisfies property νX .hincihdeciX . Whereas the standard transformation
yields a PBES consisting of only one equation, we now obtain a PBES E with seven equations (two of
10
which are redundant):
νX (n:N) =
(νLi+nc(n:N, n0:N) = true) (νLd+ec(n:N, n0:N) = true) (νLr+eset(n:N, n0:N) = true)
(μLi−nc(n:N, n0:N) = false) (μLd−ec(n:N, n0:N) = false) (μLr−eset(n:N, n0:N) = false)
Note that the smaller proof graph of Example 5 we could use to demonstrate that 0 ∈ [[E ]](X ) now no
longer is appropriate since it misses relevant information about the signatures for Li+nc and Ld+ec. Adding
this extra information yields the following proof graph:
(Ld+ec, 1, 0)
The signatures containing the Li+nc and Ld+ec predicate variables encode information about the transitions
in the LPE that were involved in constructing the proof that the property we verify holds. Following the
basic ideas outlined in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], we extract the relevant information by filtering the relevant vertices from the
proof graph and construct an LPE. In our case, we can extract the following LPE L+:
The LTS induced by L+(0), providing diagnostics at the level of the system, is as follows:
L+(n:N)
(n = 0) → inc · L+(1)
(n = 1) → dec · L+(0)
=
+
0
inc
dec
1
Note that the LTS is a subgraph of the LTS underlying L(0) (see the original LTS of Example 1), which,
moreover, provides a compact and intuitive argument why the property holds. Moreover, the proof graph
underlying the PBES encoding the same μ-calculus model checking problem on L+(0) is isomorphic to
the one we provided above.
      </p>
      <p>We next formalise the notions of witness and counterexample.</p>
      <p>Definition 6. Let L be an LPE and ϕ a μ-calculus formula. Let G = (V, E) be a finite, minimal proof
graph proving L(e) |= ϕ. Let W (a) = {(eL, ea, e0L) | (L+, [[eL]], [[ea]], [[e0L]]) ∈ V }. The witness extracted
from G is the LPE Lw defined as follows:</p>
      <p>Lw(dL:DL) = + {</p>
      <p>∑
(eL,ea,e0L):DL×Da×DL</p>
      <p>(eL, ea, e0L) ∈ W (a) → a(ea) · Lw(e0L) | a ∈ A ct }
In a similar vein, a counterexample LPE Lc is obtained by filtering all Lc signatures from V in the
refutation graph.</p>
      <p>We note that the LTS underlying LPE Lw (and, likewise, the LTS underlying LPE Lc) is a
substructure of the LTS underlying L; this follows from minimality of the proof graph from which these LPEs
are extracted, plus the fact that the conditions under which the transitions are present are enforced in
the translations of RHSL([α]ϕ) and RHSL(hαiϕ). The theorem below states that the witness extracted
from the PBES indeed contains enough information to reconstruct the proof graph from which it was
extracted; a dual result holds for counterexamples extracted from a refutation graph.
Theorem 3. Let L be an LPE and ϕ a μ-calculus formula. Let G = (V, E) be a finite, minimal proof
graph proving L(e) |= ϕ, and let Lw be the witness LPE extracted from G . Then any proof graph proving
Lw(e) |= ϕ is isomorphic to some proof graph proving L(e) |= ϕ.</p>
      <p>
        Proof. This follows essentially from the observation that the LTS underlying the LPE Lw, extracted from
G , is a substructure of the LTS underlying L. The bijection that maps all vertices of the form (Lw+, v)
to (L+, v) and all other vertices to their identities in the proof graph proving Lw(e) |= ϕ then yields an
isomorphic proof graph proving L(e) |= ϕ; see also Theorem 10 in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Applications</title>
      <p>
        We have implemented the modified transformation in the mCRL2 toolset in the existing toollps2pbes.
Moreover, we have developed a new tool, called pbessolve, which extracts evidence from a PBES that
is obtained via the new transformation. The latter tool uses instantiation to a parity game (much like the
technique outlined in [
        <xref ref-type="bibr" rid="ref18 ref23">23, 18</xref>
        ]), which is then solved using Zielonka’s recursive algorithm [
        <xref ref-type="bibr" rid="ref10 ref24">24, 10</xref>
        ] and
from which we extract a witness or counterexample as per Def. 6.
      </p>
      <p>
        We illustrate the effectiveness of the techniques we outlined in this paper through three examples
taken from the mCRL2 repository. The first example is a scheduling problem sometimes referred to as
the bridge-crossing puzzle. Our second example concerns three communication protocols. The third
example we consider is the Storage Management System [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] of the DIRAC Community Grid Solution
for the LHCb experiment at CERN.
5.1
      </p>
      <sec id="sec-5-1">
        <title>Bridge Crossing</title>
        <p>The bridge-crossing puzzle centres around a scheduling problem with limited access to resources. The
problem is essentially as follows. A family of four people (person A, B, C and D), chased by a pack of
wolves, needs to cross a narrow bridge at night. The bridge can only hold two persons at a time and the
damages to the bridge require the persons to carry a torch to avoid falling off the bridge. Unfortunately,
there is only one torch; its battery is running out and can only last another 18 minutes. Persons A and
B can cross the bridge in 1, resp. 2 minutes but person C requires 5 minutes and D even requires 10
minutes to cross the bridge. The problem is whether they have a strategy to safely cross the bridge
before the battery of the torch runs out.</p>
        <p>We model the puzzle as an LPE, where we model the state space by keeping track of the positions of
the four persons (i.e. which side of the bridge they are), and the time that has passed since switching on
the torch. We consider two types of move actions: move(p1, l), modelling the person p1 who is carrying
a torch to move to location l (which can be s for safe, or d, for dangerous) and move(p1, p2, l), modelling
the person p1 who is carrying a torch, crossing the bridge together with p2. Moreover, action safe(i)
signals that the family managed to safely cross the bridge, taking i minutes; action fail indicates that
the family did not manage to cross the bridge before the battery of the torch ran out. To verify whether
the family has a strategy to safely cross the bridge, we verify the following formula:
μX .(htrueiX ∨ h∃i:N.safe(i)itrue)
The witness proving the formula holds is depicted below, with 0 being the initial state. It shows a
schedule by which the family can safely cross the bridge.</p>
        <p>move(B, A, s)
move(A, d)</p>
        <p>move(D,C, s)
1
2
move(B, d)</p>
        <p>move(B, A, s)
4
5
safe(17)
6
0
12
3
5.2</p>
      </sec>
      <sec id="sec-5-2">
        <title>Communication Protocols</title>
        <p>Communication protocols allow for exchanging information between devices through networks using
strict rules and conventions. In general, the communication medium (i.e. the network) may not be
perfectly reliable: it may re-order, scramble or even lose data that it transports. Part of the problem
solved by a communication protocol is to disassemble and reassemble messages sent via such a network,
working around the assumed characteristics of the network to achieve reliable information exchange.</p>
        <p>
          A variety of communication protocols exist; we here consider the classic Alternating Bit Protocol
(ABP), the One Bit Sliding Window Protocol, which is a simple bidirectional sliding window protocol
with piggy backing and window sizes as the receiving and sending side of size 1 [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], and the full Sliding
Window Protocol [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. The property that we check for all three protocols is the following: there are no
paths on which reading of a datum d is enabled infinitely often, but occurs only finitely often. Assuming
that the data domain we range over is D and read(d) models reading datum d, this can be formalised
as follows (see also, e.g. [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]):
        </p>
        <p>∀d:D.νX .μY.νZ.([read(d)]X ∧ ([read(d)]false ∨ [¬read(d)]Y ) ∧ [¬read(d)]Z)
None of the three protocols satisfy the property for |D| &gt; 1. The counterexamples we can extract all have
a similar flavour but differ in the number of actions involved and the underlying reason for violating the
property. We depict these counterexamples in Figure 1; we have omitted all other involved actions in
these counterexamples.</p>
        <p>4
3
5
2
6
1
7
0
r
e
a
d
(
d
0
)
16
)
0
d
(
d
a
e
r
8
15
9
14
10
13
11
12
0
1
r
e
a
d
(
d
0
)
2
3
r
e
a
d
(
d
0
)
0
2
read(d0)
read(d0)
1
3</p>
        <p>All three counterexamples show the presence of an infinite path along which aread(d0) is enabled,
but never taken. Note that since this is a typical branching-time property with a strong fairness
constraint, the counterexample cannot simply be represented by an infinite path represented by a lasso.
5.3</p>
      </sec>
      <sec id="sec-5-3">
        <title>The DIRAC Storage Management System</title>
        <p>
          DIRAC (Distributed Infrastructure with Remote Agent Control) is a grid solution that is designed to
support both production activities as well as user data analysis for the Large Hadron Collider ‘beauty’
experiment. It consists of distributed services that cooperate with light-weight agents that deliver workload
to the grid resources: services accept requests from running jobs and agents, whereas agents actively
work towards specific goals. The logic of each individual agent is fairly simple but the main source of
complexity arises from their cooperation. Agents communicate using the services’ databases as a shared
memory for synchronising the state transitions. A formal model and analysis of two critical subsystems
of DIRAC is described in [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]; one of these is the Storage Management System (SMS). In [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], it was
shown that this system violated several requirements. Most of these requirements were safety
requirements. A violation of such a requirement is a simple trace in the system, which is fairly easy to generate
and visualise. A requirement that defied such a simple approach is the following liveness requirement:
νX .([true]X ∧
[state([tStaged]) ∨ state([tFailed])]νY.([¬state([tDeleted])]Y ∧
        </p>
        <p>μZ.(htrueiZ ∨ hstate([tDeleted])itrue)))
The requirement essentially states that each task that is in a terminating state (i.e. in state tFailed or
tStaged) is eventually removed from the DIRAC system (i.e. tDeleted). The only action of concern
is the state(s) action, which emits the current state s of a task. The counterexample to the property
is depicted in Figure 2; the original LTS contains 142 states, which can be further reduced (without
affecting the behaviours encoded by the LTS) to the depicted 26 states.</p>
        <p>0
1
12</p>
        <p>13
state([tStaged])
17
16
14
15
21
20
18
19
25
24
22
23</p>
        <p>The counterexample clearly indicates a path towards a part of the system where the task, once staged
(in state 13), will never be removed from the system.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusions and Future Work</title>
      <p>
        We studied and implemented the extraction of useful evidence from parameterised Boolean equation
systems (PBESs) encoding the model checking problem for the first-order modal μ-calculus. Our
solution is inspired by the LFP-approach outlined (but not implemented) in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Our solution, which we
have also implementation and which is made available through the mCRL2 [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] toolset, shows the appeal
of the technique even when used for explaining the failure for complex requirements to hold.
      </p>
      <p>
        Apart from the model checking problem, PBESs can also be used for checking behavioural
equivalence of processes [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Diagnostics for such problems are typically presented in the form of a game [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
We expect to be able to apply the ideas outlined in the current paper to such problems as well, leading to
evidence in the form of substructures for both input models, which, combined, explain the differences
between both models. Implementing this problem and investigating whether such a solution would
provide intelligible feedback to the user is left for future work.
14
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Bezem</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.F.</given-names>
            <surname>Groote</surname>
          </string-name>
          .
          <article-title>A correctness proof of a one-bit sliding window protocol in μCRL</article-title>
          .
          <source>Comput. J.</source>
          ,
          <volume>37</volume>
          (
          <issue>4</issue>
          ):
          <fpage>289</fpage>
          -
          <lpage>307</lpage>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bradfield</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Stirling</surname>
          </string-name>
          .
          <article-title>Modal logics and mu-calculi</article-title>
          .
          <source>InHandbook of Process Algebra</source>
          , pages
          <fpage>293</fpage>
          -
          <lpage>332</lpage>
          . Elsevier, North-Holland,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Busard</surname>
          </string-name>
          .
          <article-title>Symbolic Model Checking of Multi-Modal Logics: Uniform Strategies and Rich Explanations</article-title>
          .
          <source>PhD thesis</source>
          , Universite´ catholique de Louvain (UCL),
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>T.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Ploeger</surname>
          </string-name>
          , J. van de Pol, and
          <string-name>
            <given-names>T.A.C.</given-names>
            <surname>Willemse</surname>
          </string-name>
          .
          <article-title>Equivalence checking for infinite systems using parameterized Boolean equation systems</article-title>
          .
          <source>In CONCUR</source>
          , volume
          <volume>4703</volume>
          <source>of LNCS</source>
          , pages
          <fpage>120</fpage>
          -
          <lpage>135</lpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Cranen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.F.</given-names>
            <surname>Groote</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.J.A.</given-names>
            <surname>Keiren</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.P.M.</given-names>
            <surname>Stappers</surname>
          </string-name>
          , E.P. de Vink, W. Wesselink, and
          <string-name>
            <given-names>T.A.C.</given-names>
            <surname>Willemse</surname>
          </string-name>
          .
          <article-title>An overview of the mCRL2 toolset and its recent advances</article-title>
          .
          <source>In TACAS</source>
          , volume
          <volume>7795</volume>
          <source>of LNCS</source>
          , pages
          <fpage>199</fpage>
          -
          <lpage>213</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Cranen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Luttik</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.A.C.</given-names>
            <surname>Willemse</surname>
          </string-name>
          .
          <article-title>Proof graphs for parameterised Boolean equation systems</article-title>
          .
          <source>In CONCUR</source>
          , volume
          <volume>8052</volume>
          <source>of LNCS</source>
          , pages
          <fpage>470</fpage>
          -
          <lpage>484</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Cranen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Luttik</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.A.C.</given-names>
            <surname>Willemse</surname>
          </string-name>
          .
          <article-title>Evidence for fixpoint logic</article-title>
          .
          <source>InCSL</source>
          , volume
          <volume>41</volume>
          <source>of LIPIcs</source>
          , pages
          <fpage>78</fpage>
          -
          <lpage>93</lpage>
          . Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>D. de Frutos-Escrig</surname>
            ,
            <given-names>J.J.A.</given-names>
          </string-name>
          <string-name>
            <surname>Keiren</surname>
            , and
            <given-names>T.A.C.</given-names>
          </string-name>
          <string-name>
            <surname>Willemse</surname>
          </string-name>
          .
          <article-title>Games for bisimulations and abstraction</article-title>
          .
          <source>Logical Methods in Computer Science</source>
          ,
          <volume>13</volume>
          (
          <issue>4</issue>
          ),
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>W.</given-names>
            <surname>Fokkink</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.F.</given-names>
            <surname>Groote</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Badban</surname>
          </string-name>
          , and J. van de Pol.
          <article-title>Verifying a sliding window protocol in μCRL</article-title>
          .
          <source>In AMAST</source>
          , volume
          <volume>3116</volume>
          <source>of LNCS</source>
          , pages
          <fpage>148</fpage>
          -
          <lpage>163</lpage>
          . Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gazda</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.A.C.</given-names>
            <surname>Willemse</surname>
          </string-name>
          .
          <article-title>Zielonka's recursive algorithm: dull, weak and solitaire games and tighter bounds</article-title>
          .
          <source>In GandALF</source>
          , volume
          <volume>119</volume>
          <source>of EPTCS</source>
          , pages
          <fpage>7</fpage>
          -
          <lpage>20</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.F.</given-names>
            <surname>Groote</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.R.</given-names>
            <surname>Mousavi</surname>
          </string-name>
          .
          <article-title>Modeling and Analysis of Communicating Systems</article-title>
          . MIT Press,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>J.F.</given-names>
            <surname>Groote</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.A.C.</given-names>
            <surname>Willemse</surname>
          </string-name>
          .
          <article-title>Model-checking processes with data</article-title>
          .
          <source>Sci. Comput</source>
          . Program.,
          <volume>56</volume>
          (
          <issue>3</issue>
          ):
          <fpage>251</fpage>
          -
          <lpage>273</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>J.F.</given-names>
            <surname>Groote</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.A.C.</given-names>
            <surname>Willemse</surname>
          </string-name>
          .
          <article-title>Parameterised Boolean equation systems</article-title>
          .
          <source>Theor. Comput. Sci.</source>
          ,
          <volume>343</volume>
          (
          <issue>3</issue>
          ):
          <fpage>332</fpage>
          -
          <lpage>369</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kick</surname>
          </string-name>
          .
          <article-title>Tableaux and witnesses for the μ-calculus</article-title>
          ,
          <year>1995</year>
          .
          <source>Tech. Rep</source>
          .
          <volume>44</volume>
          /95, University of Karlsruhe.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>A.</given-names>
            <surname>Mader</surname>
          </string-name>
          .
          <article-title>Verification of Modal Properties Using Boolean Equation Systems</article-title>
          .
          <source>PhD thesis</source>
          , Technische Universita¨t Mu¨nchen,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R.</given-names>
            <surname>Mateescu</surname>
          </string-name>
          .
          <article-title>Ve´rification des proprie´te´s temporelles des programmes paralle`les</article-title>
          .
          <source>PhD thesis</source>
          , Institut National Polytechnique de Grenoble,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>R.</given-names>
            <surname>Mateescu</surname>
          </string-name>
          .
          <article-title>Efficient diagnostic generation for Boolean equation systems</article-title>
          .
          <source>InTACAS</source>
          , volume
          <volume>1785</volume>
          <source>of LNCS</source>
          , pages
          <fpage>251</fpage>
          -
          <lpage>265</lpage>
          . Springer,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>B.</given-names>
            <surname>Ploeger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Wesselink</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.A.C.</given-names>
            <surname>Willemse</surname>
          </string-name>
          .
          <article-title>Verification of reactive systems via instantiation of parameterised Boolean equation systems</article-title>
          .
          <source>Inf. Comput.</source>
          ,
          <volume>209</volume>
          (
          <issue>4</issue>
          ):
          <fpage>637</fpage>
          -
          <lpage>663</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>D.</given-names>
            <surname>Remenska</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.A.C.</given-names>
            <surname>Willemse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Verstoep</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Templon</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.E.</given-names>
            <surname>Bal</surname>
          </string-name>
          .
          <article-title>Using model checking to analyze the system behavior of the LHC production grid</article-title>
          .
          <source>Future Generation Comp. Syst.</source>
          ,
          <volume>29</volume>
          (
          <issue>8</issue>
          ):
          <fpage>2239</fpage>
          -
          <lpage>2251</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>P.</given-names>
            <surname>Stevens</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Stirling</surname>
          </string-name>
          .
          <article-title>Practical model-checking using games</article-title>
          .
          <source>In TACAS</source>
          , volume
          <volume>1384</volume>
          <source>of LNCS</source>
          , pages
          <fpage>85</fpage>
          -
          <lpage>101</lpage>
          . Springer,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>L.</given-names>
            <surname>Tan</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Cleaveland</surname>
          </string-name>
          .
          <article-title>Evidence-based model checking</article-title>
          .
          <source>In CAV</source>
          , volume
          <volume>2404</volume>
          <source>of LNCS</source>
          , pages
          <fpage>455</fpage>
          -
          <lpage>470</lpage>
          . Springer,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>A.</given-names>
            <surname>Tarski</surname>
          </string-name>
          .
          <article-title>A lattice-theoretical fixpoint theorem and its applications</article-title>
          .
          <source>Pac. J. Math.</source>
          ,
          <volume>5</volume>
          (
          <issue>2</issue>
          ):
          <fpage>285</fpage>
          -
          <lpage>309</lpage>
          ,
          <year>June 1955</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>A. van Dam</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Ploeger</surname>
            , and
            <given-names>T.A.C.</given-names>
          </string-name>
          <string-name>
            <surname>Willemse</surname>
          </string-name>
          .
          <article-title>Instantiation for parameterised Boolean equation systems</article-title>
          .
          <source>In ICTAC</source>
          , volume
          <volume>5160</volume>
          <source>of LNCS</source>
          , pages
          <fpage>440</fpage>
          -
          <lpage>454</lpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>W.</given-names>
            <surname>Zielonka</surname>
          </string-name>
          .
          <article-title>Infinite games on finitely coloured graphs with applications to automata on infinite treesT.heor</article-title>
          .
          <source>Comput. Sci.</source>
          ,
          <volume>200</volume>
          (
          <issue>1-2</issue>
          ):
          <fpage>135</fpage>
          -
          <lpage>183</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>