<!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>
      <journal-title-group>
        <journal-title>Workshop on Artificial Intelligence and Formal Verification, Logic, Automata, and Synthesis,
September</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>BLACK: A Fast, Flexible and Reliable LTL Satisfiability Checker</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Luca Geatti</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nicola Gigante</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Angelo Montanari</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Fondazione Bruno Kessler</institution>
          ,
          <addr-line>Trento</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Free University of Bozen-Bolzano</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Udine</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <volume>22</volume>
      <issue>2021</issue>
      <fpage>0000</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>BLACK, short for Bounded Ltl sAtisfiability ChecKer , is a recently developed software tool for satisfiability checking of Linear Temporal Logic (LTL) formulas. It supports formulas using both future and past operators, interpreted over both infinite and finite traces. At its core, BLACK uses an incremental SAT encoding of the one-pass tree-shaped tableau for LTL recently developed by Reynolds, which guarantees completeness thanks to its particular pruning rule. This paper gives an overview of the tool, surveys the main design choices underlying its implementation, describes its features and discusses potential future developments.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Linear Temporal Logic</kwd>
        <kwd>SAT</kwd>
        <kwd>Tableaux methods</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Linear Temporal Logic (LTL) is the de-facto standard modeling language for temporal properties
of reactive systems, both in formal verification and artificial intelligence. It is a modal logic
usually interpreted over infinite state sequences, but the finite-trace semantics has recently
gained attention as well [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ].
      </p>
      <p>
        One of the most important tasks performed on LTL formulas, and one of the first to have
been studied [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ], is satisfiability checking , i.e., checking whether there exists a model of
a given formula. Satisfiability checking is important in many applications, from automated
planning [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] to sanity checking of specifications [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Many techniques have been developed
over the years to solve the problem, ranging from tableau systems [
        <xref ref-type="bibr" rid="ref4 ref7 ref8">4, 7, 8</xref>
        ] to reduction to model
checking [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], from temporal resolution [
        <xref ref-type="bibr" rid="ref10 ref11 ref12">10, 11, 12</xref>
        ] to automata-theoretic techniques [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. In
particular, tableau methods are useful both as a theoretical tool and as an efective solving
technique. Classic tableau methods are graph shaped [
        <xref ref-type="bibr" rid="ref4 ref7">4, 7</xref>
        ], since they create a graph structure
that is then traversed in a second pass to find suitable models for the formula. In contrast, some
one-pass tableaux methods have been proposed by Schwendimann [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and, more recently,
by Reynolds [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The latter in particular is purely tree-shaped, as each branch of the tree is
independently expanded and accepted or rejected in a single pass. Thanks to this feature, it
has been proven to be eficiently implementable [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and easily parallelizable [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. Moreover,
its modular structure allowed it to be extended to diferent logics, in particular LTL with
past operators [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and real-time extensions of LTL such as Timed Propositional Temporal Logic
(TPTL) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>
        BLACK, short for Bounded Ltl sAtisfiability ChecKer , is a recently developed software tool
for satisfiability checking of LTL formulas, based on an incremental SAT encoding of Reynolds’
tableau [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Given an LTL formula , the tool encodes in a SAT formula the tableau for 
up to depth , for increasing values of , until an accepted branch is found or a witness of
unsatisfiability is detected. In contrast to similar approaches à la bounded model checking, the
algorithm underlying BLACK is complete even without computing any completeness threshold,
thanks to the SAT encoding of the pruning rule of Reynolds’tableau. The modularity of Reynolds’
tableau transfers to its SAT encoding. Thanks to this, BLACK is able to support both future
and past temporal operators [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], and formulas interpreted both on finite and infinite traces,
with minimal changes to the underlying encoding. Thanks to the direct relationship between
tableau branches and models of the formula, BLACK easily supports the extraction of a model
for satisfiable formulas. Experimental evaluations performed against other state-of-the-art tools
show BLACK competitive performance and low memory consumption [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>
        From an engineering point of view, BLACK has been designed and developed with speed,
stability, flexibility and portability as primary goals. It is implemented as a shared library,
with a well-defined API, that can be invoked in client applications, with the tool itself being
a simple command-line wrapper over the library. As the underlying SAT solver, it supports a
variety of backends, such as MathSAT [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], Z3 [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], MiniSAT [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] and CryptoMiniSAT [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ].
The tool and the library are multi-platform, with support for Linux, Windows, and macOS, with
easy-to-install binary packages available for all platforms.1
      </p>
      <p>In the rest of the paper, we further describe the tool and its features, we overview its
underlying algorithm and its design and implementation choices. Then, we discuss possible future
developments.</p>
    </sec>
    <sec id="sec-2">
      <title>2. The SAT encoding of Reynolds tableau</title>
      <p>
        BLACK’s algorithm for satisfiability checking is depicted in Fig. 1. At each iteration, for
increasing values of , the encoding of the tableau up to depth  is tested to either find (the
encoding of) a suitable accepted branch, or a witness of unsatisfiability ( i.e., the encoding of
a tableau with only rejected branches). An example tableau for the formula G F( ∧ X ¬) is
shown in Fig. 2. The formulas JK, ||, and || encode the tableau up to depth  in diferent
ways. For a complete definition of the encoding we refer the reader to Geatti et al. [
        <xref ref-type="bibr" rid="ref19 ref20">19, 20</xref>
        ]. Here,
we state the main properties of such formulas, in order to understand the algorithm in Fig. 1.
      </p>
      <p>Given an LTL formula , the formula JK is the -unraveling of . It represents the expansion
of the tableau tree up to depth . Intuitively, if JK is unsatisfiable, all the branches of the
tableau are rejected by propositional contradictions before depth  + 1, and vice versa.
1BLACK can be downloaded from https://github.com/black-sat/black
1: procedure BLACK()
2:  ← 0
3: while True do
4: if JK is UNSAT then
5: return  is UNSAT
6: end if
7: if || is SAT then
8: return  is SAT
9: end if
10: if || is UNSAT then
11: return  is UNSAT
12: end if
13:  ←  + 1
14: end while
15: end procedure
{G F( ∧ X ¬)}
{F( ∧ X ¬), X G F( ∧ X ¬)}
. . .</p>
      <p>{, X ¬, X G F( ∧ X ¬)}</p>
      <p>{¬, G F( ∧ X ¬)}
{¬, , X ¬, . . .} {¬, X F( ∧ X ¬), X G F( ∧ ¬)}
✗
{F( ∧ X ¬), G F( ∧ X ¬)}
Lemma 1. Let  be an LTL formula. Then, JK is unsatisfiable if and only if all the branches of
the complete tableau for  are crossed by propositional contradictions before depth  + 1.</p>
      <p>The formula || is called the base encoding of , and includes the -unraveling conjuncted
with additional clauses that represent the acceptance conditions of tableau branches. Hence, if
|| results satisfiable, we found at least one accepted branch.</p>
      <p>Lemma 2. Let  be an LTL formula. If the complete tableau for  contains an accepted branch
of depth  + 1, then || is satisfiable.</p>
      <p>Lemma 3. Let  be an LTL formula. If || is satisfiable then the complete tableau for  contains
an accepted branch.</p>
      <p>Finally, the || formula is called the termination encoding of . It consists in the -unraveling
conjuncted with additional clauses that represent the pruning rule of Reynolds’ tableau, i.e.,
the rule that reject branches that would otherwise be expanded forever trying to fulfill an
unfulfillable future request. This is, for instance, the case of the tableau for the formula G¬ ∧
 ¬. If the formula is unsatisfiable, the formula only contains rejected branches.
Lemma 4. Let  be an LTL formula. If || is unsatisfiable, then the complete tableau for 
contains only rejected branches.</p>
      <p>
        Together, these Lemmata allow us to prove the soundness and completeness of the procedure.
See Geatti et al. [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] for the full proofs.
      </p>
      <p>Theorem 1 (Soundness and completeness). Let  be an LTL formula. The BLACK algorithm
always terminates and answers satisfiable on  if and only if  is satisfiable.</p>
      <p>
        As shown by Geatti et al. [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], the encoding can be easily extended to LTL+Past formulas,
i.e., LTL augmented with past operators. Furthermore, BLACK has been recently extended to
work on formulas interpreted over finite traces as well. This addition involves minimal changes
to the || formula, in order to not accept looping models.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Design and implementation</title>
      <p>BLACK has been written in C++17 with the goals of speed, low memory consumption and
stability. The latter requirement is particularly important given the types of applications of a
formal verification tool: the satisfiability checker must be trustable as much as possible. For
this reason, the development has been integrated from the start with a continuous integration
pipeline and an extensive test suite that achieve 100% code coverage. The result is a pretty solid
tool with no signs of memory errors, undefined behaviors and memory leaks.</p>
      <p>Integral part of the testing pipeline is the trace checking feature. Given a particular option,
BLACK can output the model of satisfiable formulas in JSON format. Besides being a useful
output format, this allows BLACK itself to parse its own output to check whether the given
state sequence is indeed a model of the given formula. Note that this task is much easier
than satisfiability checking, and it only involves a simple structural recursion on the formula
independent from BLACK’s solver. The trace checking is applied to the result of all the over
3300 formulas of the test suite, increasing the confidence in the correctness of the tool.</p>
      <p>As already mentioned, the tool is actually implemented as a thin wrapper over a shared library
that can be linked by any client application, increasing the flexibility of the tool. The library
provides facilities to create and parse LTL formulas, and, most importantly, to manipulate them
with a functional-style pattern matching mechanism. This drastically decreases the amount of
code required to implement formulas transformations and to implement the SAT encoding itself.
Then, the library provides an abstraction layer over the available SAT solvers. This layer hides
the diferences between the backends, transforms the given formulas, if needed, in conjunctive
normal form, and invokes the SAT solver. BLACK’s solver, that implements the procedure
described in Section 2, is implemented on top of these facilities. Thus, besides satisfiability
checking, the BLACK library can provide a useful basis for other types of applications that
involve the manipulation of LTL formulas or the use of SAT solvers.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusions and future developments</title>
      <p>
        We briefly described BLACK, a satisfiability checker for LTL formulas based on the SAT encoding
of the one-pass tree-shaped tableau by Reynolds [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>Many future developments are possible, both in terms of increased performance and additional
functionalities. On the performance side, a promising development is the parallelization of the
solver. Work is in progress to find a suitable way to exploit multiple processing cores. Other
optimizations such as the improvement of the CNF generation are possible.</p>
      <p>
        An important additional feature would be the support of the model checking task in addition
to satisfiability checking. This may concretely consist in the support of a subset of NuXmv [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]
modeling language with LTL specifications, with the model checking problem reduced to
satisfiability in the standard way. Additional algorithms such as IC3 [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] can be implemented
to provide a portfolio of techniques to better suite any given scenario.
      </p>
      <p>
        Lastly, BLACK can conceivably be augmented to support extensions of LTL. As an example, an
extension of Reynolds’ tableau exists for the real-time TPTL logic [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], and work is in progress
to extend it to the monodic two-variable fragment of first-order LTL as well [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>G.</given-names>
            <surname>De Giacomo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Vardi</surname>
          </string-name>
          ,
          <article-title>Linear temporal logic and linear dynamic logic on finite traces</article-title>
          , in: F. Rossi (Ed.),
          <source>Proceedings of the 23rd International Joint Conference on Artificial Intelligence, IJCAI/AAAI</source>
          ,
          <year>2013</year>
          , pp.
          <fpage>854</fpage>
          -
          <lpage>860</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>G.</given-names>
            <surname>De Giacomo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Vardi</surname>
          </string-name>
          ,
          <article-title>Synthesis for LTL and LDL on finite traces</article-title>
          , in: Q.
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>M. J.</given-names>
          </string-name>
          <string-name>
            <surname>Wooldridge</surname>
          </string-name>
          (Eds.),
          <source>Proceedings of the Twenty-Fourth International Joint Conference on Artificial Intelligence</source>
          , AAAI Press,
          <year>2015</year>
          , pp.
          <fpage>1558</fpage>
          -
          <lpage>1564</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A. P.</given-names>
            <surname>Sistla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. M.</given-names>
            <surname>Clarke</surname>
          </string-name>
          ,
          <article-title>The Complexity of Propositional Linear Temporal Logics</article-title>
          ,
          <source>Journal of ACM</source>
          <volume>32</volume>
          (
          <year>1985</year>
          )
          <fpage>733</fpage>
          -
          <lpage>749</lpage>
          . doi:
          <volume>10</volume>
          .1145/3828.3837.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>P.</given-names>
            <surname>Wolper</surname>
          </string-name>
          , Temporal Logic Can Be More Expressive,
          <source>Information and Control</source>
          <volume>56</volume>
          (
          <year>1983</year>
          )
          <fpage>72</fpage>
          -
          <lpage>99</lpage>
          . doi:
          <volume>10</volume>
          .1016/S0019-
          <volume>9958</volume>
          (
          <issue>83</issue>
          )
          <fpage>80051</fpage>
          -
          <lpage>5</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Mayer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Limongelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Orlandini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Poggioni</surname>
          </string-name>
          ,
          <article-title>Linear temporal logic as an executable semantics for planning languages</article-title>
          ,
          <source>Journal of Logic, Language and Information</source>
          <volume>16</volume>
          (
          <year>2007</year>
          )
          <fpage>63</fpage>
          -
          <lpage>89</lpage>
          . doi:
          <volume>10</volume>
          .1007/s10849-006-9022-1.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>K. Y.</given-names>
            <surname>Rozier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Vardi</surname>
          </string-name>
          ,
          <article-title>LTL satisfiability checking</article-title>
          ,
          <source>Int. J. Softw. Tools Technol. Transf</source>
          .
          <volume>12</volume>
          (
          <year>2010</year>
          )
          <fpage>123</fpage>
          -
          <lpage>137</lpage>
          . URL: https://doi.org/10.1007/s10009-010-0140-3. doi:
          <volume>10</volume>
          .1007/ s10009-010-0140-3.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>O.</given-names>
            <surname>Lichtenstein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pnueli</surname>
          </string-name>
          , Propositional Temporal Logics: Decidability and Completeness,
          <source>Logic Journal of the IGPL 8</source>
          (
          <year>2000</year>
          )
          <fpage>55</fpage>
          -
          <lpage>85</lpage>
          . doi:
          <volume>10</volume>
          .1093/jigpal/8.1.55.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <article-title>A New Rule for LTL Tableaux</article-title>
          ,
          <source>in: Proc. of the 7th International Symposium on Games, Automata, Logics and Formal Verification</source>
          , volume
          <volume>226</volume>
          <source>of EPTCS</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>287</fpage>
          -
          <lpage>301</lpage>
          . doi:
          <volume>10</volume>
          .4204/EPTCS.226.20.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>R.</given-names>
            <surname>Cavada</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cimatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dorigatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Griggio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mariotti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Micheli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mover</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roveri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tonetta</surname>
          </string-name>
          ,
          <article-title>The nuXmv Symbolic Model Checker</article-title>
          , in: Computer Aided Verification, Springer,
          <year>2014</year>
          , pp.
          <fpage>334</fpage>
          -
          <lpage>342</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -08867-9_
          <fpage>22</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>U.</given-names>
            <surname>Hustadt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Konev</surname>
          </string-name>
          , TRP++
          <article-title>2.0: A temporal resolution prover</article-title>
          ,
          <source>in: Proc. of the 19th International Conference on Automated Deduction</source>
          , volume
          <volume>2741</volume>
          <source>of LNCS</source>
          , Springer,
          <year>2003</year>
          , pp.
          <fpage>274</fpage>
          -
          <lpage>278</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -45085-6_
          <fpage>21</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fisher</surname>
          </string-name>
          ,
          <article-title>A normal form for temporal logics and its applications in theorem-proving and execution</article-title>
          ,
          <source>Journal of Logic and Computation</source>
          <volume>7</volume>
          (
          <year>1997</year>
          )
          <fpage>429</fpage>
          -
          <lpage>456</lpage>
          . doi:
          <volume>10</volume>
          .1093/logcom/7. 4.429.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fisher</surname>
          </string-name>
          ,
          <article-title>A resolution method for temporal logic</article-title>
          , in: J.
          <string-name>
            <surname>Mylopoulos</surname>
          </string-name>
          , R. Reiter (Eds.),
          <source>Proceedings of the 12th International Joint Conference on Artificial Intelligence</source>
          , Morgan Kaufmann,
          <year>1991</year>
          , pp.
          <fpage>99</fpage>
          -
          <lpage>104</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Yao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Pu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , J. He,
          <article-title>Aalta: an LTL satisfiability checker over infinite/finite traces</article-title>
          , in: S. Cheung,
          <string-name>
            <given-names>A.</given-names>
            <surname>Orso</surname>
          </string-name>
          , M. D. Storey (Eds.),
          <source>Proc. of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering</source>
          , ACM,
          <year>2014</year>
          , pp.
          <fpage>731</fpage>
          -
          <lpage>734</lpage>
          . doi:
          <volume>10</volume>
          .1145/2635868.2661669.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Schwendimann</surname>
          </string-name>
          ,
          <article-title>A new one-pass tableau calculus for PLTL</article-title>
          ,
          <source>in: Proc. of the 7th International Conference on Automated Reasoning with Analytic Tableaux and Related Methods</source>
          , volume
          <volume>1397</volume>
          <source>of LNCS</source>
          , Springer,
          <year>1998</year>
          , pp.
          <fpage>277</fpage>
          -
          <lpage>292</lpage>
          . doi:
          <volume>10</volume>
          .1007/3-540-69778-0\_
          <fpage>28</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Bertello</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Gigante</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Montanari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <article-title>Leviathan: A new LTL satisfiability checking tool based on a one-pass tree-shaped tableau</article-title>
          ,
          <source>in: Proc. of the 25th International Joint Conference on Artificial Intelligence</source>
          , IJCAI/AAAI Press,
          <year>2016</year>
          , pp.
          <fpage>950</fpage>
          -
          <lpage>956</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>J. C. McCabe-Dansted</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <article-title>A parallel linear temporal logic tableau</article-title>
          , in: P.
          <string-name>
            <surname>Bouyer</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Orlandini</surname>
          </string-name>
          , P. S. Pietro (Eds.),
          <source>Proc. of the 8th International Symposium on Games, Automata, Logics and Formal Verification</source>
          , volume
          <volume>256</volume>
          <source>of EPTCS</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>166</fpage>
          -
          <lpage>179</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>N.</given-names>
            <surname>Gigante</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Montanari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <article-title>A one-pass tree-shaped tableau for LTL+Past</article-title>
          , in
          <source>: Proc. of 21st International Conference on Logic for Programming</source>
          ,
          <source>Artificial Intelligence and Reasoning</source>
          , volume
          <volume>46</volume>
          of EPiC Series in Computing,
          <year>2017</year>
          , pp.
          <fpage>456</fpage>
          -
          <lpage>473</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>L.</given-names>
            <surname>Geatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Gigante</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Montanari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <article-title>One-pass and tree-shaped tableau systems for TPTL and TPTLb+Past, Inf</article-title>
          . Comput.
          <volume>278</volume>
          (
          <year>2021</year>
          )
          <article-title>104599</article-title>
          . URL: https://doi.org/ 10.1016/j.ic.
          <year>2020</year>
          .
          <volume>104599</volume>
          . doi:
          <volume>10</volume>
          .1016/j.ic.
          <year>2020</year>
          .
          <volume>104599</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>L.</given-names>
            <surname>Geatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Gigante</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Montanari</surname>
          </string-name>
          ,
          <article-title>A SAT-Based encoding of the one-pass and treeshaped tableau system for LTL</article-title>
          , in: S. Cerrito,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Popescu (Eds.),
          <source>Proceedings of the 28th International Conference on Automated Reasoning with Analytic Tableaux and Related Methods</source>
          , volume
          <volume>11714</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2019</year>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>20</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -29026-9\_1.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>L.</given-names>
            <surname>Geatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Gigante</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Montanari</surname>
          </string-name>
          , G. Venturato,
          <article-title>Past matters: Supporting LTL+Past in the BLACK satisfiability checker</article-title>
          ,
          <source>in: Proceedings of the 28th International Symposium on Temporal Representation and Reasoning</source>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>A.</given-names>
            <surname>Cimatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Griggio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. J.</given-names>
            <surname>Schaafsma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <article-title>The MathSAT5 SMT solver</article-title>
          , in: N.
          <string-name>
            <surname>Piterman</surname>
            ,
            <given-names>S. A.</given-names>
          </string-name>
          <string-name>
            <surname>Smolka</surname>
          </string-name>
          (Eds.),
          <source>Proceedings of the 19th International Conference on Tools and Algorithms for the Construction and Analysis of Systems</source>
          , volume
          <volume>7795</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2013</year>
          , pp.
          <fpage>93</fpage>
          -
          <lpage>107</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -36742-7\_7.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>L. M. de Moura</surname>
          </string-name>
          , N. Bjørner,
          <article-title>Z3: an eficient SMT solver</article-title>
          , in: C. R. Ramakrishnan, J. Rehof (Eds.),
          <source>Proceedings of the 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems</source>
          , volume
          <volume>4963</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2008</year>
          , pp.
          <fpage>337</fpage>
          -
          <lpage>340</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -78800-3\_
          <fpage>24</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>N.</given-names>
            <surname>Eén</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Sörensson</surname>
          </string-name>
          ,
          <article-title>An extensible sat-solver</article-title>
          ,
          <source>in: Selected Revised Papers of the 6th International Conference on Theory and Applications of Satisfiability Testing</source>
          ,
          <year>2003</year>
          , pp.
          <fpage>502</fpage>
          -
          <lpage>518</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -24605-3\_
          <fpage>37</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>M.</given-names>
            <surname>Soos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Nohl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Castelluccia</surname>
          </string-name>
          ,
          <article-title>Extending SAT solvers to cryptographic problems</article-title>
          , in: O.
          <string-name>
            <surname>Kullmann</surname>
          </string-name>
          (Ed.),
          <source>Proceedings of the 12th International Conference on Theory and Applications of Satisfiability Testing</source>
          , volume
          <volume>5584</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2009</year>
          , pp.
          <fpage>244</fpage>
          -
          <lpage>257</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -02777-2_
          <fpage>24</fpage>
          . doi:
          <volume>10</volume>
          . 1007/978-3-
          <fpage>642</fpage>
          -02777-2\_
          <fpage>24</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>A. R.</given-names>
            <surname>Bradley</surname>
          </string-name>
          ,
          <article-title>Sat-based model checking without unrolling</article-title>
          , in: R.
          <string-name>
            <surname>Jhala</surname>
            ,
            <given-names>D. A.</given-names>
          </string-name>
          <string-name>
            <surname>Schmidt</surname>
            (Eds.), Verification,
            <given-names>Model</given-names>
          </string-name>
          <string-name>
            <surname>Checking</surname>
          </string-name>
          , and
          <string-name>
            <surname>Abstract</surname>
          </string-name>
          Interpretation - 12th International Conference, VMCAI 2011, Austin, TX, USA, January
          <volume>23</volume>
          -
          <issue>25</issue>
          ,
          <year>2011</year>
          . Proceedings, volume
          <volume>6538</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2011</year>
          , pp.
          <fpage>70</fpage>
          -
          <lpage>87</lpage>
          . URL: https://doi.org/ 10.1007/978-3-
          <fpage>642</fpage>
          -18275-
          <issue>4</issue>
          _7. doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -18275-4\_7.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>R.</given-names>
            <surname>Kontchakov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lutz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Wolter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zakharyaschev</surname>
          </string-name>
          , Temporalising tableaux,
          <source>Stud Logica</source>
          <volume>76</volume>
          (
          <year>2004</year>
          )
          <fpage>91</fpage>
          -
          <lpage>134</lpage>
          . doi:
          <volume>10</volume>
          .1023/B:STUD.
          <volume>0000027468</volume>
          .28935.
          <year>6d</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>