<!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>Parallel Model Checking of !-Automata</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Formal Methods and Tools, University of Twente</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Specifications for non-terminating reactive systems are described by !-regular properties. Such properties can be translated in various types of automata, e.g. Büchi, Rabin, and Parity. A model checker can then check for language containment and determine whether the system meets the specification. Checking these automata becomes more complex when introducing probabilities and/or an adversary, e.g. the uncontrollable environment, to the automaton. Parallel algorithms have become crucial for fully utilizing current hardware systems. With respect to model checking we therefore focus on designing scalable parallel algorithms for emptiness checking. This research focuses on designing and improving parallel graph searching algorithms for emptiness checking on various types of !-automata. As a basis, we developed a scalable multi-core on-the-fly algorithm for the detection of strongly connected components (SCCs). Our aim is to contribute to the state-of-the-art techniques in parallel model checking, based on both theoretical complexity analysis and empirical studies on suitable benchmarks.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Model checking. The automata-theoretic approach to model checking !-regular
properties involves taking the synchronized product of the (negated) property
to check and the state space of the system. The resulting product automaton is
then checked for language emptiness by searching for an infinite execution that
satisfies the acceptance condition, which is defined by the !-automaton. If such
an accepting trace is found, the system is able to perform behaviour that is not
allowed by the original property, hence we say that a counterexample has been
found [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>Types of !-automata. An !-automaton accepts infinite strings which is useful
for specifying behaviour in non-terminating systems, i.e. control systems. The
acceptance condition can be described in various types of automata, most
commonly Büchi, co-Büchi, Rabin, Streett, Parity and Muller (see Section 3 for the
definitions). While each type of (nondeterministic) automaton can describe the
same property, the sizes of these automata may differ exponentially. As a
consequence, the choice of automata could significantly improve the time to model
check. On the other hand, the model checking procedure may also become a lot
more complex for such smaller automata.</p>
      <p>
        Chatterjee and Henzinger [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] provide a good overview on different classes of
!-regular properties and how these 1-player properties can be extended with e.g.
adversaries (2-player) and probabilities (11=2 and 21=2-player). With an adversary,
the automaton is called a game and the goal of player 1 is to ‘force’ the property,
i.e. satisfying the property for all possible actions of the adversary.
Parallel model checking. Multi-core architectures have become increasingly more
accessible, and the number of CPU cores grows as well. Scalable solutions have
been presented to solve the reachability problem [
        <xref ref-type="bibr" rid="ref1 ref11">1,11</xref>
        ] and the accepting
cycle problem [
        <xref ref-type="bibr" rid="ref16 ref3 ref4 ref7">7,16,3,4</xref>
        ]. On a 64-core machine, the accepting cycle problem is
currently being solved 25 times faster compared to a sequential approach [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
For many other acceptance conditions, there is limited to non-existing work in
parallel solutions.
      </p>
      <p>
        Motivation. The main motivation of this work is to better understand how
model checking can be efficiently applied in a practical sense. Two aspects of
importance are how the type of automaton influences the model checking
procedure, and how parallelism can be fully exploited in the algorithms. Currently,
however, it remains unknown whether a particular type of !-automaton can be
checked efficiently in parallel. While the common approach in practice seems to
use Büchi automata for LTL model checking, a Rabin automaton might be a
better alternative [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>
        Expected contributions. In this research we aim to contribute to scalable
parallel solutions for model checking various types of !-automata. We focus on
explicit state on-the-fly graph search algorithms. At present, we designed a scalable
multi-core on-the-fly strongly connected component (SCC) algorithm [
        <xref ref-type="bibr" rid="ref2 ref3">2,3</xref>
        ] based
on parallel depth-first search (DFS) and concurrent union-find (more on this
in Section 2). We consider this algorithm as a basis for the research and have
successfully applied it in the context of LTL model checking for Büchi automata [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
We continue by designing and investigating parallel solutions for other types of
automata. This is followed by studying 2-player cases and stochastic instances,
e.g. by improving Maximal End Component (MEC) decomposition.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Strongly Connected Components in Parallel</title>
      <p>Preliminaries. For a directed graph G := hV; Ei, two states v; w 2 V are strongly
connected iff there is a path from v to w and also from w to v. A strongly connected
component (SCC) is defined as the maximal set of states C V such that for
all states v; w 2 C, v and w are strongly connected. An SCC is called trivial if
it consists of a single state v and there is no edge v ! v 2 E. We further define
the notion that C is a partial SCC if all states in C are strongly connected, but
C is not necessarily maximal.</p>
      <p>We assume that the graph is computed on-the-fly. This implies that an
algorithm initially only has access to the initial state, and can use a function to
compute the successor states: suc(v) := fw 2 V j v ! w 2 Eg.
a
b</p>
      <p>c</p>
      <p>
        A multi-core on-the-fly algorithm for detecting SCCs. The general idea behind
the algorithm is to perform multiple randomized1 DFS instances in parallel
and globally communicate detected cycles. The main improvement on related
work [
        <xref ref-type="bibr" rid="ref13 ref16">13,16</xref>
        ] is that a complete SCC can be detected in parallel without having
to rely on a single worker to visit every state of the SCC. By tracking partial
SCCs, multiple workers can even cooperatively detect cycles. As a result, scalable
on-the-fly SCC decomposition is now possible for large SCCs.
      </p>
      <p>
        The algorithm. We describe the algorithm without going in much detail, for a
more in-depth description we refer the reader to Bloemen et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. A concurrent
union-find structure is used for globally communicating partial SCCs. In essence
this is a structure to maintain sets of states and a single state is the representative
or root of a set. Whenever a worker detects a cycle, it merges all (sets of) states
on this cycle to a single set in the union-find structure.
      </p>
      <p>Tracking worker IDs. We extended the union-find structure to also maintain
worker IDs in the root of each set. When a worker visits a new state v, it adds
its worker ID to the root of the set for v. As a consequence, the worker will
regard every state in the partial SCC of v as a ‘visited’ state. We exploit this for
detecting cycles, as we show in Fig. 1. Here, a ‘blue’ worker detected the cycle
fb; e; dg and the ‘red’ worker has visited the path a ! b ! c ! f . If the red
worker visits state e, it will detect that it has already visited this set (namely
via b), thus it reports a cycle and merges states c and f to the set.
Cyclic lists for tracking non-fully explored states. We say that a state v is fully
explored if all its successors either direct to completed SCCs or to other states
in the set of v, since we cannot gain more information from v. A cyclic list,
illustrated in Fig. 2, tracks all states in the partial SCC that still have to be
fully explored (marked white) and removes the fully explored ones (marked gray).
Cyclic lists get merged when states are added to the partial SCC. Workers select
states from the list to search from. When the list is empty, all states of the
(partial) SCC have been fully explored and the SCC can be marked as completed.
1 The set of successors is randomly ordered for each worker, such that each worker
explores the graph in a different order.</p>
    </sec>
    <sec id="sec-3">
      <title>Acceptance on !-automata</title>
      <p>
        An !-automaton is defined in Definition 1, as presented by Grädel et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
Definition 1 (!-automaton). An !-automaton is a tuple A = hQ; ; ; q0; F i,
where Q is a finite set of states, is a finite alphabet, : Q ! 2Q is the state
transition function, q0 2 Q is the initial state, and F is the acceptance
component. In a deterministic !-automaton, a transition function : Q ! Q is
used.
      </p>
      <p>Acceptance conditions. We describe the acceptance component F for different
types of !-automata. A run is an infinite sequence of states, starting from q0,
such that for every two successive states v; w there is a transition from v to w.
A word 2 ! is accepted by A iff there exists a run of A on such that
– (Büchi acceptance) Inf( ) \ F 6= ;, where F Q is a set of accepting states.
– (co-Büchi acceptance) Inf( ) \ F = ;, where F Q.
– (Rabin acceptance) 9(L; R) 2 F : (Inf( ) \ L = ;) ^ (Inf( ) \ R 6= ;), where</p>
      <p>F = f(L1; R1); : : : ; (Lk; Rk)g with Li; Ri Q.
– (Streett acceptance) 8(L; R) 2 F : (Inf( ) \ L 6= ;) _ (Inf( ) \ R = ;), where</p>
      <p>F = f(L1; R1); : : : ; (Lk; Rk)g with Li; Ri Q.
– (Parity acceptance) minfF (q) j q 2 Inf( )g is even, where F : Q !
f1; : : : ; kg is a mapping from states to priorities.
– (Muller acceptance) Inf( ) 2 F , where F 2Q is a collection of accepting
sets of states.</p>
      <p>Here, Inf( ) denotes the set of states that is visited infinitely often in the run
. Fig. 1 illustrates a Büchi automaton, where f is an accepting state and a !
b ! c ! f ! e ! d ! b ! : : : is an accepting cycle.</p>
      <p>
        Generalized and transition-based acceptance. Conjunctions of multiple Büchi
Automata (BA) can also be described with Generalized Büchi Automata (GBA). A
GBA considers a set of multiple acceptance conditions, meaning that a run is
accepting iff all acceptance conditions are visited infinitely often. Another variant is
the Transition-based Büchi Automata (TBA) with acceptance on edges instead
of states and the combination is called a Transition-based Generalized Büchi
Automata (TGBA). Such generalized variants of automata can significantly
reduce the state-space, though tracking acceptance becomes more involved. We
observed that using a TGBA instead of a BA does not necessarily lead to better
model checking performance in practice [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>
        One-player automata. As already mentioned in Section 1, efficient parallel
solutions exist for the reachability problem [
        <xref ref-type="bibr" rid="ref1 ref11">1,11</xref>
        ] and the accepting cycle
problem [
        <xref ref-type="bibr" rid="ref16 ref3 ref7">7,16,3</xref>
        ] (or Büchi acceptance). Recently, a GPU algorithm for model
checking Rabin automata was presented [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Streett acceptance is somewhat related
to fairness detection, a problem for which existing work is present in a
parallel setting [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. For other acceptance conditions no existing work on parallel
algorithms seems to exist.
      </p>
      <p>
        Two-player and stochastic automata. Interestingly, in a 2-player context there
is plentiful work on solving Parity acceptance (Parity games) sequentially, but
related work also includes a few parallel solutions [
        <xref ref-type="bibr" rid="ref15 ref9">15,9</xref>
        ]. To the best of our
knowledge, no parallel algorithms exist for the remaining automata. Wijs et
al. [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] present a solution for MEC decomposition on GPUs, a core problem in
stochastic model checking (which also relates to Büchi games).
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Current and Future Work</title>
      <p>
        Approach. (On-the-fly) SCC detection forms a basis for emptiness checking
algorithms. Our plan is to apply our parallel on-the-fly SCC algorithm [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and
related ‘building blocks’ in detecting the various acceptance conditions. We use
these building blocks to parallelize existing techniques, and e.g. in the case of
Parity games improve existing work by applying various novel optimizations.
Evaluation. We evaluate the performance and scalability of our algorithms (1)
theoretically, using appropriate notions of complexity analysis and (2)
empirically, by performing experiments on existing publicly available benchmark suites
(e.g. the BEEM [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] database and experiments from the Model Checking
Contest [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]) and comparing with related work. We relate this to the original
properties to compare different acceptance conditions.
      </p>
      <p>
        Current stage of research. Currently, one of the four years of the PhD has passed.
We have published two papers, one presents the SCC algorithm [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and another
that applies the algorithm for LTL checking with Büchi automata [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. We also
obtained a first place for LTL checking in the 2016 Model Checking Contest [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
We are currently investigating Rabin and Streett acceptance.
      </p>
      <p>Acknowledgements. We thank the anonymous reviewers for their helpful
comments. This work is supported by the 3TU.BSR project.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Barnat</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brim</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rockai</surname>
            ,
            <given-names>P.:</given-names>
          </string-name>
          <article-title>DiVinE 2.0: High-Performance Model Checking</article-title>
          .
          <source>In: Proceedings of the 2009 International Workshop on High Performance Computational Systems Biology</source>
          . pp.
          <fpage>31</fpage>
          -
          <lpage>32</lpage>
          . HIBI '09, IEEE Computer Society (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bloemen</surname>
          </string-name>
          , V.:
          <article-title>On-The-Fly Parallel Decomposition of Strongly Connected Components</article-title>
          .
          <source>Master's thesis</source>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bloemen</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laarman</surname>
          </string-name>
          , A., van de Pol, J.:
          <article-title>Multi-core On-the-fly SCC Decomposition</article-title>
          .
          <source>In: Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming</source>
          . pp.
          <volume>8</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          :
          <fpage>12</fpage>
          . PPoPP '16,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bloemen</surname>
          </string-name>
          , V., van de Pol, J.:
          <article-title>Multi-core SCC-based LTL Model Checking</article-title>
          . In: Haifa Verification Conference. Springer (
          <year>2016</year>
          ), to appear.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Chatterjee</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Henzinger</surname>
            ,
            <given-names>T.A.</given-names>
          </string-name>
          :
          <article-title>A Survey of Stochastic !-regular Games</article-title>
          .
          <source>Journal of Computer and System Sciences</source>
          <volume>78</volume>
          (
          <issue>2</issue>
          ),
          <fpage>394</fpage>
          -
          <lpage>413</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>E.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Emerson</surname>
            ,
            <given-names>E.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sistla</surname>
            ,
            <given-names>A.P.</given-names>
          </string-name>
          :
          <article-title>Automatic Verification of Finite-state Concurrent Systems Using Temporal Logic Specifications</article-title>
          .
          <source>ACM Transactions on Programming Languages and Systems</source>
          <volume>8</volume>
          (
          <issue>2</issue>
          ),
          <fpage>244</fpage>
          -
          <lpage>263</lpage>
          (
          <year>1986</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Evangelista</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laarman</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Petrucci</surname>
          </string-name>
          , L., van de Pol, J.:
          <article-title>Improved Multi-Core Nested Depth-First Search</article-title>
          . In: Chakraborty,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Mukund</surname>
          </string-name>
          , M. (eds.)
          <source>Automated Technology for Verification and Analysis</source>
          , pp.
          <fpage>269</fpage>
          -
          <lpage>283</lpage>
          . Lecture Notes in Computer Science, Springer Berlin Heidelberg (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Grädel</surname>
          </string-name>
          , E.,
          <string-name>
            <surname>Thomas</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wilke</surname>
          </string-name>
          , T. (eds.): Automata Logics, and Infinite Games: A Guide to Current Research. Springer-Verlag (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Hoffmann</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Luttenberger</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Solving Parity Games on the GPU</article-title>
          . In: Van Hung,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Ogawa</surname>
          </string-name>
          , M. (eds.)
          <source>Automated Technology for Verification and Analysis, Lecture Notes in Computer Science</source>
          , vol.
          <volume>8172</volume>
          , pp.
          <fpage>455</fpage>
          -
          <lpage>459</lpage>
          . Springer International Publishing (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Kordon</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garavel</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hillah</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hulin-Hubard</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chiardo</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hamez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jezequel</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miner</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meijer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paviot-Adet</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Racordon</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rodriguez</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rohr</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Srba</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thierry-Mieg</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tri</surname>
          </string-name>
          .nh, G.,
          <string-name>
            <surname>Wolf</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Complete Results for the 2016 Edition of the Model Checking Contest (</article-title>
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Laarman</surname>
          </string-name>
          , A., van de Pol, J.,
          <string-name>
            <surname>Weber</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Boosting Multi-core Reachability Performance with Shared Hash Tables</article-title>
          .
          <source>In: Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design</source>
          . pp.
          <fpage>247</fpage>
          -
          <lpage>256</lpage>
          . FMCAD '
          <volume>10</volume>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sun</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dong</surname>
          </string-name>
          , J.:
          <article-title>Scalable Multi-core Model Checking Fairness Enhanced Systems</article-title>
          . In: Breitman,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Cavalcanti</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.)
          <source>Formal Methods and Software Engineering, Lecture Notes in Computer Science</source>
          , vol.
          <volume>5885</volume>
          , pp.
          <fpage>426</fpage>
          -
          <lpage>445</lpage>
          . Springer Berlin Heidelberg (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Lowe</surname>
          </string-name>
          , G.:
          <article-title>Concurrent depth-first search algorithms based on Tarjan's Algorithm</article-title>
          .
          <source>International Journal on Software Tools for Technology</source>
          Transfer pp.
          <fpage>1</fpage>
          -
          <lpage>19</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Pelánek</surname>
          </string-name>
          , R.:
          <source>BEEM: Benchmarks for Explicit Model Checkers</source>
          , pp.
          <fpage>263</fpage>
          -
          <lpage>267</lpage>
          . Springer Berlin Heidelberg (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. van de Pol, J.,
          <string-name>
            <surname>Weber</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A Multi-Core Solver for Parity Games</article-title>
          .
          <source>Electronic Notes in Theoretical Computer Science</source>
          <volume>220</volume>
          (
          <issue>2</issue>
          ),
          <fpage>19</fpage>
          -
          <lpage>34</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Renault</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Duret-Lutz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kordon</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Poitrenaud</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>Variations on parallel explicit emptiness checks for generalized Büchi automata</article-title>
          .
          <source>International Journal on Software Tools for Technology</source>
          Transfer pp.
          <fpage>1</fpage>
          -
          <lpage>21</lpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Wijs</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>BFS-Based Model Checking of Linear-Time Properties with an Application on GPUs</article-title>
          , pp.
          <fpage>472</fpage>
          -
          <lpage>493</lpage>
          . Springer International Publishing (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Wijs</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Katoen</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bošnački</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>GPU-Based Graph Decomposition into Strongly Connected and Maximal End Components</article-title>
          . In: Biere,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Bloem</surname>
          </string-name>
          ,
          <string-name>
            <surname>R</surname>
          </string-name>
          . (eds.)
          <source>Computer Aided Verification, Lecture Notes in Computer Science</source>
          , vol.
          <volume>8559</volume>
          , pp.
          <fpage>310</fpage>
          -
          <lpage>326</lpage>
          . Springer International Publishing (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>