<!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,
November</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Forward LTL Synthesis: DPLL At Work</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Marco Favorito</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Banca d'Italia</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Italy</string-name>
        </contrib>
      </contrib-group>
      <pub-date>
        <year>2023</year>
      </pub-date>
      <volume>7</volume>
      <issue>2023</issue>
      <fpage>0000</fpage>
      <lpage>0001</lpage>
      <abstract>
        <p>We present a forward-search-based approach for specifications expressed in Linear Temporal Logic on finite traces ( ltl ). We exploit the observation that the DFA game arena coming from the ltl can be seen as an AND-OR graph. The idea is that for many problem instances the solution can be found without computing the whole game arena, as done by the classical backward ltl synthesis approach. The procedure, implemented in the tool Nike, is a depth-first AND-OR graph search based on two primitives: state-equivalence checking and search node expansion. State-equivalence checking is based on syntactic equivalence and knowledge compilation techniques, whereas search node expansion is based on a procedure inspired by the famous Davis-Putnam-Logemann-Loveland (DPLL) algorithm. Nike won the ltl Realizability Track in the 2023 edition of SYNTCOMP.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Linear temporal logic on finite traces</kwd>
        <kwd>LTL  Synthesis</kwd>
        <kwd>AND-OR Graph Search</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Program synthesis is the task of finding a program that provably satisfies a given high-level
formal specification [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. A commonly used logic for program synthesis is Linear Temporal Logic
(ltl) [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ], typically used also in model checking [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. ltl on finite traces (ltl ) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], a variant of
ltl to specify finite -horizon temporal properties, has been recently proposed as specification
language for temporal synthesis [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The ltl synthesis setting considers a set of variables
controllable by the agent, a (disjoint) set of variables controlled by the environment, and a ltl
specification that specifies which finite traces over such variables are desirable. The problem
of ltl synthesis consists in finding a finite-state controller that, at every time step, given the
values of the environment variables in the history so far, sets the next values for each agent
proposition such that the generated traces comply with the ltl specification.
      </p>
      <p>
        The basic technique for solving ltl synthesis amounts to constructing a deterministic finite
automaton (dfa) corresponding to the ltl specification, and then considering it as a game
arena where the agent tries to get to an accepting state regardless of the environment’s moves.
A winning strategy, i.e. a finite controller returned by the procedure, can be obtained through a
backward fixpoint computation for adversarial reachability of the dfa accepting state.
Stateof-the-art tools such as Lydia [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and Lisa [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] are based on the classical approach. The main
drawback of this technique is that it requires to compute the entire dfa of the ltl specification,
which in the worst case can be doubly exponential in the size of the formula. Therefore, the
dfa construction step becomes the main bottleneck.
      </p>
      <p>
        A natural idea is to consider a forward search approach that expands the arena on-the-fly
while searching for a solution, possibly avoiding the construction of the entire arena.
Forwardbased approaches are at the core of the best solution methods designed for other AI problems:
Planning with fully observable non-deterministic domains (FOND) [
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref9">9, 10, 11, 12</xref>
        ], where the
agent has to reach the goal, despite that the environment may choose adversarially the efects
of the agent actions, and Planning in partially observable nondeterministic domains (POND),
also known as contingent planning, where the search procedure must be performed over the
belief-states [
        <xref ref-type="bibr" rid="ref13 ref14 ref15">13, 14, 15</xref>
        ]. However, techniques developed for such problems cannot be applied to
ours directly, which may result in a PDDL specification with exponential size e.g. see [
        <xref ref-type="bibr" rid="ref16 ref17">16, 17</xref>
        ].
      </p>
      <p>
        For these reasons, researchers have been looking into forward search techniques specifically
conceived for solving ltl synthesis, considering the DFA game as an AND-OR graph search.
Two notable attempts in this direction have been presented in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], proposing the tool Ltlfsyn,
and [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] with the tool Cynthia. Our work builds on top of them, by improving certain design
and implementation details, especially regarding the state-equivalence checking and the search
node expansion components, together with a Binary Decision Diagram (BDD)-based check
to achieve completeness when certain conditions are met. Nike uses a computationally-cheap
syntactical equivalence between state formulas, not used in previous works. Furthermore, a
novel search graph expansion technique is proposed, based on a procedure inspired by the
famous Davis-Putnam-Logemann-Loveland (DPLL) algorithm. As in [
        <xref ref-type="bibr" rid="ref18 ref19">18, 19</xref>
        ], the problem is
then reduced to an AND-OR graph search, where the OR nodes represent the agent’s choices,
and the AND nodes represent the environment’s choices. The search algorithm used is a classical
depth-first AND-OR graph search algorithm. The ltl synthesis problem is realizable if there
is a winning strategy for the corresponding AND-OR graph. More details can befound in [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
2. DPLL-based Forward ltl Synthesis
The Search Algorithm. Algorithm 1 describes the AND-OR search procedure that is at
the core of Nike. The algorithm is basically a top-down, depth-first traversal of the AND-OR
graph induced by the on-the-fly dfa construction, proceeding forward from the initial state,
and excluding strategies that lead to loops. The forward-based generation of the AND-OR
graph is based on formula progression and on an abstract GetArcs function that, taken in
input a search node , it produces the next available player moves and successor states. The
presence of loops must be carefully handled; when a loop is detected at node , the procedure
returns false, temporarily considering  as a failure node. Note that node  is not tagged as
failure, since it is unknown whether all the or-arcs of  are explored. If later during the search
 is discovered as a success node, such information must be propagated from  backwards to
the ancestor nodes of . It should be noted that, in a forward search on an AND-OR graph, it
is critical to handle loops with the assistance of this backward propagation, implemented in
BackProp (Line 28), as illustrated in [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. For more details on the search algorithm, please refer
to the original paper [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Overall, Algorithm 1 is very similar to the one used by [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], except that
instead of relying on the abstract Expand function (see Line 20 of Algorithm 1 of their paper),
our approach relies on two primitive operations: state-equivalence checking and search node
expansion. The state-equivalence check is used to check state equivalence, and it is implicitly
used in functions like InPath to detect loops. The search-node expansion is represented by
the generating function GetArcs and does not have to precompute all successors (Cynthia), or
slavishly enumerating all possible agent’s and env’s variables assignments (Ltlfsyn).
Algorithm 1 Forward ltl Synthesis State-Equivalence Checks. We now describe
1: function Synthesis( ) return strategy two state-equivalence checking approaches:
BDD2: if IsAccepting( ) then based and hash-consing based. The first one
34:: rAedtduTrnoSGtertaSttergayt(,egyt(r)ue) (BddBasedEqCheck) is that, for a search node ,
5: InitialGraph( ) we take its associated ltl formula  with
For6:  := GetGraphRoot() mulaOfNode (remember that search node is
as87:: iffoufonudn:d=tSheeanrrceht(ur,n∅)GetStrategy() sociated with an ltl formula). Then, we
com9: return EmptyStrategy() ◁  is unrealizable pute xnf( ), which is propositionally equivalent
10: function Search(, path) return True/False to  . Finally, we get its BDD representation, i.e.
1112:: iiff IIssSFauiclcuersesNNooddee(()) tthheenn rreettuurrnn TFarulsee  :=BddRepresentation(xnf( )). We do these
13: if InPath(, path) then ◁ We found a loop operations both for 1 and 2, yielding xnf( 1)
14: TagLoop() return False and xnf( 2). The equivalence check whether the
1156:: if I:=sAFcocremputilnagO(fN)othdee(n) two BDDs point to the same BDD node (xnf( 1)=
17: TagSuccessNode() xnf( 2)). If true, then it means, by the canonicity
18: AddToStrategy(, true) property of BDDs, that the associated
(proposition1290:: forr(etur,nATnrduNed) ∈GetArcs() do alized) formulas are propositionally equivalent.
21: for (, ) ∈GetArcs(AndNd) do The second check (HashConsingEqCheck) is
2223:: iffou¬nfdou:=ndSetahrecnhB(reak, [path|]) based on structural equivalence: two search nodes 1
24: if found then and 2 are considered equivalent if their formulas
222567::: iTAfadIgdsSTTuaocgScLteorsoasNtp(eogd)yet((h,e)n ) co1mapnadriso2nhfaavste, wtheecsaanmuesesyhnastahxcotnresein.Tgo[2m2a]kwehtihche
28: BackProp() is a technique used to share values that are
struc3209:: TagFairleutruerNnoTdreu(e) turally equal. Using hash consing, two formulas can
31: return False be stated as structurally equivalent if they point to
the same memory address, achieving constant time
equality check. Since this equivalence check is sound but not complete, to guarantee the
termination of this version of the search algorithm, we propose the following procedure: given a
synthesis problem, first execute Algorithm 1 with HashConsingEqCheck as equivalence check
and the search node expansion procedure (DpllGetArcs, see below). As soon as, during the
execution, the size of the formula of any generated search node becomes greater than a given
threshold , then abort the execution and resort to the search algorithm Algorithm 1 based on
BddBasedEqCheck and DpllGetArcs. Currently, we use a threshold  = 3 · |  |.
DPLL-based Search Node Expansion. Given a search node , our expansion node function
DpllGetArcs returns a generator over pairs (move, node), where move is a mapping from
variables to truth values (the absence of a variable is considered a don’t care), and node is a
ltl formula that, as required by ours and [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] search framework, represents a search node
(either AND or OR). Informally, an agent/environment move is found by picking a variable,
assigning a boolean value, and replacing the value to the state formula. The resulting formula
is processed again until there are no agent/environment variables. The overall assignment is
considered as the next move to explore, and the successor state is computed by applying formula
progression rules (See the function RmNext and Proposition 4 of [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]). Note that such kind
of procedure is suitable for our use-case because of their depth-first nature, which implies a
low-space requirement, and because of their "responsive" nature: a candidate move is proposed
in linear time on the number of variables (possibly better thanks to simplifications). Note that
DpllGetArcs abstract specification that can be customized by the way variables are chosen
and by which value is assigned to them first. In our tool, we consider them in alphabetical
order (as future work we aim to provide less naive and more meaningful orderings), and the
assignments strategies are three: True-First (i.e. the rfist assigment considered is always true),
False-First (i.e. the first assigment considered is always false), and random (i.e. the assignment
considered is random). Due to lack of space, we underspecified some details in the description
of the theory behind the tool, which can be found in [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
    </sec>
    <sec id="sec-2">
      <title>3. Implementation and Evaluation</title>
      <p>
        Our prototype implementation, Nike, is an
open-source tool implemented in C++11
(github.com/marcofavorito/nike). More
specifically, Nike uses Syfco to parse the
synthesis problems described in TLSF
format [23] to obtain the ltl specification and
the partition of agent/environment
propositions. Nike integrates the preprocessing
techniques presented in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] to perform
one-step realizability/unrealizability checks,
Figure 1: SYNTCOMP23 results for the ltl track. which is implemented using CUDD (see
below), at the beginning of the synthesis
procedure. If neither one-step check succeeds, the AND-OR search begins. The search algorithm
used by Nike is a recursive depth-first search algorithm, which is detailed below. Since the
procedure is correct and terminates, either the search procedure does not find a winning strategy,
in which case the answer to the ltl synthesis problem is “unrealizable”, or a winning strategy
is found, and therefore the outcome is “realizable”. We use n-ary trees with hash-consing for
representing the ltl formulas and performing the hash-based state-equivalence checking. The
BDD library CUDD-3.0.0 [24] instead is used for the BDD-based state-equivalence checking.
Figure 1 shows the experimental evaluation over benchmarks from the literature [25]. As can
be seen, Nike achieved the best performances among other competitive tools for ltl synthesis.
      </p>
    </sec>
    <sec id="sec-3">
      <title>4. Conclusion</title>
      <p>In this paper we presented the tool Nike, the best forward search ltl synthesis approach so
far, and the first that is truly competitive with the considered state-of-the-art tools based on
backward computation. We think this work sets the foundations for a new family of forward ltl
synthesis algorithms, and opens several research avenues for investigating efective branching
heuristics for the DPLL-based search graph expansion (e.g. non-chronological backtracking), or
better termination strategies for searching with hash-consing-based state-equivalence checking.</p>
    </sec>
    <sec id="sec-4">
      <title>Acknowledgements</title>
      <p>This line of research has started from earlier research work supported by the ERC-ADG
WhiteMech (No. 834228).
[23] S. Jacobs, G. A. Perez, P. Schlehuber-Caissier, The temporal logic synthesis format tlsf v1.2,
2023. arXiv:2303.03839.
[24] F. Somenzi, CUDD: CU Decision Diagram Package. Univ. of Colorado at Boulder (2016).
[25] G. Perez, SYNTCOMP 2023 Results | The Reactive Synthesis Competition, 2023. URL:
http://www.syntcomp.org/syntcomp-2023-results/.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Church</surname>
          </string-name>
          ,
          <article-title>Application of recursive arithmetic to the problem of circuit synthesis</article-title>
          ,
          <source>Journal of Symbolic Logic</source>
          <volume>28</volume>
          (
          <year>1963</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Pnueli</surname>
          </string-name>
          ,
          <article-title>The temporal logic of programs</article-title>
          , in: FOCS,
          <year>1977</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Pnueli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Rosner</surname>
          </string-name>
          ,
          <article-title>On the Synthesis of a Reactive Module</article-title>
          , in: POPL,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>C.</given-names>
            <surname>Baier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Katoen</surname>
          </string-name>
          , Principles of model checking,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <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: IJCAI,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <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: IJCAI,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>G.</given-names>
            <surname>De Giacomo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Favorito</surname>
          </string-name>
          ,
          <article-title>Compositional approach to translate LTL /LDL into deterministic finite automata</article-title>
          ,
          <source>in: ICAPS</source>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Bansal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Tabajara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Vardi</surname>
          </string-name>
          ,
          <article-title>Hybrid compositional reasoning for reactive synthesis from finite-horizon specifications</article-title>
          ,
          <source>in: AAAI</source>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ghallab</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Nau</surname>
          </string-name>
          , P. Traverso,
          <source>Automated planning - theory and practice</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>H.</given-names>
            <surname>Gefner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Bonet</surname>
          </string-name>
          ,
          <string-name>
            <surname>A Concise</surname>
          </string-name>
          <article-title>Introduction to Models and Methods for Automated Planning</article-title>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Cimatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roveri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Traverso</surname>
          </string-name>
          ,
          <article-title>Strong planning in non-deterministic domains via model checking</article-title>
          ,
          <source>in: AIPS</source>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>A.</given-names>
            <surname>Cimatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Pistore</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roveri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Traverso</surname>
          </string-name>
          , Weak, strong, and
          <article-title>strong cyclic planning via symbolic model checking</article-title>
          . 1-
          <fpage>2</fpage>
          (
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Reif</surname>
          </string-name>
          ,
          <article-title>The complexity of two-player games of incomplete information</article-title>
          ,
          <source>JCSS</source>
          <volume>29</volume>
          (
          <year>1984</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>R. P.</given-names>
            <surname>Goldman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. S.</given-names>
            <surname>Boddy</surname>
          </string-name>
          ,
          <article-title>Expressive planning and explicit knowledge</article-title>
          ,
          <source>in: AIPS</source>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bertoli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cimatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roveri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Traverso</surname>
          </string-name>
          ,
          <article-title>Strong planning under partial observability</article-title>
          ,
          <source>Artif. Intell</source>
          .
          <volume>170</volume>
          (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Camacho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Baier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. J.</given-names>
            <surname>Muise</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. A.</given-names>
            <surname>McIlraith</surname>
          </string-name>
          ,
          <string-name>
            <surname>Finite LTL</surname>
          </string-name>
          <article-title>Synthesis as Planning</article-title>
          , in: ICAPS,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Camacho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. A.</given-names>
            <surname>McIlraith</surname>
          </string-name>
          ,
          <article-title>Strong fully observable non-deterministic planning with LTL and LTL goals</article-title>
          , in: IJCAI,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>S.</given-names>
            <surname>Xiao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Shi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Pu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Vardi</surname>
          </string-name>
          ,
          <article-title>On-the-fly synthesis for LTL over finite traces</article-title>
          ,
          <source>in: AAAI</source>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>G. De Giacomo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Favorito</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>M. Y.</given-names>
          </string-name>
          <string-name>
            <surname>Vardi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Xiao</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Zhu</surname>
          </string-name>
          ,
          <article-title>Ltlf synthesis as AND-OR graph search: Knowledge compilation at work</article-title>
          ,
          <source>in: IJCAI</source>
          ,
          <year>2022</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>M.</given-names>
            <surname>Favorito</surname>
          </string-name>
          , Forward ltlf synthesis: Dpll at work,
          <source>arXiv preprint arXiv:2302.13825</source>
          (
          <year>2023</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>M. G.</given-names>
            <surname>Scutellà</surname>
          </string-name>
          ,
          <article-title>A note on dowling and gallier's top-down algorithm for propositional horn satisfiability</article-title>
          ,
          <source>J. Log. Program. 8</source>
          (
          <year>1990</year>
          )
          <fpage>265</fpage>
          -
          <lpage>273</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>L. P.</given-names>
            <surname>Deutsch</surname>
          </string-name>
          ,
          <article-title>An interactive program verifier (</article-title>
          <year>1973</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>