<!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>SMT</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Complete Trigger Selection in Satisfiability Modulo First-Order Theories</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Christopher Lynch</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stephen Miner</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Clarkson University</institution>
          ,
          <addr-line>8 Clarkson Avenue, Potsdam NY 13699-5815</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2023</year>
      </pub-date>
      <volume>21</volume>
      <fpage>5</fpage>
      <lpage>6</lpage>
      <abstract>
        <p>Let T be an SMT solver with no theory solvers except for Quantifier Instantiation. Given a set of ifrst-order clauses S saturated by Resolution (with a valid literal selection function) we show that T is complete if its Trigger function is the same as the literal selection function. So if T halts with a ground model G, then G can be extended to a model in the theory of S. In addition for a suitable ordering, if all maximal literals are selected in each clause, then T will halt on G, so it is a decision procedure for the theory S. Also, for a suitable ordering, if all clauses are Horn, or all clauses are 2SAT, then T solves the theory S in polynomial time.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;SMT</kwd>
        <kwd>Trigggers</kwd>
        <kwd>Quantifier Instantiation</kwd>
        <kwd>First-order Theorem Proving</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        results to equational logic [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], and future research will be to extend them to specialized theories.
      </p>
      <p>As an example of the problem faced by SMT solvers, consider the following FO theory
represented by clauses, where capital letters are universally quantified variables. This example
shows that even if the FO theory has no disjunction, SMT solvers already have trouble:</p>
      <sec id="sec-1-1">
        <title>Example 1.</title>
        <p>((), )
¬(, )</p>
        <p>
          If we give this theory to z3 [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] and assert (, ), z3 returns "unknown" when using the
default mbqi (model-based quantifier instantiation) [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. If we turn of mbqi and set ((), )
and (, ) as triggers, z3 will quickly halt and say "unknown".2. The SMT solver will have
generated enough instances to determine satisfiability, but it is not aware of that. SMT solvers
do well with conjunctive normal form problems without uninterpreted function symbols, but
may have trouble with satisfiable problems with uninterpreted function symbols.
        </p>
        <p>We now consider an FO theory that contains disjunction, to discuss trigger selection:</p>
      </sec>
      <sec id="sec-1-2">
        <title>Example 2.</title>
        <p>This is another theory that z3 cannot solve when presented with ground clause (, ). The
previous example only consisted of unit clauses, so there was no question of which literals to
select for triggers. But in this example, we need to decide which literals to select for triggers.
So we now consider three possible trigger selection strategies.</p>
        <p>1. If we select ( (1), 1) and (2,  (2)) as triggers, we show whenever an SMT solver
halts without saying "unsatisfiable", the ground model it has created is actually a model of
the FO theory. In fact, for a fragment of FO logic to which this theory with this selection
function belongs, we show that the SMT solver is a polynomial-time decision procedure.
2. If we select ¬(1, 1) and ¬(2, 2) as triggers,3 a halting SMT solver can determine
satisfiability. Unfortunately, given ground clause (, ) the procedure will not halt.
3. If we select ( (1), 1) and ¬(2, 2), then the SMT solver will return "unknown",
because ground clauses (, ) and ¬( (),  ()) are unsatisfiable in that theory, but
the SMT solver will not generate any instances. However, if we add the FO clause
¬(3, 3) ∨ ( (3),  (3)) to the FO theory, and select either literal in that clause,
the SMT solver is complete.</p>
        <p>
          In the first trigger selection (and the third one with the extra clause), the SMT solver creates
enough instantiations to guarantee satisfiability. Unfortunately, the instantiations will not halt
2We don’t mean to pick on z3. We also ran this on cvc5 [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], veriT [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] and SMTInterpol [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. They all returned
"unknown" or ran forever.
3To reduce instantiation, we use entire literals as triggers.
for the second one. For all but the second case, there is an ordering where we selected all the
maximal literals in each clause. For the second case, there is no such ordering.
        </p>
        <p>Our purpose is not to create a new inference system, but to understand when existing SMT
solvers could answer "satisfiable" instead of "unknown", such as the above examples. If a set
of FO clauses is saturated under Resolution with a valid selection function (as defined below),
we choose the literals selected during Resolution to be the triggers. If an SMT solver halts
with "unsatisfiable", the problem is unsatisfiable. But if the SMT solver halts without detecting
unsatisfiability, most SMT solvers would say "unknown". However, using our method of trigger
selection, we can know the problem is satisfiable. Furthermore, the partial ground model that
the SMT solver has constructed can be extended to a model of the FO theory. In Example 1, the
FO theory is saturated. In Example 2, the first-order theory is saturated under all three selection
functions, assuming that the additional clause is added in the third case.</p>
        <p>If, in addition, a single maximum literal is selected in each clause in the saturation of the FO
theory, the SMT procedure will halt, and therefore the SMT procedure is a decision procedure.
Alternatively, if the order is isomorphic to , 4 then selecting all maximal literals will give a
decision procedure. If, in addition, the chosen order is a polynomial ordering which is totalizable
on ground terms, the SMT solver is guaranteed to decide satisfiability in polynomial time if all
clauses are Horn or all clauses contain at most two literals.</p>
        <p>
          In Section 2 of this paper, we give some well-known definitions and some definitions specific
to this paper. In Section 3 we define the inference rules used to model our procedure. Section 4
proves the completeness. Section 5 shows cases where we are guaranteed to have a decision
procedure and where it is guaranteed to run in polynomial time. Section 6 gives related work,
and Section 7 summarizes the paper and gives some important future work. All proofs can be
found in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Preliminaries</title>
      <p>
        We consider a set of ground formulas modulo a set of first-order formulas, which are in
conjunctive normal form. We follow standard definitions for Resolution theorem proving [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], plus
some new definitions that are specific to this paper.
      </p>
      <p>We assume we are given a set of variables, which we represent with capital letters, and a
set of uninterpreted function symbols of various arities, represented with lower case letters.
An arity is a non-negative integer. Terms are defined recursively in the following way: each
variable is a term, and if 1, · · · ,  are terms, and  is of arity  ≥ 0, then  (1, · · · , ) is a
term. If  is a predicate symbol of arity , and if 1, · · · ,  are terms, then  (1, · · · , ) is an
atom. Any atom or negation of an atom is a literal. A literal is called negative if it is negated,
and positive otherwise. For all literals , we define ¯ so that ¯ = ¬ and ¬¯  = . A clause is a
multiset of literals, representing a disjunction of literals. If  is a literal, and Γ is a set of literals,
we will write  ∨ Γ to represent {} ∪ Γ . We use ⊥ to represent the empty clause. We will use
“− ” to denote multiset diference. For any object , define  () as the set of variables in .
If  () = ∅ we say that  is ground, otherwise we say that  is non-ground.</p>
      <sec id="sec-2-1">
        <title>4There are only finitely many atoms smaller than any given atom.</title>
        <p>A substitution is a mapping from the set of variables to the set of terms, which is almost
everywhere the identity. We identify a substitution with its homomorphic extension. Composition of
substitutions  and  is defined so that  ( ) = ( ) for all variables  . If  is a substitution
then ( ) = { |  ̸=  }, and ( ) = { |  ∈ ( )}. A substitution 
matches  to  if  = , and is a unifier of  and , if  =  .  is a most general unifier
of  and , written  = (, ) if  is a unifier of  and , and for all unifiers  of  and
, there is a substitution  such that  =  for all  in  ( ∪ ). Given a clause ,
define () = { | is ground }. Given a set of clauses , let () = ⋃︀∈ ().</p>
        <p>We assume an ordering &lt; is a well-founded ordering which is stable, meaning that if  &lt; 
then  &lt;  . We assume the ordering is totalizable on all ground terms and atoms. This means
the ordering can be extended to an ordering that is total on ground terms. It can be extended to
literals in any way such that  &lt; ¬ for all atoms . We also assume the ordering is an atom
ordering meaning that for all literals  and  ,  &gt;  implies  &gt; ¯  . Clauses are compared
using the multiset ordering. A literal  is said to be maximum in a clause  if  is larger than
all other literals in , and maximal in  if no other literal in  is larger than . An order is a
polynomial ordering if each atom only has polynomially many smaller atoms.</p>
        <p>An partial interpretation (or just interpretation)  is defined as a consistent set of ground
literals such that  |=  if and only if  ∈  . Therefore, an atom  is undefined in  if  ̸∈  and
¬ ̸∈  . This difers with some definitions of interpretations where just the true positive literals
are given. Since clauses are multisets representing disjunctions,  |=  if  ∩  ̸= ∅, otherwise
 is either false or undefined in  . If  is not ground then we say  |=  if  |= (). If
 is an interpretation and  is a set of clauses, then  is a model of  if  |=  for all  ∈ .
Interpretations 1 and 2 are compatible if there is no literal  such that  ∈ 1 and ¯ ∈ 2. If
1 and 2 are compatible then 1 ∪ 2 is also an interpretation, furthermore, for any literal ,
1 ∪ 2 |=  if and only if 1 |=  or 2 |= .</p>
        <p>Given an interpretation  and a ground clause , let  (,  ) = { ∈  |  ̸|= ¯}. If 
is a set of ground clauses, let  (,  ) = { () |  ∈   ̸|= }. i.e.,  (,  ) is
created from  by removing all clauses true in  , and then removing all literals false in  from
the remaining clauses.</p>
        <p>Example 3. Consider interpretation  = {¬(), ()} where  is the set of clauses in the
following example:
1 : () ∨ ¬() ∨ ()
2 : ¬() ∨ ¬() ∨ ()</p>
        <p>Then  (1,  ) = (), and  (,  ) is the set consisting of the unit clause ().</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Inference System</title>
      <p>We want to model an SMT solver without any theories except for a quantified FO theory in
CNF, represented by clauses with universal variables. Given a set of clauses , let () be the
set of all ground clauses in , and let () be the set of all non-ground clauses in . An SMT
solver would build a model from (). Call that model (). For most of this paper, it will not
be important how that model is built. The SMT solver will use () to instantiate the clauses
of (). We will use inference rules to model the instantiation process.</p>
      <p>Let   be a function so that for each clause  in (),  () ⊆  and
 ( ()) =  (), which determines which parts of  are used for instantiation.
Below we show how to choose triggers in such a way that when we have a model, and no more
instantiations can be performed, we can deduce that  is satisfiable. The Instantiation rule is
used to instantiate non-ground clauses based on a ground interpretation .</p>
      <p>-Instantiation:
where</p>
      <p>1 ∨ · · · ∨
(1 ∨ · · · ∨
 ∨ Γ
 ∨ Γ) 
1. 1 ∨ · · · ∨  ∨ Γ ∈ (),
2.  (1 ∨ · · · ∨  ∨ Γ) = {1, · · · , }
3. there exists ′1 · · · ′ in  such that ¯  = ′ for all 1 ≤  ≤</p>
      <p>We do not consider equality, so we only require  to be a matcher, not an -matcher. SMT
solvers allow triggers to be subterms of a literal. But to reduce the number of instantiations, we
only use entire literals as triggers. Furthermore, we only need to match a ground literal in the
model onto the complement of a non-ground literal. This allows the instantiation rule to be
more restrictive than is usually the case for trigger-based instantiation in SMT. Finally, SMT
solvers allow for diferent possible sets of triggers for the same clause. We only require one set
of triggers for each clause.</p>
      <p>A set of clauses  is saturated by Instantiation if either () is unsatisfiable or there exists a
model () of () such that every conclusion of an ()-Instantiation inference is in .</p>
      <sec id="sec-3-1">
        <title>Example 4.</title>
        <p>1 : ¬(1, 1) ∨ ( (1), 1)
2 : ¬(2, 2) ∨ (2,  (2))</p>
        <p>3 : ¬( (),  ())</p>
        <p>We define  1 so that  1(1) = {( (1), 1)} and  1(2) = {(2,  (2))}.
Given the model 1 = {¬( (),  ())} of 3, we apply the Instantiation rule to create
the clause 4 = ¬( (), ) ∨ ( (),  ()). Then, we can create a new model 2 =
{¬( (),  ()), ¬( (), )} of 3 and 4. Instantiation then creates 5 = ¬(, ) ∨
( (), ), and we create a new model 3 = {¬( (),  ()), ¬( (), ), ¬(, )} of 3
and 4. These five clauses are now saturated by Instantiation.</p>
        <p>Consider the same set of three clauses with a diferent trigger function  2 defined so
that  2(1) = {( (1), 1)} and  2(2) = {¬(2, 2)}. Let 1 be the same
model as before. There are no instantiations, so the three clauses are saturated by
Instantiation. Suppose we also had the clause 6 = (, ). Then the model of the clauses would
be 4 = {¬( (),  ()), (, )}. The set of clauses {1, 2, 3, 6} is again saturated by
Instantiation, although it is unsatisfiable. In other words, this was not a good choice of triggers.</p>
        <p>The theory {(1), ¬(2)}, with no ground clauses, is unsatisfiable, but no instantiations
exist. So there cannot be a set of triggers that guarantees completeness for all formulas. To
address this problem, we require the non-ground clauses to be saturated under the Factoring and
Resolution inference rule defined below. These inference rules depend on a selection function,
which selects the literals in each clause that may be used in an inference. A selection function
maps a clause to a subset of its literals, just like the trigger function. A selection function
 is valid if, for each clause  and for each  ⊆ () with  ( ) ̸=  (), either
() −  contains all maximal literals in  −  , or () −  contains a negative literal.</p>
        <p>Before we give an intuition of this definition, let us give some properties:
Proposition 1. For any clause  and valid selection function ,  (()) =  ().
Proposition 2. Let  be a selection function such that for all ,  (()) =  ()
and either (1) () contains only negative literals or (2) () is a singleton set containing the
maximum literal in . Then  is a valid selection function.</p>
        <p>Selection functions normally select all maximal literals or a negative literal. We additionally
require () to contain all the variables in . We also require that if some of the literals from
the selected set are removed from the clause, without covering all the variables, the remaining
selected set must contain all maximal literals in the remaining clause or a negative literal. In
the completeness proof, we will filter our clauses by the ground model, and must ensure that
the filtered clauses still have a valid selection function.</p>
        <p>In Example 4 with trigger function  1, if the selection function is the same as the trigger
function, it is easy to construct an ordering where the selected literal is the largest in 1 and
2. So this is a valid selection function. If the trigger function is  2, the same is true for 1.
For 2,  2(2) contains only negative literals, so the selection function is valid.</p>
        <p>Let us look at one more example. Consider the following set of clauses, with an ordering
where (1) &gt; (2) &gt; (3) for all terms 1, 2, 3.</p>
      </sec>
      <sec id="sec-3-2">
        <title>Example 5.</title>
        <p>1 : ¬(1) ∨ ¬(1)
2 : (2) ∨ ¬(2)
3 : ¬(3) ∨ (3)
4 : (4) ∨ (4) ∨ ¬(4)</p>
        <p>Let 1 be the selection function such that 1(1) = {¬(1)}, 1(2) = {¬(2)},
1(3) = {(3)}, and 1(4) = {¬(4)}. 1 is not valid, because 1(4) does
not contain all the variables of 4. So let 2 be a selection function identical to 1 on the
ifrst three clauses, but 2(4) = {(4), ¬(4)}. This selection function is also not valid
because in clause 4 if we let  = {¬(4)}, then 2(4) −  = {(4)}, and (4) is
neither maximal nor negative in (4) ∨ (4). Finally we define 3 to be the same as 1
on the first three clauses but 3(4) = {(4), ¬(4)}. This selection function is valid.</p>
        <p>Given a valid selection function, our inference system will consist of three inference rules.
We defined Instantiation above. Below we define Resolution and Factoring:
 ∨ Γ ¬ ∨ ∆
(Γ ∨ ∆) 
 ∨  ∨ Γ
( ∨ Γ) 
∈ (), (3)  is selected in  ∨ Γ , (4) ¬ is selected
where (1)  ∨ Γ ∈ () , (2) ¬ ∨ ∆
in ¬ ∨ ∆ , and (5)  = (, ).</p>
      </sec>
      <sec id="sec-3-3">
        <title>Factoring:</title>
        <p>where (1)  ∨  ∨ Γ ∈ () , (2)  is selected in  ∨  ∨ Γ , and (3)  = (, ).</p>
        <p>When applying Resolution and Factoring, it is important to remove redundant clauses. In
particular, implementations remove subsumed clauses and tautologies.</p>
        <p>Definition 1. A clause  subsumes a clause  if there is a substitution  such that  ⊆ . A
clause  is a tautology if there is an atom  such that  ∈  and ¬ ∈ . A set of clauses 
(possibly infinite) is saturated by Resolution and Factoring if the conclusion of every Resolution
and Factoring inference in  is either a tautology or is subsumed in .  is completely saturated
if  is saturated by Instantiation and saturated by Resolution and Factoring.</p>
        <p>In Example 4, with selection and trigger function  1, the set {1, 2, 3, 4, 5} is
completely saturated. If the selection and trigger function are  2, the set {1, 2, 3}
is saturated by Instantiation but not saturated by Resolution and Factoring. The result of a
Resolution between 1 and 2 is 7 = ¬(7, 7) ∨ ( (7),  (7)). We extend the selection
and trigger function to 7. Suppose we extend  2 so that  2(7) = {( (7),  (7))}.
Then an instantiation will give us 8 = ¬(, ) ∨ ( (),  ()). Extending the model to
{(, ), ( (),  ())} allows us to see that {1, 2, 3, 7, 8} is completely saturated.</p>
        <p>In Example 5, if we add a ground clause 5 = (), then {1, 2, 3, 4, 5} is completely
saturated under selection function 2, because every Resolution inference yields a tautology,
even though the set is unsatisfiable. So if we had only required valid selection functions to select
a negative literal or all maximal literals in each clause, we could not prove completeness, even
if we additionally required that the selected literals contain all the variables in the clause. Using
selection function 3, the set of clauses is not saturated under Resolution and Factoring.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Completeness Proof</title>
      <p>In this section we will prove the completeness of our inference system. Given a set of clauses ,
the first step in our completeness proof is to filter the ground instances of () with a model
() of (). Let  () =  ((()), ()).</p>
      <p>We explain  () with an example, where we write  () to abbreviate  applied  times to
. Note that  is not saturated under Instantiation in this example, although in the proof we
only construct  () for completely saturated sets.</p>
      <p>Example 6. Let () = {¬( ) ∨ ( ( ))}. Suppose that we have the model () =
{¬( ()), ( 3())} of (). Then (()) = {¬( ()) ∨ ( +1()) |  ≥ 0}. So
 () is the set of clauses {¬(), ( 4())} ∪ {¬( ()) ∨ ( +1()) |  ≥ 4}.</p>
      <p>Instances of subsumed clauses and tautologies in  are also subsumed clauses and tautologies
in  (), if they exist in  ().</p>
      <p>Lemma 1. Let  be a clause in . Let  be a ground substitution. Let ′ =  (,  ()).
Then (a) If  is a tautology then either ′ is not in  () or ′ is a tautology. (2) If  is subsumed
in  then either ′ is not in  () or there is a clause ′ in  () such that ′ ⊆ ′.</p>
      <p>Subsumption and tautology deletion are instances of the concept of redundancy,5 A clause 
may be redundant in  but  () not redundant in  (), so our filtering technique does
not cover redundancy in full. However, subsumption and tautology deletion are what is mainly
used in practice to control saturation.</p>
      <p>Example 7. Let  be a set of clauses such that () = {( ) ∨ ( ), ¬( ), ¬( ) ∨ ( )}
with () = {()} and an ordering such that () &lt; () &lt; () for all terms , , . Then
¬( ) ∨ ( ) is implied by smaller clauses ( ) ∨ ( ) and ¬( ). But when we apply filtering,
we get clauses {() ∨ (), ¬(), ()}, and () is not implied by smaller clauses.</p>
      <p>To prove completeness, we will let  be a completely saturated set of clauses with   = .
We show that if ⊥ is not in  and () is satisfiable, then a model of () can be constructed
which is compatible with the model of ().</p>
      <p>First we need some definitions. For a set of clauses , let &lt; = { ∈  |  &lt; }
be the set of clauses in  that are smaller than . We will create an interpretation from a
set of positive literals. So, given a set of positive literals  and a set of literals  , we define
 ( ,  ) =  ∪ {¬ |  ̸∈  , ( −  ) ∩ {, ¬} ̸= ∅} In other words, it is the interpretation
where all the atoms in  are true, and every atom in  that has not been made true in  is false.
For each clause  ∈  (), we will define &lt; , &lt; and  co-recursively.</p>
      <sec id="sec-4-1">
        <title>Definition 2.</title>
        <p>Let  () be the clause set defined above, and  be a clause in  ().
1. Define &lt; as the set of positive literals ⋃︀∈ ()&lt; , where  is defined below.
2. Define   () = ⋃︀∈ ()  , the union of all the  defined below.
3. Let &lt; =  (&lt; ,  ∪ ⋃︀  ()&lt; ), which means that &lt; is the interpretation that
makes true all the atoms in &lt; , and makes false all other atoms in clauses of  () that
are smaller than or equal to .
4. Similarly, let   () =  (  (), ⋃︀  ()).</p>
        <p>Simultaneously we define  = {} for atom  if (1) &lt; ̸|= , (2)  is the largest literal in
, (3)  is selected in , and (4)  only occurs once in . Otherwise  = ∅.</p>
        <p>If  = {}, we say that  produces .</p>
        <p>The completeness proof is similar to the standard proof of completeness of Resolution, except
we deal with filtered clauses, so lifting is more complex. Also, we use Instantiation when the
ifltering removes all the selected literals. The next lemma follows from the definition of  .</p>
        <sec id="sec-4-1-1">
          <title>5A clause is redundant if implied by smaller clauses.</title>
          <p>Lemma 2. Let  be a clause in  (). Let  be a literal in . Then (1) If  is not maximum in 
then   () |=  if and only if &lt; |= . (2) If  produces  then  ∈   ().</p>
          <p>For the proof below, we will assume that for every  ∈  and  ∈ , where ′ =
 (,  ()), then  is selected in  if and only if  ∈ ′ and  is selected in .
Theorem 1. Let  be a valid selection function with   = . Suppose that  is completely
saturated and ⊥ ̸∈  and () is satisfiable. Let () be a model of () such that  is saturated
by ()-Instantiation. Then   () |=  () where  () =  ((()), ()).
Proof Sketch 1. As usual in model construction proofs, we prove that   () is a model of  ()
by showing that a least counterexample  leads to a contradiction. As usual, if a negative is
selected, Resolution leads to a smaller counterexample. If the largest positive is selected, Factoring
leads to a smaller counterexample. However, all selected literal may have been filtered out. In
which case, Instantiation leads to a contradiction. In all cases, the filtering process allows ground
inferences to be lifted.</p>
          <p>We can combine   () with () to get a model of .</p>
          <p>Corollary 1. Let  be a valid selection function with   = . Suppose that  is completely
saturated and ⊥ ̸∈  and () is satisfiable. Let () be a model of () such that  is saturated
by ()-Instantiation. Let  () =  ((()), ()). Then   () is compatible
with () and   () ∪ () |=</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Decision Procedure and Complexity Results</title>
      <p>Next we assume the clauses are saturated by Resolution and Factoring, and find cases where
they can be further finitely saturated by Instantiation. Then SAT Solving plus Instantiation is
a decision procedure for the theory of (). For example, if the selection function selects a
single maximum literal in each clause.</p>
      <p>Theorem 2. Let  be a valid selection function such that a single maximum literal is selected in
each clause of (), with   = . Suppose that  is saturated by Resolution and Factoring.
Then  can be saturated by Instantiation in finite time.</p>
      <p>We also get a decision procedure if the ordering used is order isomorphic to .
Theorem 3. Let  be a valid selection function such that all maximal literals are selected in
each clause, with an ordering that is order isomorphic to . Suppose that   =  and that 
is saturated by Resolution and Factoring. Then  can be saturated by Instantiation in finite time.</p>
      <p>If the selection function selects a negative literal, then the Instantiation rule may not halt.
Example 8. Consider Example 4 where  (1) = {¬(1, 1)} and  (2) =
{¬(2, 2)}. This is saturated by Resolution and Factoring, but Instantiation with ground
clause (, ) creates infinitely many clauses.</p>
      <p>Even if all maximal literals are selected in each clause, there may still be infinitely many
instantiations, as in the following theory, with an ordering such that () &gt; () for all  and .</p>
      <sec id="sec-5-1">
        <title>Example 9.</title>
        <p>: ¬( ) ∨ ¬( ) ∨ ( ( ))</p>
        <p>Suppose that () = {¬( ), ¬( )}. This is a valid selection function, and ( ) is the
maximum literal. But suppose we have () and () in the ground model. Instantiation will
create ( ()) for all , all literals smaller than ().</p>
        <p>We would also like to determine conditions where Instantiation halts in polynomial time, given
that  is already saturated by Resolution and Factoring. This requires that only polynomially
many instantiations are computed, and that the SAT solver runs in polynomial time.</p>
        <p>
          To get polynomial time results, we must examine the details of an SMT solver. We assume
the SMT solver is based on a CDCL SAT solver [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. We assume the SAT solver can decide
the value of a literal, propagate a literal, backjump and learn a literal, but we don’t assume the
Forget or Restart rule.
        </p>
        <p>For Horn clauses, we assume that the initial decision about an atom is to make it false. It is
well-known that satisfiability of ground Horn clauses can be decided in polynomial time, but
we are not aware of any results that CDCL SAT solvers solve Horn clauses in polynomial time.
Theorem 4. Let &lt; be a polynomial ordering. Let  be a valid selection function such that
all maximal literals are selected in each clause of (), with   = . If  is saturated by
Resolution and Factoring, and  only contains Horn clauses, then the saturation of  by CDCL
SAT solving and Instantiation runs in polynomial time if the initial decision for the truth value
of ground atoms is false. Therefore SAT solving plus Instantiation is a polynomial time decision
procedure for the theory of (), if all ground clauses are Horn clauses.</p>
        <p>Clause learning is crucial for 2SAT. Satisfiability of 2SAT can be decided in polynomial time,
but we have not seen any results that CDCL SAT solvers solve 2SAT in polynomial time.
Theorem 5. Let &lt; be a polynomial ordering. Let  be a valid selection function such that
all maximal literals are selected in each clause of (), with   = . If  is saturated by
Resolution and Factoring, and  contains no clauses with more than two literals, then the saturation
of  by CDCL SAT solving plus Instantiationin runs in polynomial time. Therefore CDCL SAT
solving plus Instantiation is a polynomial time decision procedure for the theory of (), if all
ground clauses contain at most two literals.</p>
        <p>Example 4 is Horn and 2SAT. Consider selection and trigger function  1, with (1, 2) ≤
(1, 2) if 1 is a subterm of 1 and 2 is a subterm of 2. We do the same for . CDCL SAT
solving plus Instantiation will solve this theory in polynomial time.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6. Related Work</title>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] discusses how a good selection of triggers will give a decision procedure.
Their approach is somewhat diferent from ours. The user needs to supply a correctness and
termination proof that the trigger choice will give a decision procedure. Our method is automatic,
and inherits the trigger selection function directly from the selection function used in saturation.
Good trigger selection is discussed from a practical point of view in [
        <xref ref-type="bibr" rid="ref14 ref15">14, 15</xref>
        ].
      </p>
      <p>
        Other papers suggest other approaches to quantifiers instead of triggers. Some successful
approaches are Model-Based Quantifier Instantiation [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] for satisfiable problems, and Conflicting
Instances[
        <xref ref-type="bibr" rid="ref16 ref17">16, 17</xref>
        ] for unsatisfiable problems. Several other approaches have been proposed and
implemented [
        <xref ref-type="bibr" rid="ref18 ref19 ref20 ref21 ref22 ref23">18, 19, 20, 21, 22, 23</xref>
        ]. Our paper only deals with first-order theories without
equality, whereas the above mentioned papers consider other SMT theories.
      </p>
      <p>
        Other papers have used Saturation under Ordered Resolution [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], as a way to show that a
ifrst-order Theory is a Local Theory[
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] meaning that the only instantiations necessary are to
replace variables with terms smaller than initial ground terms. In this approach, all possible
instantiations are made at the beginning. This approach was further extended in [
        <xref ref-type="bibr" rid="ref26">26, 27</xref>
        ] to
cover other theories. But these extensions still require instantiating all the instances at the
beginning. Finally, in [28], an approach was implemented where instantiations are only made
when necessary. But that approach is based on the instance generation method of [29, 30], which
is not the same as the SMT method. Finally, in [31], the local theory method was implemented
in an SMT setting. These ideas don’t involve triggers.
      </p>
      <p>Another technique is for an SMT solver to call an FO theorem prover [32, 33, 34]. Our method
is diferent in that we do not need a first-order theorem prover after saturation of the FO clauses.</p>
    </sec>
    <sec id="sec-7">
      <title>7. Conclusion</title>
      <p>We analyzed the completeness of the trigger selection function for SMT solvers with an FO theory
 and no other theories. If  is saturated by Resolution and Factoring with a valid selection
function identical to the trigger function, then Saturation by Instantiation gives a model of the
ground clauses, that is also a model of those clauses modulo the first-order theory. Saturation
by Instantiation is guaranteed to halt if the Selection function selects a single maximum literal
in each clause, or if all maximal clauses are selected using an ordering isomorphic to . If it is
also a polynomial ordering, then Saturation by Instantiation is guaranteed to halt in polynomial
time if all clauses are Horn Clauses, or if all clauses contain at most two literals.</p>
      <p>SMT solvers often return "unknown" on problems that seem to be easily shown to be satisfiable.
We hope implementers of SMT solvers will use our results to return "satisfiable" in more cases.
It requires no change to the SMT process. The only change is in the pre-processing, where the
SMT solver checks if the FO classes are saturated by a valid selection function, and uses the
identical trigger function. At the end, if no contradiction is found, the SAT solver will return
"satisfiable", and also return a model modulo extendable to the FO theory.</p>
      <p>We have implemented an SMT solver that, given a satisfiable saturated first-order theory,
will detect satisfiability and return a ground model. We experimented with our SMT solver
using some first-order theories presented in the appendices. Since this is a new SMT solver, we
don’t expect it to be competitive in speed with existing SMT solvers. However, this paper is not
about increasing the speed of an SMT solver. It is about making SMT solvers more precise.</p>
      <p>We plan lots of future work on this subject. To make this useful, we need to extend the results
to more theories. We are working on extending it to equality with uninterpreted function
symbols. Later work will be to extend it to other specialized theories.</p>
      <p>Even in the non-equational case, there are many unanswered questions. For example, can
this be extended to theories which cannot be saturated under Resolution. These results basically
give Herbrand models. There may be ways to use other models to strengthen these results.
There are several more detailed results that are not answered in this paper. Does the proof
technique work for all cases of redundancy, not just subsumption and tautology deletion? Other
decision procedures may be possible by loosening the restrictions on the ordering.
Deduction, Tallinn, Estonia, July 22-27, 2005, Proceedings, volume 3632 of Lecture Notes in
Computer Science, Springer, 2005, pp. 219–234. URL: https://doi.org/10.1007/11532231_16.
doi:10.1007/11532231\_16.
[27] C. Ihlemann, S. Jacobs, V. Sofronie-Stokkermans, On local reasoning in verification,
in: C. R. Ramakrishnan, J. Rehof (Eds.), Tools and Algorithms for the Construction and
Analysis of Systems, 14th International Conference, TACAS 2008, Held as Part of the
Joint European Conferences on Theory and Practice of Software, ETAPS 2008, Budapest,
Hungary, March 29-April 6, 2008. Proceedings, volume 4963 of Lecture Notes in Computer
Science, Springer, 2008, pp. 265–281. URL: https://doi.org/10.1007/978-3-540-78800-3_19.
doi:10.1007/978-3-540-78800-3\_19.
[28] S. Jacobs, Incremental instance generation in local reasoning, in: A. Bouajjani, O. Maler
(Eds.), Computer Aided Verification, 21st International Conference, CAV 2009, Grenoble,
France, June 26 - July 2, 2009. Proceedings, volume 5643 of Lecture Notes in Computer
Science, Springer, 2009, pp. 368–382. URL: https://doi.org/10.1007/978-3-642-02658-4_29.
doi:10.1007/978-3-642-02658-4\_29.
[29] H. Ganzinger, K. Korovin, New directions in instantiation-based theorem proving, in:
18th IEEE Symposium on Logic in Computer Science (LICS 2003), 22-25 June 2003, Ottawa,
Canada, Proceedings, IEEE Computer Society, 2003, pp. 55–64. URL: https://doi.org/10.
1109/LICS.2003.1210045. doi:10.1109/LICS.2003.1210045.
[30] K. Korovin, iprover - an instantiation-based theorem prover for first-order logic
(system description), in: A. Armando, P. Baumgartner, G. Dowek (Eds.), Automated
Reasoning, 4th International Joint Conference, IJCAR 2008, Sydney, Australia, August
1215, 2008, Proceedings, volume 5195 of Lecture Notes in Computer Science, Springer,
2008, pp. 292–298. URL: https://doi.org/10.1007/978-3-540-71070-7_24. doi:10.1007/
978-3-540-71070-7\_24.
[31] K. Bansal, A. Reynolds, T. King, C. W. Barrett, T. Wies, Deciding local theory extensions
via e-matching, in: D. Kroening, C. S. Pasareanu (Eds.), Computer Aided Verification - 27th
International Conference, CAV 2015, San Francisco, CA, USA, July 18-24, 2015, Proceedings,
Part II, volume 9207 of Lecture Notes in Computer Science, Springer, 2015, pp. 87–105. URL:
https://doi.org/10.1007/978-3-319-21668-3_6. doi:10.1007/978-3-319-21668-3\_6.
[32] C. Lynch, Q. Ta, D. Tran, SMELS: satisfiability modulo equality with lazy superposition,
J. Autom. Reason. 51 (2013) 325–356. URL: https://doi.org/10.1007/s10817-012-9263-4.
doi:10.1007/s10817-012-9263-4.
[33] L. M. de Moura, N. S. Bjørner, Engineering DPLL(T) + saturation, in: A. Armando,
P. Baumgartner, G. Dowek (Eds.), Automated Reasoning, 4th International Joint
Conference, IJCAR 2008, Sydney, Australia, August 12-15, 2008, Proceedings, volume 5195 of
Lecture Notes in Computer Science, Springer, 2008, pp. 475–490. URL: https://doi.org/10.
1007/978-3-540-71070-7_40. doi:10.1007/978-3-540-71070-7\_40.
[34] A. Voronkov, AVATAR: the architecture for first-order theorem provers, in: A. Biere,
R. Bloem (Eds.), Computer Aided Verification - 26th International Conference, CAV
2014, Held as Part of the Vienna Summer of Logic, VSL 2014, Vienna, Austria, July
18-22, 2014. Proceedings, volume 8559 of Lecture Notes in Computer Science, Springer,
2014, pp. 696–710. URL: https://doi.org/10.1007/978-3-319-08867-9_46. doi:10.1007/
978-3-319-08867-9\_46.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>C. W.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Seshia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          ,
          <article-title>Satisfiability modulo theories</article-title>
          , in: A.
          <string-name>
            <surname>Biere</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Heule</surname>
          </string-name>
          , H. van Maaren, T. Walsh (Eds.),
          <source>Handbook of Satisfiability - Second Edition</source>
          , volume
          <volume>336</volume>
          <source>of Frontiers in Artificial Intelligence and Applications</source>
          , IOS Press,
          <year>2021</year>
          , pp.
          <fpage>1267</fpage>
          -
          <lpage>1329</lpage>
          . URL: https://doi.org/10.3233/FAIA201017. doi:
          <volume>10</volume>
          .3233/FAIA201017.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.</given-names>
            <surname>Detlefs</surname>
          </string-name>
          , G. Nelson,
          <string-name>
            <given-names>J. B.</given-names>
            <surname>Saxe</surname>
          </string-name>
          ,
          <article-title>Simplify: a theorem prover for program checking</article-title>
          ,
          <source>J. ACM</source>
          <volume>52</volume>
          (
          <year>2005</year>
          )
          <fpage>365</fpage>
          -
          <lpage>473</lpage>
          . URL: https://doi.org/10.1145/1066100.1066102. doi:
          <volume>10</volume>
          .1145/1066100. 1066102.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>L. M. de Moura</surname>
            ,
            <given-names>N. S.</given-names>
          </string-name>
          <string-name>
            <surname>Bjørner</surname>
          </string-name>
          ,
          <article-title>Eficient e-matching for SMT solvers</article-title>
          , in: F. Pfenning (Ed.),
          <source>Automated Deduction - CADE-21, 21st International Conference on Automated Deduction, Bremen, Germany, July 17-20</source>
          ,
          <year>2007</year>
          , Proceedings, volume
          <volume>4603</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2007</year>
          , pp.
          <fpage>183</fpage>
          -
          <lpage>198</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>540</fpage>
          -73595-3_
          <fpage>13</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -73595-3\_
          <fpage>13</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>L.</given-names>
            <surname>Bachmair</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Ganzinger</surname>
          </string-name>
          ,
          <article-title>Resolution theorem proving</article-title>
          , in: J. A.
          <string-name>
            <surname>Robinson</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Voronkov (Eds.),
          <source>Handbook of Automated Reasoning (in 2 volumes)</source>
          ,
          <article-title>Elsevier and</article-title>
          MIT Press,
          <year>2001</year>
          , pp.
          <fpage>19</fpage>
          -
          <lpage>99</lpage>
          . URL: https://doi.org/10.1016/b978-044450813-3/
          <fpage>50004</fpage>
          -
          <lpage>7</lpage>
          . doi:
          <volume>10</volume>
          .1016/ b978-044450813-3/
          <fpage>50004</fpage>
          -7.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R.</given-names>
            <surname>Nieuwenhuis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rubio</surname>
          </string-name>
          ,
          <article-title>Paramodulation-based theorem proving</article-title>
          , in: J. A.
          <string-name>
            <surname>Robinson</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Voronkov (Eds.),
          <source>Handbook of Automated Reasoning (in 2 volumes)</source>
          ,
          <article-title>Elsevier and</article-title>
          MIT Press,
          <year>2001</year>
          , pp.
          <fpage>371</fpage>
          -
          <lpage>443</lpage>
          . URL: https://doi.org/10.1016/b978-044450813-3/
          <fpage>50009</fpage>
          -
          <lpage>6</lpage>
          . doi:
          <volume>10</volume>
          .1016/b978-044450813-3/
          <fpage>50009</fpage>
          -6.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>L. M. de Moura</surname>
            ,
            <given-names>N. S.</given-names>
          </string-name>
          <string-name>
            <surname>Bjørner</surname>
          </string-name>
          ,
          <article-title>Z3: an eficient SMT solver</article-title>
          , in: C. R. Ramakrishnan, J. Rehof (Eds.),
          <article-title>Tools and Algorithms for the Construction and Analysis of Systems</article-title>
          , 14th International Conference, TACAS 2008,
          <article-title>Held as Part of the Joint European Conferences on Theory and Practice of Software</article-title>
          ,
          <source>ETAPS</source>
          <year>2008</year>
          , Budapest, Hungary, March 29-April 6,
          <year>2008</year>
          . Proceedings, volume
          <volume>4963</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2008</year>
          , pp.
          <fpage>337</fpage>
          -
          <lpage>340</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>540</fpage>
          -78800-3_
          <fpage>24</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -78800-3\_
          <fpage>24</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Ge</surname>
          </string-name>
          , L. M. de Moura,
          <article-title>Complete instantiation for quantified formulas in satisfiabiliby modulo theories</article-title>
          , in: A.
          <string-name>
            <surname>Bouajjani</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          Maler (Eds.), Computer Aided Verification, 21st International Conference,
          <string-name>
            <surname>CAV</surname>
          </string-name>
          <year>2009</year>
          , Grenoble, France, June 26 - July 2,
          <year>2009</year>
          . Proceedings, volume
          <volume>5643</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2009</year>
          , pp.
          <fpage>306</fpage>
          -
          <lpage>320</lpage>
          . URL: https: //doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -02658-4_
          <fpage>25</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -02658-4\_
          <fpage>25</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>H.</given-names>
            <surname>Barbosa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. W.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brain</surname>
          </string-name>
          , G. Kremer,
          <string-name>
            <given-names>H.</given-names>
            <surname>Lachnitt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mohamed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mohamed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Niemetz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Nötzli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ozdemir</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Preiner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Sheng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          ,
          <string-name>
            <surname>Y. Zohar,</surname>
          </string-name>
          <article-title>cvc5: A versatile and industrial-strength SMT solver</article-title>
          , in: D.
          <string-name>
            <surname>Fisman</surname>
          </string-name>
          , G. Rosu (Eds.),
          <article-title>Tools and Algorithms for the Construction and Analysis of Systems -</article-title>
          28th International Conference, TACAS 2022,
          <article-title>Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022</article-title>
          , Munich, Germany, April 2-
          <issue>7</issue>
          ,
          <year>2022</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>I</given-names>
          </string-name>
          , volume
          <volume>13243</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2022</year>
          , pp.
          <fpage>415</fpage>
          -
          <lpage>442</lpage>
          . URL: https: //doi.org/10.1007/978-3-
          <fpage>030</fpage>
          -99524-9_
          <fpage>24</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -99524-9\_
          <fpage>24</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>T.</given-names>
            <surname>Bouton</surname>
          </string-name>
          ,
          <string-name>
            <surname>D. C. B. D. Oliveira</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Déharbe</surname>
          </string-name>
          , P. Fontaine,
          <article-title>verit: An open, trustable and eficient smt-solver</article-title>
          , in: R. A.
          <string-name>
            <surname>Schmidt</surname>
          </string-name>
          (Ed.),
          <source>Automated Deduction - CADE-22, 22nd International Conference on Automated Deduction, Montreal, Canada, August 2-7</source>
          ,
          <year>2009</year>
          . Proceedings, volume
          <volume>5663</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2009</year>
          , pp.
          <fpage>151</fpage>
          -
          <lpage>156</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -02959-2_
          <fpage>12</fpage>
          . doi:
          <volume>10</volume>
          .1007/ 978-3-
          <fpage>642</fpage>
          -02959-2\_
          <fpage>12</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Christ</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hoenicke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Nutz</surname>
          </string-name>
          ,
          <string-name>
            <surname>Smtinterpol:</surname>
          </string-name>
          <article-title>An interpolating SMT solver</article-title>
          , in: A.
          <string-name>
            <given-names>F.</given-names>
            <surname>Donaldson</surname>
          </string-name>
          , D. Parker (Eds.),
          <source>Model Checking Software - 19th International Workshop, SPIN 2012</source>
          , Oxford, UK,
          <source>July 23-24</source>
          ,
          <year>2012</year>
          . Proceedings, volume
          <volume>7385</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2012</year>
          , pp.
          <fpage>248</fpage>
          -
          <lpage>254</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -31759-0_
          <fpage>19</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -31759-0\_
          <fpage>19</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>C.</given-names>
            <surname>Lynch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Miner</surname>
          </string-name>
          ,
          <article-title>Complete trigger selection in satisfiability modulo first-order theories</article-title>
          ,
          <year>2023</year>
          . arXiv:
          <volume>2306</volume>
          .
          <fpage>09436</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>J.</given-names>
            <surname>Marques-Silva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Lynce</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Malik</surname>
          </string-name>
          ,
          <article-title>Conflict-driven clause learning SAT solvers</article-title>
          , in: A.
          <string-name>
            <surname>Biere</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Heule</surname>
          </string-name>
          , H. van Maaren, T. Walsh (Eds.),
          <source>Handbook of Satisfiability - Second Edition</source>
          , volume
          <volume>336</volume>
          <source>of Frontiers in Artificial Intelligence and Applications</source>
          , IOS Press,
          <year>2021</year>
          , pp.
          <fpage>133</fpage>
          -
          <lpage>182</lpage>
          . URL: https://doi.org/10.3233/FAIA200987. doi:
          <volume>10</volume>
          .3233/FAIA200987.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>C.</given-names>
            <surname>Dross</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Conchon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kanig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Paskevich</surname>
          </string-name>
          ,
          <article-title>Adding decision procedures to SMT solvers using axioms with triggers</article-title>
          ,
          <source>J. Autom. Reason</source>
          .
          <volume>56</volume>
          (
          <year>2016</year>
          )
          <fpage>387</fpage>
          -
          <lpage>457</lpage>
          . URL: https://doi.org/10. 1007/s10817-015-9352-2. doi:
          <volume>10</volume>
          .1007/s10817-015-9352-2.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>K. R. M. Leino</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Pit-Claudel</surname>
          </string-name>
          ,
          <article-title>Trigger selection strategies to stabilize program verifiers</article-title>
          , in: S. Chaudhuri,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Farzan (Eds.),
          <source>Computer Aided Verification - 28th International Conference, CAV 2016</source>
          , Toronto, ON, Canada,
          <source>July 17-23</source>
          ,
          <year>2016</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>I</given-names>
          </string-name>
          , volume
          <volume>9779</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2016</year>
          , pp.
          <fpage>361</fpage>
          -
          <lpage>381</lpage>
          . URL: https://doi. org/10.1007/978-3-
          <fpage>319</fpage>
          -41528-4_
          <fpage>20</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -41528-4\_
          <fpage>20</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Moskal</surname>
          </string-name>
          ,
          <article-title>Programming with triggers</article-title>
          ,
          <source>in: Proceedings of the 7th International Workshop on Satisfiability Modulo Theories</source>
          , SMT '09,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2009</year>
          , p.
          <fpage>20</fpage>
          -
          <lpage>29</lpage>
          . URL: https://doi.org/10.1145/1670412.1670416. doi:
          <volume>10</volume>
          .1145/ 1670412.1670416.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>H.</given-names>
            <surname>Barbosa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fontaine</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <article-title>Congruence closure with free variables</article-title>
          , in: A.
          <string-name>
            <surname>Legay</surname>
          </string-name>
          , T. Margaria (Eds.),
          <article-title>Tools and Algorithms for the Construction and Analysis of Systems -</article-title>
          23rd International Conference, TACAS 2017,
          <article-title>Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2017</article-title>
          , Uppsala, Sweden,
          <source>April 22-29</source>
          ,
          <year>2017</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>II</given-names>
          </string-name>
          , volume
          <volume>10206</volume>
          of Lecture Notes in Computer Science,
          <year>2017</year>
          , pp.
          <fpage>214</fpage>
          -
          <lpage>230</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>662</fpage>
          -54580-5_
          <fpage>13</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>662</fpage>
          -54580-5\_
          <fpage>13</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. W.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <article-title>Constraint solving for finite model finding in SMT solvers</article-title>
          ,
          <source>Theory Pract. Log. Program</source>
          .
          <volume>17</volume>
          (
          <year>2017</year>
          )
          <fpage>516</fpage>
          -
          <lpage>558</lpage>
          . URL: https://doi.org/10.1017/ S1471068417000175. doi:
          <volume>10</volume>
          .1017/S1471068417000175.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>P.</given-names>
            <surname>Rümmer</surname>
          </string-name>
          ,
          <article-title>E-matching with free variables</article-title>
          , in: N.
          <string-name>
            <given-names>S.</given-names>
            <surname>Bjørner</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Voronkov (Eds.),
          <source>Logic for Programming</source>
          ,
          <source>Artificial Intelligence, and Reasoning - 18th International Conference, LPAR-18</source>
          , Mérida, Venezuela, March
          <volume>11</volume>
          -15,
          <year>2012</year>
          . Proceedings, volume
          <volume>7180</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2012</year>
          , pp.
          <fpage>359</fpage>
          -
          <lpage>374</lpage>
          . URL: https://doi.org/10.1007/ 978-3-
          <fpage>642</fpage>
          -28717-6_
          <fpage>28</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -28717-6\_
          <fpage>28</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>A.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Barbosa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fontaine</surname>
          </string-name>
          ,
          <article-title>Revisiting enumerative instantiation</article-title>
          , in: D.
          <string-name>
            <surname>Beyer</surname>
          </string-name>
          , M. Huisman (Eds.),
          <article-title>Tools and Algorithms for the Construction and Analysis of Systems -</article-title>
          24th International Conference, TACAS 2018,
          <article-title>Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018</article-title>
          , Thessaloniki, Greece,
          <source>April 14-20</source>
          ,
          <year>2018</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>II</given-names>
          </string-name>
          , volume
          <volume>10806</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2018</year>
          , pp.
          <fpage>112</fpage>
          -
          <lpage>131</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -89963-
          <issue>3</issue>
          _7. doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -89963-3\_7.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>P.</given-names>
            <surname>Fontaine</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Schurr</surname>
          </string-name>
          ,
          <article-title>Quantifier simplification by unification in SMT</article-title>
          , in: B.
          <string-name>
            <surname>Konev</surname>
          </string-name>
          , G. Reger (Eds.),
          <source>Frontiers of Combining Systems - 13th International Symposium, FroCoS</source>
          <year>2021</year>
          , Birmingham, UK, September 8-
          <issue>10</issue>
          ,
          <year>2021</year>
          , Proceedings, volume
          <volume>12941</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2021</year>
          , pp.
          <fpage>232</fpage>
          -
          <lpage>249</lpage>
          . URL: https://doi.org/10.1007/ 978-3-
          <fpage>030</fpage>
          -86205-3_
          <fpage>13</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -86205-3\_
          <fpage>13</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>A.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          , L. M. de Moura,
          <article-title>Finding conflicting instances of quantified formulas in SMT, in: Formal Methods in Computer-Aided Design</article-title>
          ,
          <string-name>
            <surname>FMCAD</surname>
          </string-name>
          <year>2014</year>
          , Lausanne, Switzerland,
          <source>October 21-24</source>
          ,
          <year>2014</year>
          , IEEE,
          <year>2014</year>
          , pp.
          <fpage>195</fpage>
          -
          <lpage>202</lpage>
          . URL: https://doi.org/10.1109/ FMCAD.
          <year>2014</year>
          .
          <volume>6987613</volume>
          . doi:
          <volume>10</volume>
          .1109/FMCAD.
          <year>2014</year>
          .
          <volume>6987613</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>A.</given-names>
            <surname>Niemetz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Preiner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. W.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          ,
          <article-title>Syntax-guided quantifier instantiation</article-title>
          , in: J.
          <string-name>
            <given-names>F.</given-names>
            <surname>Groote</surname>
          </string-name>
          , K. G. Larsen (Eds.),
          <article-title>Tools and Algorithms for the Construction and Analysis of Systems -</article-title>
          27th International Conference, TACAS 2021,
          <article-title>Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2021</article-title>
          ,
          <string-name>
            <given-names>Luxembourg</given-names>
            <surname>City</surname>
          </string-name>
          , Luxembourg, March 27 - April 1,
          <year>2021</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>II</given-names>
          </string-name>
          , volume
          <volume>12652</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2021</year>
          , pp.
          <fpage>145</fpage>
          -
          <lpage>163</lpage>
          . URL: https://doi. org/10.1007/978-3-
          <fpage>030</fpage>
          -72013-
          <issue>1</issue>
          _8. doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -72013-1\_8.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>J.</given-names>
            <surname>Hoenicke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Schindler</surname>
          </string-name>
          ,
          <article-title>Incremental search for conflict and unit instances of quantiifed formulas with e-matching</article-title>
          , in: F.
          <string-name>
            <surname>Henglein</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Shoham</surname>
            , Y. Vizel (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 - 22nd
          <source>International Conference, VMCAI 2021</source>
          , Copenhagen, Denmark, January
          <volume>17</volume>
          -
          <issue>19</issue>
          ,
          <year>2021</year>
          , Proceedings, volume
          <volume>12597</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2021</year>
          , pp.
          <fpage>534</fpage>
          -
          <lpage>555</lpage>
          . URL: https://doi.org/10.1007/ 978-3-
          <fpage>030</fpage>
          -67067-2_
          <fpage>24</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -67067-2\_
          <fpage>24</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Basin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Ganzinger</surname>
          </string-name>
          ,
          <source>Automated complexity analysis based on ordered resolution, J. ACM</source>
          <volume>48</volume>
          (
          <year>2001</year>
          )
          <fpage>70</fpage>
          -
          <lpage>109</lpage>
          . URL: https://doi.org/10.1145/363647.363681. doi:
          <volume>10</volume>
          .1145/363647. 363681.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>R.</given-names>
            <surname>Givan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. A.</given-names>
            <surname>McAllester</surname>
          </string-name>
          ,
          <article-title>Polynomial-time computation via local inference relations</article-title>
          ,
          <source>ACM Trans. Comput. Log</source>
          .
          <volume>3</volume>
          (
          <year>2002</year>
          )
          <fpage>521</fpage>
          -
          <lpage>541</lpage>
          . URL: https://doi.org/10.1145/566385.566387. doi:
          <volume>10</volume>
          .1145/566385.566387.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>V.</given-names>
            <surname>Sofronie-Stokkermans</surname>
          </string-name>
          ,
          <article-title>Hierarchic reasoning in local theory extensions</article-title>
          , in: R. Nieuwenhuis (Ed.),
          <source>Automated Deduction - CADE-20</source>
          , 20th International Conference on Automated
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>