<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>CDSAT for Nondisjoint Theories with Shared Predicates: Arrays With Abstract Length⋆</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Maria Paola Bonacina</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stéphane Graham-Lengrand</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Natarajan Shankar</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>SRI International</institution>
          ,
          <addr-line>Menlo Park, California</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Università degli Studi di Verona</institution>
          ,
          <addr-line>Strada Le Grazie 15, 37134 Verona</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <fpage>18</fpage>
      <lpage>37</lpage>
      <abstract>
        <p>CDSAT (Conflict-Driven Satisfiability ) is a paradigm for theory combination that works by coordinating theory modules to reason in the union of the theories in a conflict-driven manner. We generalize CDSAT to the case of nondisjoint theories by presenting a new CDSAT theory module for a theory of arrays with abstract length, which is an abstraction of the theory of arrays with length. The length function is a bridging function as it forces theories to share symbols, but the proposed abstraction limits the sharing to one predicate symbol. The CDSAT framework handles shared predicates with minimal changes, and the new module satisfies the CDSAT requirements, so that completeness is preserved.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Combination of theories</kwd>
        <kwd>Nondisjoint theories</kwd>
        <kwd>CDSAT</kwd>
        <kwd>Theory of arrays</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>bridge between arrays and linear integer arithmetic (LIA) that forces the two theories to
share symbols (e.g., the theory of arrays with MaxDif [6] and LIA share 0 and ≤).</p>
      <p>We present a new abstract approach to nondisjoint theories with bridging functions,
and we exemplify it with the theory ArrL of arrays with abstract length. In ArrL, the
length of an array can be an integer, but does not have to be, and the concept of an index
being within bounds is abstracted into that of an index being admissible. Admissibility
is expressed by the shared predicate Adm, which remains uninterpreted for ArrL, while
another theory  , which is not necessarily LIA, provides its interpretation. In this manner,
the two theories share a minimum amount of information, namely Adm and the sorts of
its arguments, indices and lengths. In ArrL, an array is interpreted as a partial updatable
function, whose domain of definition is given by the set of admissible indices. We define
an axiomatization and a CDSAT theory module for the theory ArrL.</p>
      <p>We show that CDSAT is complete for this kind of nondisjoint combination (soundness
and termination are preserved). The completeness of CDSAT employs the concept of a
leading theory, say  1, which may be one of the theories in the union or a theory that only
needs to exist in principle.  1 acts as a hub: it has the information shared between any
two theories, and it sufices that each theory agrees with  1 on the shared information to
have an agreement among all the theories. If the theories are disjoint, they only need
to agree on equalities and the cardinalities of shared sorts. Thus,  1 has all the sorts in
the union and aggregates all the cardinality constraints on the shared sorts [1, 2]. If the
theories are not disjoint, they also need to agree on shared symbols other than equality.</p>
      <sec id="sec-1-1">
        <title>Therefore,  1 has also all the symbols shared by any two theories. For example, ArrL and</title>
        <p>share the predicate Adm with  1. The agreement between  and  1 and the agreement
between ArrL and  1 imply the agreement between  and ArrL, on the interpretation of</p>
        <sec id="sec-1-1-1">
          <title>Adm, equalities, and cardinalities of shared sorts.</title>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Preliminaries</title>
      <p>A signature Σ is given by a set  of sorts, including the sort prop of Booleans, and a set 
of sorted symbols, with equality symbols ≃ for all sorts  ∈  . A collection  = (  ) ∈
of disjoint sets of variables is available. We use  and  for terms, and  for formulae that
are the terms of sort prop. Σ[ ]-interpretations and Σ-structures are defined as usual.</p>
      <sec id="sec-2-1">
        <title>A theory  is defined by a signature Σ and a set  of axioms that state properties</title>
        <p>of symbols in Σ, or as the class of Σ-structures that satisfy  , called models of  or
 -models. Symbols that do not appear in the axioms are free or uninterpreted. Let
 1, . . . ,   with signatures Σ = (  ,   ), ∀ , 1 ≤  ≤  , be the theories to be combined.
Their union is denoted  ∞, with signature Σ∞ = ( ∞,  ∞), for  ∞ = ⋃︀  =1   and
 ∞ = ⋃︀  =1   . The symbols  and Σ stand for any   and Σ including  ∞ and Σ∞. If
the top symbol of a subterm  of a  ∞-term  is not in   , term  is a variable for theory
  : term  and its top symbol are dubbed Σ -foreign. Recall that ⊴ is the subterm
ordering. The set fvΣ( ) of the free Σ-variables of term  is the set of all ◁-maximal
subterms of  whose top symbol is Σ-foreign.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. A Theory of Arrays with Abstract Length</title>
      <p>The simplest theory of arrays is the theory Arr0 of arrays without extensionality, which
does not have axioms specifying when two arrays are equal. The theory Arr of arrays
with extensionality adds to Arr0 an extensionality axiom saying that two arrays are equal
if and only if they have the same elements at all indices. In this section we define a
theory ArrL of arrays with extensionality and abstract length, which extends Arr0 in a
diferent way, specifying diferent conditions for two arrays to be equal.</p>
      <sec id="sec-3-1">
        <title>The signature of ArrL has sorts for arrays, indices, elements, and lengths. In order to</title>
        <p>allow arrays of diferent types, including arrays of arrays, one assumes a set of
basic sorts,
which includes prop, and an array sort constructor, denoted ⇒, so that  ⇒  is the sort
of arrays with indices of sort  , elements of sort  , and lengths of sort  . The set  ArrL</p>
        <p>The signature of ArrL includes the function symbols select : ( ⇒  )×
of the sorts of ArrL is the free closure of the set of basic sorts with respect to ⇒.
→  for select
or read, store : ( ⇒  )× ×</p>
        <p>→ ( ⇒  ) for store or write, and len : ( ⇒  ) →  that
maps an array  to its length len( ). Terms of the form select(,  ) may be abbreviated
as  [ ]. The signature also features a predicate symbol Adm :  ×

→ prop, such that if 
is a term of sort  and  is a term of sort  ⇒  , then Adm(, len( )) is true if index  is
admissible with respect to len( ). Another theory shares with ArrL the symbol Adm and
the sorts  and  (sharing the sort  is not necessary) and provides a concrete meaning
of admissibility. The notion of admissibility is an abstraction that frees the theory of
arrays from the commitment that lengths are positive integers and that the indices of
array  are the consecutive nonnegative integers in the interval [0,  ) for  = len( ).</p>
      </sec>
      <sec id="sec-3-2">
        <title>Although this is a popular choice (e.g., [6]), it is not the only one.</title>
        <p>Example 1. LIA interprets both the sort  of lengths and the sort  of indices as the set
Z of the integers, and defines</p>
        <p>Adm(,  ) ↔ 0 ≤  &lt;  . A diferent theory may interpret 
as a set  and  as the powerset of  , denoted  ( ), and define
Adm(,  ) ↔  ∈  . In
and 
this case,  ∈  ( ) is the set of admissible indices, indices are not necessarily numbers,
does not have to be an interval nor even an ordered set. Another theory may
interpret  as Z and  as the set of pairs of the form (, 
), where 
is a binary
number representing the start address of the array in memory, and  is an integer
representing the number of admissible indices. Then, the axiom defining admissibility
would be Adm(, (, 
)) ↔</p>
        <p>
          0 ≤  &lt;  , where the start address plays no role in
characterizing the set of admissible indices. With this axiom for admissibility, we can
have two distinct arrays  and  with the same set of admissible indices {0, 1, 2, 3, 4}, but
len( ) = (
          <xref ref-type="bibr" rid="ref5">000100, 5</xref>
          ) ̸= (
          <xref ref-type="bibr" rid="ref5">010100, 5</xref>
          ) = len( ) because  and  start at distinct addresses.
        </p>
        <p>Let  and  be variables of an  ⇒</p>
        <p>sort,  and  be variables of sort  ,  and 
be variables of sort  , and  and</p>
        <p>
          be variables of sort  . The axiomatization of ArrL
includes congruence axioms (
          <xref ref-type="bibr" rid="ref1">1</xref>
          )-(
          <xref ref-type="bibr" rid="ref4">4</xref>
          ), select-over-store axioms (
          <xref ref-type="bibr" rid="ref5">5</xref>
          )-(
          <xref ref-type="bibr" rid="ref6">6</xref>
          ), an axiom saying
that length is unafected by a store (
          <xref ref-type="bibr" rid="ref7">7</xref>
          ), and an
extensionality axiom (
          <xref ref-type="bibr" rid="ref8">8</xref>
          ):
∀, , , .
        </p>
        <p>
          ( ≃  ∧  ≃  ) → select(,  ) ≃ select(,  ),
(
          <xref ref-type="bibr" rid="ref1">1</xref>
          )
∀, , , , , .
(
          <xref ref-type="bibr" rid="ref3">3</xref>
          )
(
          <xref ref-type="bibr" rid="ref4">4</xref>
          )
(
          <xref ref-type="bibr" rid="ref5">5</xref>
          )
(
          <xref ref-type="bibr" rid="ref6">6</xref>
          )
(
          <xref ref-type="bibr" rid="ref7">7</xref>
          )
(
          <xref ref-type="bibr" rid="ref8">8</xref>
          )
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>The other direction of axiom (8) is omitted as it follows from the congruence axioms.</title>
        <p>
          Axiom (
          <xref ref-type="bibr" rid="ref6">6</xref>
          ) is the same as in theories Arr0 and Arr. Axiom (
          <xref ref-type="bibr" rid="ref5">5</xref>
          ), (
          <xref ref-type="bibr" rid="ref7">7</xref>
          ), and (
          <xref ref-type="bibr" rid="ref8">8</xref>
          ) are new.
Axiom (
          <xref ref-type="bibr" rid="ref8">8</xref>
          ) says that  and  are equal if they have the same length and the same elements
at all admissible indices. In other words, if  and  are diferent, either they difer in
length or at an admissible index. On the other hand, in theory Arr, if  and  are diferent,
they difer at an arbitrary index. As the following example shows, neither theory entails
the extensionality axiom of the other.
        </p>
        <p>
          Example 2. Picture a model of Arr, extended with an interpretation of len and Adm,
where arrays  and  have the same length, agree at all admissible indices, but disagree at
an index that is not admissible:  ≃  is false in this model and hence the extensionality
axiom of ArrL (axiom (
          <xref ref-type="bibr" rid="ref8">8</xref>
          )) also is false. On the other hand, picture a model of ArrL where
arrays  and  agree at all indices but have diferent lengths:  ≃  is false in this model
and hence the extensionality axiom of Arr also is false. Note that this can happen even if
 and  have the same set of admissible indices, as in the third case of Example 1, where
arrays starting at distinct addresses have diferent lengths and hence are diferent. This
interpretation of array equality is common in programming languages.
        </p>
      </sec>
      <sec id="sec-3-4">
        <title>Axioms (5) and (7) are designed having in mind the intuition that a store at an</title>
        <p>
          inadmissible index leaves the array unchanged. Therefore, first, the length is unchanged
(axiom (
          <xref ref-type="bibr" rid="ref7">7</xref>
          )), and, second, the value argument of the store is lost, so that axiom (
          <xref ref-type="bibr" rid="ref5">5</xref>
          )
requires index  to be admissible. The theory of arrays with MaxDif [6] makes the same
choices in the special case where the admissible indices of an array form an interval [0,  ).
        </p>
        <p>
          Alternatively, one can have a theory where a store at an inadmissible index  in array
 changes the length. This is captured by replacing axiom (
          <xref ref-type="bibr" rid="ref7">7</xref>
          ) with
∀, , .
        </p>
        <p>Adm(, len( )) → len(store(, , 
)) ≃ len( ).</p>
        <p>
          (
          <xref ref-type="bibr" rid="ref9">9</xref>
          )
Then, one can drop Adm(, len( )) from the antecedent of axiom (
          <xref ref-type="bibr" rid="ref5">5</xref>
          ) restoring the
selectover-store axioms of theory Arr. In the resulting theory (like in Arr), if  ≃ store(, ,  ),
then by congruence select(,  ) ≃ select(store(, ,  ),  ), and by the select-over-store axiom
select(,  ) ≃  . In other words, select(,  ) ̸≃  implies  ̸≃ store(, ,  ). However, by
axiom (
          <xref ref-type="bibr" rid="ref8">8</xref>
          ) with  replaced by store(, ,  ), if select(,  ) ̸≃  and ¬ Adm(, len( )), then
len( ) ̸≃ len(store(, ,  )). One way of further specifying the change of length is to impose
that index  be admissible in store(, ,  ). This is obtained by adding the axiom
        </p>
        <p>
          (Adm(, len( )) ∨  ≃  ) → Adm(, len(store(, , 
Models of this theory include data structures such as finite maps and vectors (aka dynamic
arrays) which satisfy stronger versions of axiom (
          <xref ref-type="bibr" rid="ref10">10</xref>
          ). Maps satisfy the double implication
        </p>
        <p>
          (Adm(, len( )) ∨  ≃  ) ↔ Adm(, len(store(, , 
(Adm(, len( )) ∨  ≤  ) ↔ Adm(, len(store(, , 
))).
))),
(
          <xref ref-type="bibr" rid="ref11">11</xref>
          )
(
          <xref ref-type="bibr" rid="ref12">12</xref>
          )
        </p>
      </sec>
      <sec id="sec-3-5">
        <title>Vectors assume that indices are integers and satisfy the double implication</title>
        <p>which captures the growth of the vector as an efect of the store.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. CDSAT for Nondisjoint Theories Sharing Predicates</title>
      <p>In this section we summarize the CDSAT framework and we modify it sparingly to
accommodate shared predicates. CDSAT works with assignments of values to terms,
including formulae that get Boolean values. Thus, CDSAT treats Boolean and first-order
assignments, initial assignments and generated assignments, as uniformly as possible. The
with signature Σ are provided by a conservative theory extension
values for a theory</p>
      <p>+ with signature Σ+ that adds as many constant symbols as needed to name all the
individuals in the sets used to interpret the sorts of  . The added constants are called
 -values. In this way terms and values are kept separate. Conservativity means that if a
Σ-formula is  -satisfiable then it is also 
true and false, so that true and false are  -values for all  . The trivial extension adds
+-satisfiable. All extensions add the values
only true and false. The signature of  ∞
+ is the union of the signatures of  1+, . . . ,  
+
arbitrary sort. A  -assignment is one where all assigned values are  -values.
so that all values are  ∞-values. We use b for true or false and c for generic values of
Definition 1 (Assignment).</p>
      <p>A set  = { 1←c1, . . . ,  
←c } is a
 -assignment if for all
 , 1 ≤  ≤  ,   is a  ∞-term and c is a  -value of the same sort.</p>
      <p>The set of terms that occur in  as above is  ( ) = { |
 ⊴   , 1 ≤  ≤  }. If all
values in  are Boolean,  is a Boolean assignment. If no value in  is Boolean,  is a
ifrst-order assignment . The flip</p>
      <p>of a Boolean singleton assignment  , written  , assigns
 is an arbitrary variable of sort prop. We use 
for generic assignments, 
the opposite Boolean value to the same formula. Standard abbreviations are  for  ←true,
 for  ←false,  ̸≃  for ( ≃  )←false, ⊤ for ( ≃prop  )←true, and ⊥ for  ̸≃prop  , where
for generic
singletons,  for Boolean singletons, and 
or 
for  ∞-assignments. An unqualified
and  ←c2 with c1 ̸= c2, from which CDSAT deduces ⊥
. The reason for this diference is
assignment is a</p>
      <p>∞-assignment. A  -assignment is plausible if it does not contain both
 ←true and  ←false. A plausible  -assignment may contain first-order assignments  ←c1
that CDSAT can generate terms  1 ≃  2 and  1 ̸≃  2 from terms  1 and  2 of sort  ,
except when  is prop. The exception prevents the construction of an infinite series such
as  1 = ( ≃prop  ),  2 = ( 1 ≃prop  1),  3 = ( 2 ≃prop  2), etc. Input assignments are assumed
to be plausible and CDSAT preserves plausibility. The view that a theory   has of a
 ∞-assignment</p>
      <p>is made of the   -assignments in  , plus all equalities and inequalities
between terms of a   -sort that are entailed by first-order assignments in  .
Note that a Boolean assignment is in every theory view. A 
• {  1 ̸≃  2 |  1←c1,  2←c2 are in  , have sort  ∈  ∖{ prop}, and c1̸=c2}.
and  ←c2 in  such that c1 ̸= c2 and the sort of  and  is a sort of  . A  -assignment
{</p>
      <p>←c,  ←c} ⊆  , then ℳ
a  -assignment  , written ℳ |
stronger than endorsing  : if ℳ |
also satisfies  ≃  . Endorsing the  -view</p>
      <p>of  is generally
=  , if ℳ</p>
      <p>satisfies  ≃ c for all pairs ( ←c) ∈  . If
= 

, then ℳ
also satisfies  ̸≃  , for all pairs  ←c1
 is satisfiable
if there is a 
 , the  -view  
of</p>
      <p>with set of sorts  and a  ∞-assignment
is the  -assignment equal to the union of the following sets:
⊢  then  |=  .</p>
      <p>= ∅).</p>
      <sec id="sec-4-1">
        <title>Every theory   (1 ≤  ≤  ) is equipped with a theory module ℐ  , whose inference rules</title>
        <p>produce inferences of the form  ⊢ℐ   (or  ⊢  for short) where  is a   -assignment
and  is a Boolean assignment. All CDSAT theory modules include the equality inference
rules in Fig. 1. CDSAT theory modules are required to be sound: if</p>
        <p>CDSAT works with a trail Γ which is a sequence of distinct singleton assignments
that are either decisions, written ? to convey guessing, or justified assignments , written

 ⊢ . Decisions can be either Boolean or first-order assignments. The
 is a set of singleton assignments that appear before 
justification
in the trail. Input
in  ⊢
assignments are justified assignments with empty justification. All justified assignments
are Boolean except for input first-order assignments. Given a trail
Γ =  0, . . . ,   , the
level of an assignment is levelΓ(  ) = 1 + max{levelΓ(  ) |  &lt;  }, if   is a decision, and
levelΓ(  ) = max{levelΓ( ) | 
∈  }, if   is  ⊢
  (where levelΓ(  ) = 0 if</p>
        <sec id="sec-4-1-1">
          <title>The transition system of CDSAT, given in Fig. 2, comprises trail rules and conflict state rules (see [1, 2] for a detailed description). A conflict state is made of a trail and a conflict, where a conflict is an unsatisfiable assignment. Rule</title>
        </sec>
        <sec id="sec-4-1-2">
          <title>Decide expands the trail</title>
          <p>with a decision ? , provided it is acceptable for a  -module ℐ in the  -view of the trail.
Definition 3 (Acceptability).</p>
          <p>A singleton  -assignment  ←c is acceptable for a 
 is relevant to  in  .
module ℐ in a  -assignment  , if (i)  does not assign a  -value to  , (ii) if  ←c
is first-order, there are no ℐ -inferences  ′ ∪ { ←c} ⊢ℐ  for  ′ ⊆  and  ∈  , and (iii)
UndoClear
Resolve
UndoDecide
⟨Γ;  ⊎ { }⟩
⟨Γ;  ⊎ { }⟩
⟨Γ;  ⊎ { }⟩
LearnBackjump
⟨Γ;  ⊎  ⟩
−→
−→
−→
−→
=⇒
=⇒
=⇒
=⇒
Γ, ?
Γ,  ⊢
unsat
Γ′
Γ≤ −1
Γ≤ −1, ?
Γ≤ ,</p>
          <p>⊢
Decide
Deduce
Fail
ConflictSolve Γ
Γ
Γ
Γ
Trail rules (assume 1 ≤  ≤  )
The next three rules share the conditions: 
Conflict state rules (recall that ⊎ is disjoint union)
if  is an acceptable   -assignment for ℐ  in Γ 
⊆ Γ, (</p>
          <p>⊢  ), and  ̸∈ Γ.
if  ̸∈ Γ and  is in ℬ
if  ∈ Γ and levelΓ(
if  ∈ Γ, levelΓ( ∪ { }
⟨Γ; 
∪ { }⟩ =⇒* Γ′
∪ { }) = 0</p>
          <p>) &gt; 0, and
if  is a first-order decision of level  &gt; levelΓ( )
levelΓ( ′) = levelΓ( ⊎ { }</p>
          <p>)
⊢
⟨Γ;  ∪  ⟩ if (</p>
          <p>) ∈ Γ and for no first-order decision  ′ ∈ 
 = levelΓ( ) = levelΓ( ) = levelΓ( ′)
if (  ⊢</p>
          <p>) ∈ Γ and for a first-order decision  ′ ∈ 
if  is a clausal form of  ,  is in ℬ ,
 /∈ Γ,  /∈ Γ, and levelΓ( ) ≤  &lt;
levelΓ( )</p>
          <p>Condition (i) avoids multiple assignments to a term by the same theory and preserves
plausibility. Condition (ii) blocks a first-order assignment that triggers an inference
{</p>
          <p>,  }
yielding a trivial conflict</p>
          <p>. Condition (iii) ensures that the assigned term  is
relevant. The definition of relevance of a term to a theory in an assignment is the first
definition that has to be changed to accommodate shared predicates . First, it makes sense
than equality the latter subtlety is irrelevant.
may decide a value for a term  if  occurs in the  -view Γ
 of the
has values for the sort of  . For equality, it also makes sense that ℐ
may
decide  ≃  if  and  occur in Γ , even if  ≃  does not, and</p>
          <p>for the sort of  and  : indeed, if</p>
          <p>has values for their sort, ℐ can decide values for 
and  , and glean the value of  ≃  by an equality inference. For shared predicates other
does not have values
Definition 4 (Nondisjoint Relevance).</p>
          <p>Given a theory 
with signature Σ = (, 
) and
a  -assignment  , where  ( ) is the set of terms that occur in  , a term  is relevant
to 
in  , if either (i)</p>
          <p>∈  ( ) and 
equality  1 ≃  2 such that  1,  2 ∈  ( ),  ∈  , but 
or (iii)  is a Boolean term  ( 1, . . . ,   ) such that 
 : ( 1× · · · ×  )→prop, and for all  , 1 ≤  ≤  ,   ∈  ( ) and   ∈  .
has values for the sort of  ; or (ii)  is an</p>
          <p>does not have values for sort  ;
∈  is a shared predicate symbol
Example 3. Consider ArrL with Adm interpreted by LIA (cf. Example 1). Given
assignment 
LIA is 
in 
= { ←3,  ≃ , len( ) ≃ , 
←5, select(store(, , 
),  ) ̸≃  }, the view of 
for
∪ { ̸≃  }, whereas the view of</p>
          <p>for ArrL contains the Boolean assignments
and { ̸≃  }. The term Adm(,  ) does not occur in either view, but its arguments
do. Thus, Adm(,  ) is relevant to both LIA and ArrL by Condition (iii) in Definition 4.
venture Adm(,  )←false, LIA would detect a conflict.</p>
          <p>Having the definition of</p>
          <p>Adm, LIA can decide wisely Adm(,  )←true. If ArrL were to
inference</p>
          <p>Rule Deduce expands the trail with a justified assignment  ⊢ supported by a theory
⊢  for some  , 1 ≤  ≤  . These deductions cover propagation or conflict
detection/explanation.</p>
        </sec>
        <sec id="sec-4-1-3">
          <title>Propagations put on the trail the consequences of decisions.</title>
        </sec>
        <sec id="sec-4-1-4">
          <title>Conflict detection detects a theory conflict. Conflict explanation transforms it into</title>
          <p>a Boolean conflict:</p>
          <p>can be derived and  is on the trail. If such a conflict arises
at level 0, rule Fail reports unsatisfiability. If such a conflict arises at a level greater
than 0, the system enters conflict state with rule
ConflictSolve . Rule Resolve transforms
the conflict state until the conflict can be solved by either
UndoClear or UndoDecide
or LearnBackjump, producing a modified trail that
ConflictSolve
returns, allowing the
search to resume. Trail Γ≤ is the restriction of trail Γ to its elements of level at most
(cf. UndoClear, UndoDecide, and LearnBackjump). The clausal form of a Boolean
of terms (in
from which ℐ  can
 1+-model ℳ 1</p>
          <p>As theory module inferences can generate new (i.e., non-input) terms, every theory
practice, the set of input terms), basis ( ) is a finite
superset of 
module ℐ  comes with a local basis denoted basis . Given a finite set 
pick new terms. From the local bases it is possible to construct a finite stable global basis
ℬ , where stable means basis (ℬ ) ⊆ ℬ for all  , 1 ≤  ≤  (see [2] for the details of the
construction). The sets produced by the local bases and hence ℬ are required to be closed,
meaning ◁-closed (if  is a member so is every  such that  ◁  ) and equality-closed
(if non-Boolean terms  and  are members so is  ≃  ). CDSAT checks that the terms

assignment</p>
          <p>CDSAT is sound if the theory modules are sound [1, Thm. 1]; and terminating, if ℬ is
ifnite , closed, and contains all input terms [1, Thm. 2]. Soundness and termination are
not afected by the presence of nondisjoint theories, as long as their modules are sound,
generated during a derivation are in ℬ</p>
          <p>(cf. Deduce and LearnBackjump).
come with finite closed local bases, and there exists a ℬ
with the required properties.</p>
        </sec>
        <sec id="sec-4-1-5">
          <title>Completeness of CDSAT requires that there is a leading theory, its module is complete,</title>
          <p>the other modules are leading-theory-complete, ℬ is stable and contains all input terms [1,
Thms. 3, 4, 5]. The notions of a module being complete (for its own theory) or
leadingtheory-complete do not need to be reformulated for the nondisjoint case. First, we say
 -assignment  by adding either a
 -assignment  that is
acceptable for ℐ in  (cf. Decide), or a Boolean assignment  ←b such that  ′ ⊢ℐ ( ←b),
for  ′ ⊆  , ( ←b) ∈/  , and  ∈ basis( ) (cf. Deduce, Fail, and ConflictSolve ). Then,
a  -module ℐ is complete if whenever it cannot expand a plausible  -assignment  ,
there exists a 
shared terms [1, Def. 13]. Leading-theory-compatibility is the second definition that
agrees with ℳ 1 on the cardinality of shared sorts and on equalities between
is leading-theory-compatible with 
disjoint case, leading-theory-compatibility says that if ℳ 1 |= 
 1 for a
leading-theory-complete if whenever it cannot expand a plausible  -assignment  , then 
sharing the set of terms  ( ) [1, Def. 14]. In the
then there exists a

equality to all shared predicates.</p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>A  -assignment  is leading-theory-compatible with</title>
        <p>Let  1 be the leading theory,</p>
        <p>sharing  , if for all  1+[
1]) stand for   and Σ

= (  ,   ), 2 ≤  ≤  , and 
be a set of terms.
1 such that ℳ 1 |=   1 with fvΣ1 ( ∪  ) ⊆  1, there exists a 
+[ ]-model
∪  ) ⊆  , such that (i) ℳ |
=  ; (ii) for all shared predicates  ∈
 1 with  : ( 1× · · · ×  )→prop and for all terms  1, . . . ,  
∈ 
( ( 1, . . . ,   )); and (iii) for all sorts 
to domain  ℳ 1 (so that | ℳ | = | ℳ 1 |), such that for all</p>
        <p>of sorts  1, . . . ,   ,
∈  , there exists a
shared predicates  ∈  ∩</p>
        <p>1 with  : ( 1× · · · ×  )→prop and for all inhabitants  1, . . . ,  
When equality is the only shared predicate, property ( ) in the above definition reduces
to ℳ
 1,  2 ∈</p>
        <p>( 1) = ℳ
models interpret equality as identity. With other shared predicates, the property is stated
of sort  . Property ( ) reduces to | ℳ | = | ℳ 1 | for all  ∈  , because all
explicitly, relying on named bijections between the interpretations of a shared sort.
( 2) if and only if ℳ
1( 1) = ℳ 1( 2) for all sorts  ∈ 
and terms</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. A CDSAT</title>
    </sec>
    <sec id="sec-6">
      <title>Module for Arrays with Abstract Length</title>
      <p>
        In previous work we gave a CDSAT module for theory Arr [1] and proved its
leadingtheory-completeness [2, Thm. 4]. In this section we give a CDSAT theory module ℐ ArrL
for theory ArrL (cf. Sect. 3 for Arr, ArrL and the axioms of ArrL). The reduction to clausal
form of the extensionality axiom (
        <xref ref-type="bibr" rid="ref8">8</xref>
        ) of ArrL introduces the Skolem function symbols
dif : ( ⇒  )×( ⇒  ) →  that map two arrays to an index, called a witness, where
they difer. Module ℐ ArrL augments the equality rules of Fig. 1 with the following rules:
 ≃ ,  ≃ , select(,  ) ̸≃ select(,  ) ⊢ArrL ⊥
 ≃ ,  ≃ , 
≃ , store(, , 
) ̸≃ store(, ,
      </p>
      <p>) ⊢ArrL ⊥
 ≃  ⊢ArrL len( ) ≃ len( )
 ≃ ,</p>
      <p>≃ , Adm(,  ), ¬ Adm(,  ) ⊢ArrL ⊥
 ≃ ,</p>
      <p>≃ , dif (,  ) ̸≃ dif (,  ) ⊢ArrL ⊥
 ≃ , len( ) ≃ ,</p>
      <p>
        Adm(,  ),  ≃ store(, , 
), select(,  ) ̸≃ 
⊢ArrL ⊥
 ̸≃ , 
≃ ,  ≃ store(, , 
),  ≃ , select(,  ) ̸≃ select(,  ) ⊢ArrL ⊥
len(store(, , 
)) ̸≃ len( ) ⊢ArrL ⊥
 ̸≃ , len( ) ≃ len( ) ⊢ArrL select(, dif (,  )) ̸≃ select(, dif (,  ))
 ̸≃ , len( ) ≃ len( ) ⊢ArrL Adm(dif (,  ), len( ))
(
        <xref ref-type="bibr" rid="ref13">13</xref>
        )
(
        <xref ref-type="bibr" rid="ref14">14</xref>
        )
(
        <xref ref-type="bibr" rid="ref15">15</xref>
        )
(
        <xref ref-type="bibr" rid="ref16">16</xref>
        )
(
        <xref ref-type="bibr" rid="ref17">17</xref>
        )
(
        <xref ref-type="bibr" rid="ref18">18</xref>
        )
(
        <xref ref-type="bibr" rid="ref19">19</xref>
        )
(
        <xref ref-type="bibr" rid="ref20">20</xref>
        )
(
        <xref ref-type="bibr" rid="ref21">21</xref>
        )
(
        <xref ref-type="bibr" rid="ref22">22</xref>
        )
where rules (
        <xref ref-type="bibr" rid="ref13">13</xref>
        )-(
        <xref ref-type="bibr" rid="ref16">16</xref>
        ) correspond to axioms (
        <xref ref-type="bibr" rid="ref1">1</xref>
        )-(
        <xref ref-type="bibr" rid="ref4">4</xref>
        ), rule (
        <xref ref-type="bibr" rid="ref17">17</xref>
        ) adds congruence for dif ,
rules (
        <xref ref-type="bibr" rid="ref18">18</xref>
        )-(
        <xref ref-type="bibr" rid="ref19">19</xref>
        ) correspond to axioms (
        <xref ref-type="bibr" rid="ref5">5</xref>
        )-(
        <xref ref-type="bibr" rid="ref6">6</xref>
        ) with premises flattened by introducing new
variables, rule (
        <xref ref-type="bibr" rid="ref20">20</xref>
        ) corresponds to axiom (
        <xref ref-type="bibr" rid="ref7">7</xref>
        ), and rules (
        <xref ref-type="bibr" rid="ref21">21</xref>
        ) and (
        <xref ref-type="bibr" rid="ref22">22</xref>
        ) correspond to the
clauses for axiom (
        <xref ref-type="bibr" rid="ref8">8</xref>
        ). The flattening conveys that in order to fire, for example, rule (
        <xref ref-type="bibr" rid="ref18">18</xref>
        ),
it sufices to have on the trail terms of the form  ≃ store(, ,  ) and select(,  ) ̸≃  , and
not necessarily the term select(store(, ,  ),  ) ̸≃  . This is relevant for completeness,
because the equality rules of Fig. 1 do not include a rule for replacement of equals
by equals and hence cannot deduce select(store(, ,  ),  ) ̸≃  from  ≃ store(, ,  ) and
select(,  ) ̸≃  .
      </p>
      <p>
        The first requirement when designing a CDSAT module is that its rules are sound,
which is satisfied by ℐ ArrL. The second requirement is that it is possible to define a
local basis. Rules that generate ⊥ are convenient, because they are useful for conflict
detection and they are trivial for the construction of the local basis, since it sufices
that it contains ⊤ (the flip of ⊤ is ⊥). The third requirement is that the module is
leading-theory-complete. In order to prove this property, the rules of the module must put
on the trail the terms needed for defining a model. This is why rules (
        <xref ref-type="bibr" rid="ref15">15</xref>
        ), (
        <xref ref-type="bibr" rid="ref21">21</xref>
        ) and (
        <xref ref-type="bibr" rid="ref22">22</xref>
        )
produce terms other than ⊥. Thus, the design of a CDSAT module demands a balancing
act between the local basis requirement, which suggests to minimize the generation of
new terms, and the completeness requirement.
      </p>
      <p>The local basis for ArrL maps any given finite set  of terms to a set basisArrL( )
defined as the smallest closed set  such that  ⊆  , ⊤ ∈  , and:
1. For all terms  1 and  2 of sort prop that occur as subterms of terms in  with select,
store, len, or dif as top symbol, ( 1 ≃prop  2) ∈  ;
2. For all terms  ∈  and  ∈  of the same array sort, Ded(,  ) ⊆  , where
Ded(,  ) contains precisely the terms len( ), select(, dif (,  )), select(, dif (,  )),
Adm(dif (,  ), len( )), and Adm(dif (,  ), len( )).</p>
      <sec id="sec-6-1">
        <title>Clause (1) adds equalities between formulae that may be needed (e.g., picture arrays where indices or elements are Boolean) and whose presence is not guaranteed by equalityclosedness that applies to non-Boolean terms. Clause (2) adds the terms that may be generated by rules (15), (21), and (22).</title>
        <p>
          The following reasoning shows that  is finite. For Clause (
          <xref ref-type="bibr" rid="ref1">1</xref>
          ), for terms  1 and  2 of sort
prop, let  1( 1,  2) stand for the conjunction of the conditions  1 ◁  ,  ∈  ,  2 ◁  ,  ∈  ,
top( ) ∈ {select, store, len, dif }, and top( ) ∈ {select, store, len, dif }. Let Sat1( ) be
the union of  and ⋃︀  1( 1, 2){ 1 ≃prop  2}. For Clause (
          <xref ref-type="bibr" rid="ref2">2</xref>
          ), for all terms  of an array sort,
let depth( ) be the number of occurrences of the array sort constructor ⇒ in the sort of  .
Let  =  {depth( ) |  ∈ ,  of an array sort}. For terms  and  of the same array
sort, let   2(,  ) stand for  ∈  ∧  ∈  ∧ depth( ) =  ∧ depth( ) =  . Let Sat2( ) be
the union of  and ⋃︀   2(, ) Ded(,  ). All terms in ⋃︀   2(, ) Ded(,  ) have depth smaller
than  , because even in the case of an array-indexed array the depth of an array term
used as index is smaller. Thus, the closure  = Sat1(Sat21(Sat22(. . . Sat2( ) . . .))) is finite.
A theory ArrL with array sorts  1, . . . ,   ( &gt; 1) can be viewed as the union of  theories
        </p>
      </sec>
      <sec id="sec-6-2">
        <title>ArrL with one array sort each. Then, the above finiteness argument is an instance of the</title>
        <p>proof showing how to construct a finite global basis for a union of theories from the local
bases of the component theories [2].</p>
        <p>As arrays represent functions that can be updated, a model of Arr interprets an array
as an updatable function from indices (meaning a set interpreting the sort of indices) to
elements (meaning a set interpreting the sort of elements). Given generic sets  and
 , and the set   of the functions from  to  , we say that  ⊆   is an updatable
function set from  to  , if every function obtained by a finite number of updates to a
function in  is in  . A model of Arr interprets an array sort as an updatable function
set. A model of ArrL interprets an array as a partial updatable function, whose domain
of definition is the set of admissible indices. Therefore, the cardinality of an array sort
depends on the interpretation of Adm.</p>
        <p>Definition 6 ( ArrL-suitability). A leading theory  1 is suitable for ArrL, or ArrL-suitable,
if it has all the sorts in  ArrL, it shares with ArrL only the equality symbols ≃ for all
sorts  ∈  ArrL and the symbol Adm, and for all  1-models ℳ 1 and array sorts  ⇒ 
there exists a length-indexed collection (  ) ∈ ℳ 1 of nonempty sets such that
|( ⇒  )ℳ 1 | = | ⨄︀  ∈ ℳ 1   |
where   is an updatable function set from   = { |  ∈  ℳ 1 ∧ Admℳ 1 (,  )} to  ℳ 1
for all  ∈  ℳ 1 .</p>
        <p>The set   is the set of updatable functions that interprets the arrays of length  .
The functions in   are partial as they are defined only on the set   of admissible
indices for length  and not on the set  ℳ 1 of all indices. Note that the interpretation of
select remains nonetheless a total function, because every term select(,  ) is interpreted.</p>
      </sec>
      <sec id="sec-6-3">
        <title>ArrL-suitability does not restrict the realm of theories with which ArrL can be combined, because ArrL-suitability merely formalizes sensible requirements on the cardinalities of array sorts. As usual in CDSAT, the leading theory simply aggregates appropriately the requirements on cardinalities coming from the theories in the union.</title>
        <p>
          Example 4. Consider the first case of Example 1. Suppose that ArrL interprets also 
as Z. A leading theory that interprets  ,  , and Adm as stipulated by LIA, and  as
stipulated by ArrL is ArrL-suitable: for all  ∈ Z, the set   of admissible indices is
{ |  ∈ Z ∧ 0 ≤  &lt;  }. Since   is countably infinite for all  ,  &gt; 0, the cardinality of
the interpretation of  ⇒  is countably infinite. Suppose that ArrL interprets  as a
ifnite set of cardinality  ( &gt; 0). A leading theory that interprets  ,  , and Adm as
stipulated by LIA, and  as stipulated by ArrL is ArrL-suitable: since   has cardinality
  for all  ,  &gt; 0, the cardinality of the interpretation of  ⇒  is countably infinite.
In both cases, a leading theory that interprets  ⇒  as being finite is not ArrL-suitable.
Example 5. Consider the union of ArrL and the theory BV of bitvectors, where BV[ ] is
the set of bitvectors of length  . Assume that BV interprets  as BV[1],  as BV[2], and
Adm as true everywhere except for the pairs (0, 00), (
          <xref ref-type="bibr" rid="ref1">1, 00</xref>
          ), and (
          <xref ref-type="bibr" rid="ref1">1, 01</xref>
          ). Suppose that
the two theories share also  and that BV interprets it as BV[1]. A leading theory that
interprets  ,  , Adm, and  as stipulated by BV is ArrL-suitable: the sets of admissible
indices are  00 = ∅,  01 = {0}, and  10 =  11 = {0, 1}, so that the cardinalities of the
updatable function sets are | 00| = 20 = 1, | 01| = 21 = 2, and | 10| = | 11| = 22 = 4,
and the cardinality of the interpretation of  ⇒  is 11. On the other hand, a leading
theory that interprets  ⇒  as being countably infinite is not ArrL-suitable.
        </p>
        <p>The extension ArrL+ for ArrL may either be trivial, or add a countably infinite set of</p>
        <sec id="sec-6-3-1">
          <title>ArrL-values for each sort in  ∖{ prop}. We prove that ℐ ArrL is leading-theory-complete</title>
          <p>assuming that ArrL+ is nontrivial.</p>
          <p>Lemma 1. If  is a plausible ArrL-assignment that ℐ ArrL cannot expand, for all terms 
of an array sort, if  is in  ( ), then the term len( ) is also in  ( ).</p>
          <p>
            Proof: By reflexivity ( ≃  ) ∈  , by rule (
            <xref ref-type="bibr" rid="ref15">15</xref>
            ) (len( ) ≃ len( )) ∈  , so that len( ) ∈  ( ).
          </p>
        </sec>
        <sec id="sec-6-3-2">
          <title>This lemma (and the form of rule (15)) may be surprising, as one may expect that ℐ ArrL</title>
          <p>needs to be concerned only with the lengths of arrays that difer. The point is that in</p>
        </sec>
      </sec>
      <sec id="sec-6-4">
        <title>ArrL the length is an essential part of an array (since the definition of arrays sorts as</title>
        <p>⇒  ), and the model construction in the proof of leading-theory-completeness of ℐ ArrL
needs to define a length function as a step towards the functional interpretation of arrays.
Theorem 1. Module ℐ ArrL is leading-theory-complete for all ArrL-suitable leading theories.
Proof: Let  be a plausible ArrL-assignment that ℐ ArrL cannot expand. We show that 
is leading-theory-compatible with ArrL sharing  ( ). We begin by observing that every
formula  ∈  prop( ) is relevant to ArrL by Condition (i) of Definition 4, and therefore 
assigns a value to  (see [2, Lemma 1, Claim 2]). For a sort  other than prop, every term
 ∈   ( ) is relevant to ArrL by Condition (i) of Definition 4, as ArrL+ has (infinitely
many) values for all sorts  ,  ,  , and  ⇒  . Moreover, the only ArrL-inferences
using first-order assignments are equality inferences, and therefore  assigns a value
to every such term  (see [2, Lemma 1, Claim 3]). It follows that  assigns values to
all terms in  ( ) (†) and fvΣArrL ( ( )) = fvΣArrL ( ) (see [2, Corollary 1]). Let  1 be an
ArrL-suitable leading theory, Σ1 its signature,  1+ its extension, ℳ 1 a  1+[ 1]-model such
that fvΣ1 ( ) ⊆  1 and ℳ 1 |=   1 , and (  ) ∈ ℳ 1 the length-indexed family of updatable
function sets for ℳ 1 of Definition 6. We start the construction of the ArrL+[ ]-model
ℳ with fvΣArrL ( ) ⊆  by interpreting
• All sorts in  and all variables  ∈ fvΣArrL ( ) as ℳ 1 does;
• The shared predicate Adm as ℳ 1 does, to get Parts (ii) and (iii) of Definition 5;
• All ArrL-values c such that ( ←c) ∈  as ℳ 1 interprets  ; and
• All other ArrL-values arbitrarily.</p>
        <p>We need to define how ℳ interprets symbols len, store, select, and dif . To this end,
for every inhabitant  of ( ⇒  )ℳ , we construct a functional interpretation mapping
indices in  ℳ to elements in  ℳ . More precisely, we will define
• A function len from ( ⇒  )ℳ to  ℳ mapping arrays to lengths;
• A function  from ( ⇒  )ℳ to ⨄︀  ∈ ℳ 1   such that  ( ) is in   for  = len( ),
so that  ( ) is an updatable function from the set of admissible indices   to  ℳ ;
• A function  from ( ⇒  )ℳ to an updatable function set from  ℳ to  ℳ so that
 ( ) is a total updatable function from  ℳ to  ℳ that agrees with  ( ) on   ;
• A function dif from ( ⇒  )ℳ ×( ⇒  )ℳ to  ℳ mapping pairs of arrays to
indices.</p>
        <sec id="sec-6-4-1">
          <title>The functions len,  ,  , and dif will be used to construct the ℳ -interpretation of</title>
          <p>symbols len, store, select, and dif , respectively. We build this interpretation so as to
satisfy:
1. The axioms of ArrL so that ℳ is an ArrL+[fvΣArr ( )]-model;
2. The assignment  so that ℳ | =  and Part (i) of Definition 5 is fulfilled;</p>
        </sec>
        <sec id="sec-6-4-2">
          <title>3. The cardinality constraints conveyed by ℳ 1 to get Part (iii) of Definition 5.</title>
          <p>
            For (
            <xref ref-type="bibr" rid="ref3">3</xref>
            ), we make sure that  is a bijection from ( ⇒  )ℳ to ⨄︀  ∈ ℳ   . In order
to define the functional interpretations of inhabitants of ( ⇒  )ℳ we pick functions
  ∈   (i.e., from   to  ℳ ) for all  in  ℳ , and we complete every   into a total
function   from  ℳ to  ℳ . These functions will be used as defaults in the construction.
          </p>
        </sec>
      </sec>
      <sec id="sec-6-5">
        <title>The rest of the construction is subdivided in four parts. We start by considering those</title>
        <p>inhabitants of ( ⇒  )ℳ that are used by ℳ 1 to interpret terms in  ( ). Let  be the
ifnite subset of ( ⇒  )ℳ consisting of those elements  such that ℳ 1( ) =  for some
term  ∈  ( ). The first step is to define len ,   , and   , the respective cores of len,
 , and  that are only defined on  .</p>
        <p>1. Definition of len ,   , and   :</p>
        <p>Let  be an element of  with  = ℳ 1( ) for term  ∈  ( ). By Lemma 1,
len( ) ∈  ( ). Model ℳ 1 sees len( ) as a variable in fvΣ1 ( ), since len is a
Σ1foreign symbol. We define len ( ) = ℳ 1(len( )). Let ℛ  ⊆  ℳ × ℳ be the set
of index-element pairs dictated by  . Formally,   is the relation defined by the
union of three sets:
{(ℳ 1( ), ℳ 1( [ ])) | select(,  ) ∈  ( ), ℳ 1( ) =  }
{(ℳ 1( ), ℳ 1( )) | store(, ,  ) ∈  ( ), ℳ 1(store(, ,  )) = , ℳ 1( ) ∈  len ( )}
{(ℳ 1( ), ℳ 1( [ ])) | store(, ,  ) ∈  ( ), select(,  ) ∈  ( ),</p>
        <p>ℳ 1(store(, ,  )) = , ℳ 1( ) ̸= ℳ 1( )}.</p>
        <p>
          In other words, ℛ  is dictated by the terms in  ( ) where either select is applied
to an array term that ℳ 1 interprets as  or the application of store forms an array
term that ℳ 1 interprets as  . Since  ( ) is finite, ℛ  is finite. Also, ℛ  is a
functional relation from  ℳ to  ℳ , because otherwise ℐ ArrL could expand  by
rules (
          <xref ref-type="bibr" rid="ref18">18</xref>
          )-(
          <xref ref-type="bibr" rid="ref19">19</xref>
          ). Let   ( ) be the total function that is identical to ℛ  where ℛ 
is defined, and maps every  ∈  ℳ 1 where ℛ  is undefined to   ( ) ∈  ℳ 1 for
 = len ( ). Let   ( ) be the restriction of   ( ) to   . Since ℛ  is finite,   ( )
difers from   by finitely many updates. Hence   ( ) difers from   by finitely
many updates, so that it is in   . The second step is to show that   is injective
and in the same context define dif  . The injectivity of   will allow us to define
 , len,  , and dif as extensions of   , len ,   , and dif  .
2. Injectivity of   and definition of dif  :
        </p>
        <p>
          By way of contradiction, suppose that there are two elements ,  ∈  such that
 ̸=  and   ( ) =   ( ). Since   ( ) is a function in   for  = len ( ) and   ( )
is a function in   for  = len ( ), the equality   ( ) =   ( ) means that   and
  have non-empty intersection. Since the collection (  ) ∈ ℳ is pairwise disjoint,
it must be  =  . Since ,  ∈  , we have  = ℳ 1( ) and  = ℳ 1( ) for some
terms ,  ∈  ( ). This means that ℳ 1 |=  ̸≃  . By (†)  assigns values to  and  ,
and therefore it also assigns a truth value b to  ≃  , because otherwise an equality
inference could expand  . Also, (( ≃  )←b) ∈   1 by definition of theory view.
Since ℳ 1 |=  ̸≃  and ℳ 1 |=   1 , the truth value b must be false, or, equivalently,
( ̸≃  ) ∈  . Moreover by Lemma 1, len( ) and len( ) are also in  ( ), and  assigns
them values by (†). Thus,  assigns a truth value b′ to len( ) ≃ len( ) and so does
  1 . Since len ( ) = len ( ), by definition of len we have lenℳ 1 ( ) = lenℳ 1 ( ).
Since ℳ 1 |=   1 , the truth value b′ must be true (i.e., (len( ) ≃ len( )) ∈  ).
By rule (
          <xref ref-type="bibr" rid="ref21">21</xref>
          ), also  [dif (,  )] ̸≃  [dif (,  )] is in  (*) and hence in   1 . Since
ℳ 1 |=   1 , it follows that ℳ 1( [dif (,  )]) ̸= ℳ 1( [dif (,  )]). Now we define
dif  . By (*) dif (,  ) ∈  ( ). Model ℳ 1 sees dif (,  ) as a variable in fvΣ1 ( ),
since dif is a Σ1-foreign symbol. For all ,  ∈  , if  ̸=  and len ( ) = len ( ), let
dif  (,  ) = ℳ 1(dif (,  )), and let dif  (,  ) be arbitrary otherwise. We resume
the proof of the injectivity of   . By rule (
          <xref ref-type="bibr" rid="ref22">22</xref>
          ), also Adm(dif (,  ), len( )) is in 
and hence in   1 . Since ℳ 1 |=   1 , it follows that ℳ 1(dif (,  )) is an admissible
index (i.e., it is in   for  = lenℳ 1 ( )). By definition of   ( ) (based on ℛ  ) for
a generic  , we have:
  ( )(ℳ
  ( )(ℳ
1(dif (,  ))) = ℳ 1( [dif (,  )])
1(dif (,  ))) = ℳ 1( [dif (,  )]).
        </p>
        <p>Since the two right hand sides are diferent, the two left hand sides are also diferent,
so that   ( ) ̸=   ( ), a contradiction.
3. Definition of  , len,  , and dif :
• Since   is an injective function from  to ⨄︀  ∈ ℳ   , we can extend it to a
bijection  from ( ⇒  )ℳ to ⨄︀  ∈ ℳ   which have the same cardinality.
• For all  ∈ ( ⇒  )ℳ let len( ) be the unique  in  ℳ such that  ( ) is in
  . Note that for  ∈  we have len( ) = len ( ).
• For all  ∈ ( ⇒  )ℳ , if  ∈  let  ( ) =   ( ); otherwise, let  ( ) be
the function that agrees with  ( ) on   , where  = len( ), and with  
everywhere else.
• For all ,  ∈ ( ⇒  )ℳ , if ,  ∈  let dif (,  ) = dif  (,  ); otherwise,
if  =  or ( ̸=  and len( ) ̸= len( )), let dif (,  ) be arbitrary. If  ̸= 
and len( ) = len( ) =  , let dif (,  ) =  for any index  ∈   such that
 ( )( ) ̸=  ( )( ), where at least one such  exists, because  ̸=  implies
 ( ) ̸=  ( ) by injectivity of  .
4. How ℳ interprets len, dif , select, and store for all array sorts  ⇒  :
• For all  ∈ ( ⇒  )ℳ let lenℳ ( ) = len( ) ∈  ℳ ;
• For all ,  ∈ ( ⇒  )ℳ let dif ℳ (,  ) = dif (,  ) ∈  ℳ ;
• For all pairs (,  ) ∈ ( ⇒  )ℳ × ℳ let selectℳ (,  ) =  ( )( ) ∈  ℳ ;
• For all triples (, ,  ) ∈ ( ⇒  )ℳ × ℳ × ℳ we define storeℳ (, ,  ) by
considering two cases with len( ) =  :
– If  ̸∈   : let storeℳ (, ,  ) =  ;
– If  ∈   : let  be the function from   to  ℳ that maps  to  and
every other  ∈   to  ( )( ) ∈  ℳ ; function  is in   as it difers from
 ( ) ∈   by one update; since  is a bijection, take  −1( ) which is in
( ⇒  )ℳ and set storeℳ (, ,  ) =  −1( );</p>
      </sec>
      <sec id="sec-6-6">
        <title>Part (ii) of Definition 5 for equality follows by induction on the term structure.</title>
        <p>The claim holds also if ArrL+ is the trivial extension. The proof is similar, except
that non-Boolean terms are not assigned ArrL-values. Leading-theory-completeness is
preserved if ℐ ArrL is enriched with rules obtained from those deriving ⊥ by removing the
last premise and adding its flip as conclusion (see [2, Lemma 2]).</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>6. Completeness of CDSAT in the Nondisjoint Case</title>
      <sec id="sec-7-1">
        <title>In this section we show that CDSAT is complete also in the case of nondisjoint theories</title>
        <p>sharing predicates. Let a predicate-sharing union of theories be a union  ∞ of theories
 1, . . . ,   , such that the signatures are disjoint or share predicate symbols, and there
exists a leading theory, say  1, which has all sorts and all shared symbols in its signature.</p>
        <p>
          As a consequence of generalizing leading-theory-compatibility to a predicate-sharing
union, the concept of model-describing assignment from [1, Def. 19] is generalized
accordingly. Preliminarly, given an assignment  , the set  sh( ) of the shared terms in 
contains the left-hand sides of pairs in  and all their subterms that are shared variables
or foreign terms for any theory [1, Def. 18]. An assignment  is model-describing if (
          <xref ref-type="bibr" rid="ref1">1</xref>
          )
there exists a  1+[ ]-model ℳ 1 such that ℳ 1 |=   1 (assuming fvΣ1 (  1 ) ⊆  ), and
(
          <xref ref-type="bibr" rid="ref2">2</xref>
          ) for all  , 2 ≤  ≤  , the theory view    is leading-theory-compatible with   sharing
 sh( ). Note how the generic assignment  and the generic set  of shared terms of
Definition 5 are replaced by    and  sh( ).
        </p>
      </sec>
      <sec id="sec-7-2">
        <title>The core of the proof of completeness is to show that a model-describing assignment is globally endorsed [1, Thm. 4]. The generalization of that statement to a predicate-sharing union, below, requires generalizing its proof.</title>
        <p>
          Theorem 2. In a predicate-sharing union of theories, if an assignment 
describing, there exists a  ∞+[fv( )]-model ℳ such that ℳ | =  .
is
modelProof: The proof is structured in eight short parts like that of [1, Thm. 4]. In order to
accommodate shared predicates it sufices to modify Parts (
          <xref ref-type="bibr" rid="ref2">2</xref>
          ) and (
          <xref ref-type="bibr" rid="ref3">3</xref>
          ). Therefore, we
reproduce Parts (
          <xref ref-type="bibr" rid="ref1">1</xref>
          ), (
          <xref ref-type="bibr" rid="ref2">2</xref>
          ), and (
          <xref ref-type="bibr" rid="ref3">3</xref>
          ), referring the reader to the proof of [1, Thm. 4] for the
remaining ones.
        </p>
        <p>1. Existence of a leading-theory model ℳ 1: by the hypothesis that  is
modeldescribing, there exists a  1+[ 1]-model ℳ ′1, with fvΣ1 (  1 ) ⊆  1, such that
ℳ ′1 |=   1 . Note that for all  , 1 ≤  ≤  , fvΣ (   ) = fvΣ ( ) ⊆ fvΣ ( sh( ))
(*). Thus, we have fvΣ1 ( ) ⊆  1, but there may be terms in fvΣ1 ( sh( )) that are
not in  1. Therefore, we pick arbitrary elements in the domains of ℳ ′1 to interpret
terms in fvΣ1 ( sh( ))∖ 1, if any, and we extend ℳ ′1 into a  1+[fvΣ1 ( sh( ))]-model
ℳ 1 such that ℳ 1 |=   1 .
2. Existence of the other   -models ℳ  : by the hypothesis that  is model-describing,
for all  , 2 ≤  ≤  , there exists a
  and hence fvΣ (
  sh( )) ⊆  
  +[  ]-model ℳ  where fvΣ (   ∪  sh( )) ⊆</p>
        <p>by (*), with the following properties: (i)
 ℳ  to domain  ℳ 1 , such that for all shared predicates 
ℳ  |=    , (ii) for all sorts 
∈   , there exists a bijection    from domain
∈  
∩  1 with
 : ( 1× · · · ×  )→prop: (iii) for all terms  1, . . . ,  
∈  sh( ) of sorts  1, . . . ,   ,</p>
        <p>( ( 1, . . . ,   )), and (iv) for all inhabitants  1, . . . ,   of
3. Bijection between any ℳ
 and ℳ 1</p>
        <p>:
For all  , 1 ≤  ≤  , we construct a collection of bijections   :  ℳ  →  ℳ 1 indexed
satisfies the additional property   (
by  ∈   , that satisfies the same properties as the
of sort  .</p>
        <p>ℳ  ( )) = ℳ 1( ) for all shared terms  ∈  sh( )
(   )
 ∈  collection, but also</p>
      </sec>
      <sec id="sec-7-3">
        <title>We define a transformation</title>
        <p>Φ such that, if Ψ(   )
   (ℳ
 ( )) ̸= ℳ
Let  1 (resp.    ) be the (finite) subset of  ℳ 1 (resp.  ℳ  ) consisting of those
inhabitants of the form ℳ 1( ) (resp. ℳ</p>
        <p>( )) for some term  in  sh( ).</p>
        <p>For a family (   )
compatibility, let Ψ(   )
 ∈  of bijections satisfying the conditions of leading-theory</p>
        <p>∈  be the (finite) number of terms  in  sh( ) such that
Ψ(   )</p>
        <p>∈  .</p>
        <p>Assume    (ℳ
The family Φ(   )
where</p>
        <p>(  ) =  1, 
Hence, Ψ(Φ(   )
 ∈</p>
        <p>∈ 
properties (from leading-theory compatibility) as (   )
 ∈ 
ity, until we obtain a family (  )
We keep applying Φ to the family (   )</p>
        <p>∈  from the leading-theory
compatibilthat also satisfies the additional property
) &lt; Ψ(   )</p>
        <p>∈  . Also note that Φ(   )
 ( )) ̸= ℳ 1( ). Let  1 =    (ℳ</p>
        <p>( )) and let   = (   )−1(ℳ
 ∈  is the family that updates (   )</p>
        <p>∈  by replacing    by   ,
 (ℳ
 ( )) = ℳ 1( ), and for every other  ,   ( ) =    ( ).</p>
        <p>1( )).
  ∈  with Ψ(  )</p>
        <p>∈  &gt; 0, then Ψ(Φ(   )
 ∈  = 0.</p>
        <p>∈  ) &lt;
does.
 ∈  satisfies the same</p>
      </sec>
      <sec id="sec-7-4">
        <title>The rest of the proof is as in [1, Thm. 4].</title>
        <p>(
 ℳ
 ( )) = ℳ</p>
        <p>1( ) for all shared terms  ∈  sh( ) of sort  .</p>
        <p>Given a predicate-sharing union of theories  1, . . . ,   , a collection of theory modules
ℐ 1, . . . , ℐ  for  1, . . . ,   is complete, if module ℐ 1 is complete for the leading theory, and
the generalized version of [1, Thm. 3], where an assignment 
modules ℐ  ’s, 2 ≤  ≤  , are leading-theory-complete. With this assumption, one shows
is in ℬ if ( ←c) ∈ 
implies  ∈ ℬ .
is unchanged.</p>
        <p>Theorem 3. In a predicate-sharing union of theories equipped with a complete collection
of theory modules and a stable global basis ℬ , for all input assignments 
in ℬ , whenever
a CDSAT derivation from</p>
        <p>halts in a state Γ other than unsat, Γ is model-describing.</p>
      </sec>
      <sec id="sec-7-5">
        <title>Proof: The proof is the same as that of [1, Thm. 3] because the CDSAT transition system</title>
      </sec>
      <sec id="sec-7-6">
        <title>Theorems 2 and 3 directly entail the completeness of CDSAT for predicate-sharing unions, which subsumes the completeness property for disjoint unions [1, Thm. 5].</title>
        <p>Theorem 4 (Completeness). In a predicate-sharing union of theories equipped with a
complete collection of theory modules and a stable global basis ℬ , for all input assignments
 in ℬ , whenever a CDSAT derivation from  halts in a state Γ other than unsat, there
exists a  ∞+[fv(Γ)]-model ℳ such that ℳ | = Γ and hence ℳ | =  (as  ⊆ Γ).</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>7. Discussion</title>
      <p>The equality-sharing method (aka Nelson-Oppen scheme) yields a decision procedure for
the satisfiability of a conjunction of literals in a union of theories, by combining the
respective decision procedures for the component theories [7]. The integration of the
equality-sharing method in the CDCL( ) transition system1 yields a decision procedure
for the satisfiability of a quantifier-free formula in a union of theories [ 11, 12]. The
theories are required to be disjoint and stably-infinite , where a theory  is stably-infinite
if every  -satisfiable formula has a  -model with countably infinite domain.</p>
      <p>Polite theory combination (e.g., [13, 14, 15, 16]) extends the equality-sharing method
so as to combine a non-stably-infinite theory with a polite theory. Politeness is a stronger
cardinality requirement than stable infiniteness, and in general the theories are still
required to be disjoint. However, polite theory combination was generalized [5] to the
nondisjoint case represented by the theories of absolutely free data structures with bridging
functions, which are polite [5]. The theory of arrays with extensionality is polite [13], but
arrays are not an absolutely free data data structure with constructors and selectors.</p>
      <sec id="sec-8-1">
        <title>Another approach to the problem of reasoning in a union of theories consists of</title>
        <p>applying a superposition-based inference system to the axioms and the target formula. If
superposition is a decision procedure for each of the component theories, it is a decision
procedure for their union, provided the theories are disjoint and variable-inactive [17].</p>
      </sec>
      <sec id="sec-8-2">
        <title>The latter property implies stable-infiniteness. The theory of arrays with extensionality is</title>
        <p>decidable by superposition [18] and is variable-inactive [17]. This approach was extended
to unions of theories that share a theory of counter arithmetic [19, 20]. However, there
are theories, such as arithmetic or bitvectors, that do not lend themselves to reasoning
by generic theorem proving.</p>
        <p>Therefore, the CDCL(Γ +  ) transition system2 integrates a superposition-based
inference system (the Γ parameter) in the CDCL( ) transition system, with the
modelbased theory combination version [22] of equality sharing. The resulting method can reason
in a union of theories comprising both built-in and axiomatized theories, provided the
theories are disjoint and either stably-infinite (for the built-in theories) or variable-inactive
(for the axiomatized theories). CDCL(Γ+ ) is a semidecision procedure in general, but
it may yield decision procedures by employing speculative axioms [21]. A survey of the
methods mentioned up to here appeared [23].</p>
      </sec>
      <sec id="sec-8-3">
        <title>MCSAT [24] ofered for the first time a transition system that composes the transitions</title>
        <p>1The original name is DPLL( ) [8], but the recent literature uses CDCL( ), since the DPLL
(DavisPutnam-Logemann-Loveland) [9] and CDCL (Conflict-Driven Clause Learning) [ 10] procedures have
been recognized as distinct.
2Here too the original name is DPLL(Γ+ ) [21] and the renaming follows that of DPLL( ).
for CDCL with those for another conflict-driven decision procedure. CDSAT [ 1, 2]
generalized MCSAT to generic unions of disjoint theories, accommodating both
conflictdriven and non-conflict-driven decision procedures. Stable infiniteness is not required,
because an agreement on the cardinalities of shared sorts is reached via a leading theory.</p>
      </sec>
      <sec id="sec-8-4">
        <title>Equality sharing is covered as a special case with a leading theory that assigns countably</title>
        <p>infinite cardinality to the interpretation of all sorts other than prop.</p>
      </sec>
      <sec id="sec-8-5">
        <title>Here we presented an extension of CDSAT to the nondisjoint case, motivated by the</title>
        <p>problem of enriching the theory of arrays with extensionality with a notion of length of
an array. Previous approaches considered this problem in the case where the indices of
an array form an interval in a linearly ordered set.</p>
      </sec>
      <sec id="sec-8-6">
        <title>The theory of arrays in [25] assumes that the indices are integers, and defines the</title>
        <p>bounded equality of two arrays as having equal elements at all indices between a lower
bound and an upper bound. The resulting axiomatization belongs to the array property
fragment, whose decision procedure reduces the problem to reasoning about uninterpreted
functions, LIA, and the theory of the array elements [25].</p>
        <p>The theory of arrays with MaxDif [6] is parametrized with respect to a theory of indices
that is required to extend the theory of linear orderings with an element 0. LIA, LRA, and
the theory IDL of integer diference logic (i.e., the theory with 0, successor, predecessor,
and the ordering), satisfy this requirement. The theory of arrays with MaxDif features a
symbol ⊥ for the undefined element and a symbol  for the array that has element ⊥ at
all indices. The axioms impose that an array has element ⊥ at all indices smaller than 0,
and that dif (,  ) is the largest index where  and  difer and 0 otherwise. Thus, the
length of an array  is given by dif (,  ). The theory of arrays with MaxDif and the
theory of indices need to share the symbols for the element 0 and for the ordering.</p>
      </sec>
      <sec id="sec-8-7">
        <title>Our approach is more general. The theory ArrL of arrays with extensionality and</title>
        <p>abstract length features an abstract admissibility predicate Adm for array indices. This
predicate can be interpreted in such a way that the indices of an array form an interval
in a linearly ordered set, but it does not have to. Thanks to this abstraction, ArrL
only needs to share the symbol Adm with another theory and with the leading theory
(these two theories may coincide, but they do not have to). Thus, it sufices to extend</p>
      </sec>
      <sec id="sec-8-8">
        <title>CDSAT to allow the theories to share predicate symbols other than equality. This requires</title>
        <p>only minimal changes to the CDSAT framework of definitions and none to the CDSAT
transition system itself. We proved that CDSAT is complete for predicate-sharing unions.</p>
      </sec>
      <sec id="sec-8-9">
        <title>Directions for future work include developing the abstract approach of this paper to handle in CDSAT a version of theory ArrL enriched with a concatenation operator, the theories of finite maps and dynamic arrays or vectors (cf. Sect. 3), and other theories made nondisjoint by bridging functions. An implementation of CDSAT is under way.</title>
      </sec>
      <sec id="sec-8-10">
        <title>Acknowledgements This work was done while the first author was visiting the Computer</title>
      </sec>
      <sec id="sec-8-11">
        <title>Science Laboratory of SRI International, whose support is greatly appreciated. This material is based upon work supported in part by NSF grants 1816936, 1817204, and 2016597. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of NSF.</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Bonacina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Graham-Lengrand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Shankar</surname>
          </string-name>
          ,
          <article-title>Conflict-driven satisfiability for theory combination: transition system and completeness</article-title>
          ,
          <source>J. Autom. Reason</source>
          .
          <volume>64</volume>
          (
          <year>2020</year>
          )
          <fpage>579</fpage>
          -
          <lpage>609</lpage>
          . doi:
          <volume>10</volume>
          .1007/s10817-018-09510-y.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Bonacina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Graham-Lengrand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Shankar</surname>
          </string-name>
          ,
          <article-title>Conflict-driven satisfiability for theory combination: lemmas, modules, and proofs</article-title>
          ,
          <source>J. Autom. Reason</source>
          .
          <volume>66</volume>
          (
          <year>2022</year>
          )
          <fpage>43</fpage>
          -
          <lpage>91</lpage>
          . doi:
          <volume>10</volume>
          .1007/s10817-021-09606-y.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>H.</given-names>
            <surname>Ganzinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Rueß</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Shankar</surname>
          </string-name>
          ,
          <article-title>Modularity and refinement in inference systems</article-title>
          ,
          <source>Technical Report CSL-SRI-04-02</source>
          , CSL, SRI International, Menlo Park, CA, USA,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>V.</given-names>
            <surname>Sofronie-Stokkermans</surname>
          </string-name>
          ,
          <article-title>Locality results for certain extensions of theories with bridging functions</article-title>
          , in: R. A.
          <string-name>
            <surname>Schmidt</surname>
          </string-name>
          (Ed.),
          <source>Proc. of CADE-22</source>
          , volume
          <volume>5663</volume>
          <source>of LNAI</source>
          , Springer,
          <year>2009</year>
          , pp.
          <fpage>67</fpage>
          -
          <lpage>83</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -02959-
          <issue>2</issue>
          _
          <fpage>5</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>P.</given-names>
            <surname>Chocron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fontaine</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ringeissen</surname>
          </string-name>
          ,
          <article-title>Politeness and combination methods for theories with bridging functions</article-title>
          ,
          <source>J. Autom. Reason</source>
          .
          <volume>64</volume>
          (
          <year>2020</year>
          )
          <fpage>97</fpage>
          -
          <lpage>134</lpage>
          . doi:
          <volume>10</volume>
          .1007/ s10817-019-09512-4.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghilardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gianola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kapur</surname>
          </string-name>
          ,
          <article-title>Interpolation and amalgamation for arrays with MaxDif</article-title>
          , in: S. Kiefer,
          <string-name>
            <surname>C.</surname>
          </string-name>
          Tasson (Eds.),
          <source>Proc. of FoSSaCS-24</source>
          , volume
          <volume>12650</volume>
          <source>of LNCS</source>
          , Springer,
          <year>2021</year>
          , pp.
          <fpage>268</fpage>
          -
          <lpage>288</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -71995-1_
          <fpage>14</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>G.</given-names>
            <surname>Nelson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Oppen</surname>
          </string-name>
          ,
          <article-title>Simplification by cooperating decision procedures</article-title>
          ,
          <source>ACM Trans. Prog. Lang. Syst</source>
          .
          <volume>1</volume>
          (
          <year>1979</year>
          )
          <fpage>245</fpage>
          -
          <lpage>257</lpage>
          . doi:
          <volume>10</volume>
          .1145/357073.357079.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>R.</given-names>
            <surname>Nieuwenhuis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Oliveras</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          ,
          <string-name>
            <surname>Solving</surname>
            <given-names>SAT</given-names>
          </string-name>
          and
          <article-title>SAT modulo theories: from an abstract Davis-Putnam-Logemann-Loveland procedure to DPLL(T)</article-title>
          ,
          <source>J. ACM</source>
          <volume>53</volume>
          (
          <year>2006</year>
          )
          <fpage>937</fpage>
          -
          <lpage>977</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Davis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Logemann</surname>
          </string-name>
          ,
          <string-name>
            <surname>D. Loveland,</surname>
          </string-name>
          <article-title>A machine program for theorem-proving,</article-title>
          <source>C. ACM</source>
          <volume>5</volume>
          (
          <year>1962</year>
          )
          <fpage>394</fpage>
          -
          <lpage>397</lpage>
          . doi:
          <volume>10</volume>
          .1145/368273.368557.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J. Marques</given-names>
            <surname>Silva</surname>
          </string-name>
          , I. Lynce,
          <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>
            ,
            <given-names>H. Van</given-names>
          </string-name>
          <string-name>
            <surname>Maaren</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          Walsh (Eds.),
          <source>Handbook of Satisfiability</source>
          , volume
          <volume>185</volume>
          <source>of Frontiers in Artificial Intelligence and Applications</source>
          , IOS Press,
          <year>2009</year>
          , pp.
          <fpage>131</fpage>
          -
          <lpage>153</lpage>
          . doi:
          <volume>10</volume>
          .3233/978-1-
          <fpage>58603</fpage>
          -929-5-131.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>C. W.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Nieuwenhuis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Oliveras</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          ,
          <article-title>Splitting on demand in SAT modulo theories</article-title>
          , in: M. Hermann, A. Voronkov (Eds.),
          <source>Proc. of LPAR-13</source>
          , volume
          <volume>4246</volume>
          <source>of LNAI</source>
          , Springer,
          <year>2006</year>
          , pp.
          <fpage>512</fpage>
          -
          <lpage>526</lpage>
          . doi:
          <volume>10</volume>
          .1007/11916277_
          <fpage>35</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Krstić</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Goel</surname>
          </string-name>
          ,
          <article-title>Architecting solvers for SAT modulo theories: Nelson-Oppen with DPLL</article-title>
          , in: F. Wolter (Ed.),
          <source>Proc. of FroCoS-6</source>
          , volume
          <volume>4720</volume>
          <source>of LNAI</source>
          , Springer,
          <year>2007</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>27</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -74621-
          <issue>8</issue>
          _
          <fpage>1</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ranise</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ringeissen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. G.</given-names>
            <surname>Zarba</surname>
          </string-name>
          ,
          <article-title>Combining data structures with nonstably infinite theories using many-sorted logic</article-title>
          , in: B.
          <string-name>
            <surname>Gramlich</surname>
          </string-name>
          (Ed.),
          <source>Proc. of FroCoS-5</source>
          , volume
          <volume>3717</volume>
          <source>of LNAI</source>
          , Springer,
          <year>2005</year>
          , pp.
          <fpage>48</fpage>
          -
          <lpage>64</lpage>
          . doi:
          <volume>10</volume>
          .1007/11559306_3.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>D.</given-names>
            <surname>Jovanović</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. W.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <article-title>Polite theories revisited</article-title>
          , in: C. G. Fermüller,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Voronkov (Eds.),
          <source>Proc. of LPAR-17</source>
          , volume
          <volume>6397</volume>
          <source>of LNAI</source>
          , Springer,
          <year>2010</year>
          , pp.
          <fpage>402</fpage>
          -
          <lpage>41</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -16242-8_
          <fpage>29</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Sheng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zohar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ringeissen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Lange</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fontaine</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. W.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <article-title>Politeness for the theory of abstract data types</article-title>
          , in: N.
          <string-name>
            <surname>Peltier</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Sofronie-Stokkermans</surname>
          </string-name>
          (Eds.),
          <source>Proc. of IJCAR-10</source>
          , volume
          <volume>12166</volume>
          <source>of LNAI</source>
          , Springer,
          <year>2020</year>
          , pp.
          <fpage>238</fpage>
          -
          <lpage>255</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -51074-9_
          <fpage>14</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Sheng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zohar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ringeissen</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>Politeness and stable infiniteness: stronger together</article-title>
          , in: A.
          <string-name>
            <surname>Platzer</surname>
          </string-name>
          , G. Sutclife (Eds.),
          <source>Proc. of CADE-28</source>
          , volume
          <volume>12699</volume>
          <source>of LNAI</source>
          , Springer,
          <year>2021</year>
          , pp.
          <fpage>148</fpage>
          -
          <lpage>165</lpage>
          . doi:
          <volume>10</volume>
          .1007/ 978-3-
          <fpage>030</fpage>
          -79876-
          <issue>5</issue>
          _
          <fpage>9</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Armando</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Bonacina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ranise</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Schulz</surname>
          </string-name>
          ,
          <article-title>New results on rewrite-based satisfiability procedures</article-title>
          ,
          <source>ACM Trans. Comput. Log</source>
          .
          <volume>10</volume>
          (
          <year>2009</year>
          )
          <fpage>129</fpage>
          -
          <lpage>179</lpage>
          . doi:
          <volume>10</volume>
          . 1145/1459010.1459014.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>A.</given-names>
            <surname>Armando</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ranise</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rusinowitch</surname>
          </string-name>
          ,
          <article-title>A rewriting approach to satisfiability procedures</article-title>
          ,
          <source>Inf. Comput</source>
          .
          <volume>183</volume>
          (
          <year>2003</year>
          )
          <fpage>140</fpage>
          -
          <lpage>164</lpage>
          . doi:
          <volume>10</volume>
          .1016/S0890-
          <volume>5401</volume>
          (
          <issue>03</issue>
          )
          <fpage>00020</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>E.</given-names>
            <surname>Nicolini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ringeissen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rusinowitch</surname>
          </string-name>
          ,
          <article-title>Combining satisfiability procedures for unions of theories with a shared counting operator</article-title>
          ,
          <source>Fundam. Inform</source>
          .
          <volume>105</volume>
          (
          <year>2010</year>
          )
          <fpage>163</fpage>
          -
          <lpage>187</lpage>
          . doi:
          <volume>10</volume>
          .3233/FI-2010-362.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>C.</given-names>
            <surname>Ringeissen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Senni</surname>
          </string-name>
          ,
          <article-title>Modular termination and combinability for superposition modulo counter arithmetic</article-title>
          , in: C.
          <string-name>
            <surname>Tinelli</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Sofronie-Stokkermans</surname>
          </string-name>
          (Eds.),
          <source>Proc. of FroCoS-8</source>
          , volume
          <volume>6989</volume>
          <source>of LNAI</source>
          , Springer,
          <year>2011</year>
          , pp.
          <fpage>211</fpage>
          -
          <lpage>226</lpage>
          . doi:
          <volume>10</volume>
          .1007/ 978-3-
          <fpage>642</fpage>
          -24364-6_
          <fpage>15</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Bonacina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. A.</given-names>
            <surname>Lynch</surname>
          </string-name>
          , L. de Moura,
          <article-title>On deciding satisfiability by theorem proving with speculative inferences</article-title>
          ,
          <source>J. Autom. Reason</source>
          .
          <volume>47</volume>
          (
          <year>2011</year>
          )
          <fpage>161</fpage>
          -
          <lpage>189</lpage>
          . doi:
          <volume>10</volume>
          . 1007/s10817-010-9213-y.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>L. de Moura</surname>
          </string-name>
          , N. Bjørner,
          <article-title>Model-based theory combination</article-title>
          , in: S. Krstić,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Oliveras (Eds.),
          <source>Proc. of SMT-5</source>
          , volume
          <volume>198</volume>
          (
          <article-title>2</article-title>
          )
          <string-name>
            <surname>of</surname>
            <given-names>ENTCS</given-names>
          </string-name>
          , Elsevier,
          <year>2008</year>
          , pp.
          <fpage>37</fpage>
          -
          <lpage>49</lpage>
          . doi:
          <volume>10</volume>
          . 1016/j.entcs.
          <year>2008</year>
          .
          <volume>04</volume>
          .079.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Bonacina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fontaine</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ringeissen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          ,
          <article-title>Theory combination: beyond equality sharing</article-title>
          , in: C.
          <string-name>
            <surname>Lutz</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          <string-name>
            <surname>Sattler</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Tinelli</surname>
          </string-name>
          , A.-Y. Turhan (Eds.),
          <string-name>
            <surname>Description</surname>
            <given-names>Logic</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Theory</given-names>
            <surname>Combination</surname>
          </string-name>
          , and All That: Essays Dedicated to Franz Baader, volume
          <volume>11560</volume>
          <source>of LNCS</source>
          , Springer,
          <year>2019</year>
          , pp.
          <fpage>57</fpage>
          -
          <lpage>89</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -22102-
          <issue>7</issue>
          _
          <fpage>3</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>L. de Moura</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Jovanović</surname>
          </string-name>
          ,
          <article-title>A model-constructing satisfiability calculus</article-title>
          , in: R.
          <string-name>
            <surname>Giacobazzi</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Berdine</surname>
          </string-name>
          , I. Mastroeni (Eds.),
          <source>Proc. of VMCAI-14</source>
          , volume
          <volume>7737</volume>
          <source>of LNCS</source>
          , Springer,
          <year>2013</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -35873-
          <issue>9</issue>
          _
          <fpage>1</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>A. R.</given-names>
            <surname>Bradley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Manna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. B.</given-names>
            <surname>Sipma</surname>
          </string-name>
          ,
          <article-title>What's decidable about arrays?</article-title>
          , in: E. A.
          <string-name>
            <surname>Emerson</surname>
          </string-name>
          , K. S. Namjoshi (Eds.),
          <source>Proc. of VMCAI-7</source>
          , volume
          <volume>3855</volume>
          <source>of LNCS</source>
          , Springer,
          <year>2006</year>
          , pp.
          <fpage>427</fpage>
          -
          <lpage>442</lpage>
          . doi:
          <volume>10</volume>
          .1007/11609773_
          <fpage>28</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>