<!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>Two Crucial Cubic-Time Components of Polynomial-Maximal Decidable Boolean Languages?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Dept. of Mathematics</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Computer Science</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>University of Catania</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Italy</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>domenico.cantone</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>pietro.maugeri}@unict.it</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dept. of Mathematics and Earth Sciences, University of Trieste</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We continue our investigation aimed at spotting small fragments of Set Theory (in this paper, sublanguages of Boolean Set Theory) that might be of use in automated proof-checkers based on the set-theoretic formalism. Here we propose a method that leads to a cubictime satis ability decision test for the language involving, besides variables intended to range over the von Neumann set-universe, the Boolean operator [ and the logical relators = and 6=. It can be seen that the dual language involving the Boolean operator \ and, again, the relators = and 6=, also admits a decidable cubic-time satis ability test; noticeably, the same algorithm can be used for both languages. Suitable pre-processing can reduce richer Boolean languages to the said two fragments, so that the same cubic satis ability test can be used to treat the relators ; * and the predicates ` = ?' and `Disj( ; )', meaning `the argument is empty' and `the arguments are disjoint sets', along with their opposites ` 6= ?' and `:Disj( ; )'. Those richer languages are `polynomial maximal', in the sense that all languages strictly containing them have an NP-hard satis ability problem.</p>
      </abstract>
      <kwd-group>
        <kwd>Satis ability problem Computable set theory Boolean set theory Expressibility NP-completeness Proof veri cation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The eld named Computable Set Theory [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] pursued, with long-standing e orts,
languages reconciling ease of symbolic management with high expressive power,
so that an armory of reasoning tools|foremost, satis ability testers for
unquanti ed fragments of theories concerning sets and classes|could shape a friendly
proof-development environment.
? Copyright c 2021 for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4.0).
      </p>
      <p>
        Long before the envisaged proof-veri er tnaNova [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] came into being, a
foundational quest aimed at carefully drawing the frontier between the decidable
and the undecidable in set theory sparked interest in the eld [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. The language
called Multi-Level Syllogistic and some extensions of it [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], whose satis ability
problems were shown to be NP-complete in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], foreran that quest. In recent
years, we undertook a similar investigation aimed at spotting `small' fragments
of set theory endowed with low-degree polynomial-time satis ability tests, which
hence promise to be useful in set-based proof technology. In [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] we reported about
the complexity taxonomy of all the sublanguages of the theory called Boolean Set
Theory (BST for short); here we treat in detail two core fragments or theories,
BST([; =; 6=) and BST(\; =; 6=), of that taxonomy and report about cubic-time
tests for their satis ability problems. Speci cally, we will study two languages,
consisting of all conjunctions of literals of the two forms
(=)
(6=)
x1 ?
u1 ?
? xh = y1 ?
? um 6= v1 ?
? yk
? vp;
where h; k; m; p &gt; 1 holds, ? stands for a xed dyadic set operation, and x's, y's,
u's, v's stand for set variables.
      </p>
      <p>By instantiating ? as [, we obtain the fragment BST([; =; 6=); by instantiating
it as \, we obtain the fragment BST(\; =; 6=).</p>
      <p>The paper is organized as follows. In Section 2 we introduce an equivalence
relation ' between non-null subsets of the set of variables occurring in a formula
' of either fragment and elicit some of its key properties. Then, in Section 3,
we present our main decidability results together with a cubic-time satis ability
test, stressing the commonalities between the two decidable theories. In Section4,
we report about extending the presented results to richer languages within BST.
Then we draw conclusions.
2</p>
    </sec>
    <sec id="sec-2">
      <title>The equivalence relation operator ' and the '-closure</title>
      <p>Any given formula ' of BST(?; =; 6=) can be represented by two sets:
' := n
' := n
fx1;
fu1;
; xhg; fy1;
; umg; fv1;
; ykg j x1 ?
; vpg j u1 ?
? xh = y1 ?
? um 6= v1 ?
? yk is in 'o;
? vp is in 'o:</p>
      <p>A central role will be played by the following relation ' on P+(Vars(')),
where Vars(') is de ned to be the collection of all variables occurring in ', and
P+(S) := P(S)nf;g for any set S. Speci cally, ' is the intersection|hence the
inclusion minimal|of all equivalence relations on P+(Vars(')) that satisfy
the following closure conditions:
(Cl1)
'
,</p>
      <sec id="sec-2-1">
        <title>B, then A [ C</title>
        <p>B [ C, for all A; B; C 2 P+(Vars(')).</p>
        <p>We will in fact prove, for any ' in BST(?; =; 6=), that ' is satis able if and only
if fu1; : : : ; umg 6 ' fv1; : : : ; vpg holds for every literal of the form (6=) in '. We
will exploit a useful closure operator to test conditions of the form Z1 6 ' Z2.
Speci cally, we will prove that the set</p>
        <p>Z := [fW j W
' Zg;
called the '-closure of Z (or, more simply, the closure of Z, when the relation
' is understood), is the largest set '-equivalent to Z and then will provide a
quadratic algorithm for computing it. Accordingly, a set Z such that Z = Z will
be said to be '-closed or just closed.</p>
        <p>Lemma 1. Let Z 2 P+(Vars(')). Then the closure Z of Z, namely the set
[ fW j W ' Zg, is the largest subset of Vars (') that is '-equivalent to Z.
Proof. Let W1; W2 be such that W1 ' Z and W2 ' Z. By applying (Cl2) twice,
we have: W1 [ W2 ' Z [ W2 ' Z: In view of the niteness of fW j W ' Zg,
by induction it follows that
[ fW j W
' Zg
' Z :
In addition, for every W 0 such that W 0 ' Z, we plainly have W 0 [fW j W '
Zg. This yields that [fW j W ' Zg is the largest set in P+(Vars(')) that is
'-equivalent to Z.</p>
        <p>The equivalence relation ' captures which equalities among terms must be
true in every model, if any, of a given formula ': this is shown in the next lemma.</p>
        <p>A set assignment M is any function sending a collection dom(M ) of set
variables into the von Neumann universe of all sets V := [ 2On V , resulting
from the union of the levels V := [ &lt; P(V ), with ranging over the class
On of all ordinal numbers, where P( ) is the powerset operator.</p>
        <p>Natural designation rules attach recursively a value to every term and to
every literal of BST(?; =; 6=) such that Vars( ) dom(M ), for any set assignment
M :</p>
        <sec id="sec-2-1-1">
          <title>Then we put, for conjunctions of literals `i:</title>
          <p>when Vars(`i)
dom(M ), for i = 1; : : : ; k.</p>
          <p>M ( ? ) := M
? M</p>
          <p>;
(true</p>
          <p>if M = M
M ( = ) :=</p>
          <p>false otherwise;
M ( 6= ) := :M ( = ) :
M (`1 ^
^ `k) := M `1 ^
^ M `k</p>
          <p>Given a conjunction ' and a set assignment M such that Vars(') dom(M ),
we say that M satis es ', and write M j= ', if M ' = true. When M satis es
', we also say that M is a model of '.</p>
          <p>A conjunction ' is said to be satis able if it has some model, else unsatis able.
For convenience, in what follows we will use the shortening notations
M fx1; : : : ; xkg := fM x1; : : : ; M xkg ;
Ffx1; : : : ; xkg := x1 ? ? xk ;</p>
          <p>Ffs1; : : : ; skg := s1 ? ? sk ;
where M represents a set assignment, x1; : : : ; xk and s1; : : : ; sk denote
variables and sets, respectively, and the ?'s stand for alike symbols/operations `['
or `\'.</p>
          <p>Lemma 2. Let ' be any formula in BST(?; =; 6=), and let M be any set
assignment over Vars (') satisfying '. Then</p>
          <p>Z1
' Z2 =)</p>
          <p>FM Z1 = FM Z2;
for all Z1; Z2 2 P+(Vars(')).</p>
        </sec>
        <sec id="sec-2-1-2">
          <title>Proof. In view of the fact that</title>
          <p>that the equivalence relation
' is inclusion-minimal, it is su cient to prove</p>
          <p>M over P+(Vars(')) de ned by
Z1</p>
          <p>M Z2 (D=e=)f.</p>
          <p>FM Z1 = FM Z2
satis es the closure conditions (Cl1) and (Cl2).</p>
          <p>Concerning (Cl1), if fL; Rg 2 ' then FM L = FM R, so L
proving ' M .</p>
          <p>As for (Cl2), let A M B and C
therefore
Vars('). Then FM A = FM B, and</p>
        </sec>
        <sec id="sec-2-1-3">
          <title>M R holds,</title>
          <p>FM (A [ C) = (FM A) ? (FM C) = (FM B) ? (FM C) = FM (B [ C);
from which A [ C</p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>M B [ C follows.</title>
        <p>We next prove the following key property, which will be used in the
correctness proof of our fast algorithm presented in Section 3.1 for computing
'closures.</p>
        <p>Lemma 3. Given a BST(?; =; 6=)-formula ', let Z 2 P+(Vars(')) be such that
L</p>
        <p>Z () R</p>
        <p>Z ;
for every fL; Rg 2
' .</p>
        <p>Then, for all W1; W2 2 P+(Vars(')) such that W1
' W2, we have
W1</p>
        <p>Z ()
Proof. Let ' and Z be as in the hypothesis. In view of the -minimality of ',
it su ces to prove that the equivalence relation over P+(Vars(')) de ned by
W1 Z W2
(D=e=)f.</p>
        <p>W1</p>
        <p>Z () W2</p>
        <p>Z
(3)
satis es the closure conditions (Cl1) and (Cl2).</p>
        <p>As for (Cl1), just from the hypothesis it follows that L Z R, for every
fL; Rg 2 ' . Concerning (Cl2), let A Z B and C Vars('), and assume that
A [ C Z. Then, A Z and C Z, so that by (3) we have B [ C Z.
Symmetrically, it can be shown that B [ C Z implies A [ C Z. Hence,
A [ C</p>
        <p>Z () B [ C</p>
        <p>Z
holds and, by (3), we readily have A [ C Z B [ C. The arbitrariness of A, B,
and C yields that even the closure condition (Cl2) holds for Z.</p>
        <p>Finally, from the -minimality of ', we have ' Z. Therefore, if W1 '
W2, then W1 Z W2, which by (3) implies W1 Z () W2 Z.</p>
        <p>Further useful properties of the '-closure operator and of the equivalence
relation ' are reported in the following lemma.</p>
        <p>Lemma 4. Let Z; Z1; Z2 2 P+(Vars(')). Then</p>
        <p>' Z;
(a)
(b)
(c)
(d)
(e)
(f)
(g)</p>
        <p>Z Z and Z
Z = Z;
if Z1
Z1
if Z1
Z1
if Z1</p>
        <p>' Z2, then Z1 Z2;
' Z2 if and only if Z1 = Z2;</p>
        <p>Z2, then Z1 Z2;
Z2 if and only if Z1 Z2;</p>
        <p>Z or Z2 Z holds and Z1 ' Z2, then Z
' Z [ Z1 [ Z2.</p>
        <p>Proof. Property (a) follows directly from Lemma 1.</p>
        <p>Concerning (b): the transitivity of ' yields Z ' Z so that, by the de nition
of Z, Z Z holds. By (a) we have Z Z, therefore Z = Z.</p>
        <p>As for (c), if Z1 ' Z2, then Z1 Z2 = Z2.</p>
        <p>Concerning (d), if Z1 ' Z2, then the transitivity of ' yields Z1 ' Z2.
Thus, by (c), we get Z1 = Z2. Conversely if Z1 = Z2, then Z1 ' Z2, thus by
transitivity Z1 ' Z2 holds.</p>
        <p>Regarding (e), let Z1 Z2. Since by (a) Z2 Z2 and Z1 ' Z1 hold, by
(Cl2) we have</p>
        <p>Z2 = Z1 [ (Z2 n Z1) ' Z1 [ (Z2 n Z1) = Z1 [ Z2 :
Thus, by (c), we get the inclusion Z1 [ Z2 Z2, and therefore Z1 Z2.</p>
        <p>Concerning (f), if Z1 Z2, then by (e) and (b) we have Z1 Z2 = Z2.
Conversely, if Z1 Z2, then by (a) we have Z1 Z1 Z2.</p>
        <p>Finally, as for (g), suppose that we have Z1 ' Z2 and either Z1 Z or
Z2 Z holds. By (Cl2), we have Z [ Z1 ' Z [ Z2. But fZ [ Z1; Z [ Z2g =
fZ; Z [ Z1 [ Z2g, hence Z ' Z [ Z1 [ Z2 follows.</p>
        <p>Satis ability in BST([; =; 6=) and in BST(\; =; 6=)
Below we will present a necessary condition that also su ces to ensure that
a given formula in either BST([; =; 6=) or BST(\; =; 6=) is satis able.
Noticeably, this condition is essentially the same for both languages, so that the same
algorithm can be used to test formulae of either language for satis ability.
Theorem 1. Let ' be a BST([; =; 6=)-formula. Then ' is satis able if and only
if L 6 ' R (namely L 6= R) holds for every literal of the form [L 6= [R in '.
Proof. (Necessity.) Let M be a model for '. By way of contradiction, assume
that there exists a literal [L 6= [R such that L ' R. Then by Lemma 2 we
would have [M L = [M R, a contradiction. Therefore for all literals [L 6= [R
we must have L 6 ' R, completing the necessity part of the proof.</p>
        <p>(Su ciency.) Next, let us assume that, for each fL; Rg 2 ' , we have L 6 '
R. We will construct a set assignment M that satis es '.</p>
        <p>Let us assign a nonempty set bV to each V such that V 2 [ ' in such a
way that the bV 's are pairwise distinct.3 Then we de ne the set assignment M
over Vars(') by putting, for each x 2 Vars('),</p>
        <p>M x := fbV j x 2= V and V 2 [ ' g;
so that we have
[M U := fbV j U * V and V 2 [ ' g;
(4)
for every U Vars(').</p>
        <p>We rst show that [M L = [M R holds whenever fL; Rg 2 ' . Thus, let
fL; Rg 2 ' and let bV 2 [M L, for some V 2 ' such that L * V . Then
L * V , by Lemma 4(f). Since fL; Rg 2 ' , then by (Cl1) we have L ' R, so
that, by (d) and (f) of Lemma 4, R * V follows. Hence bV 2 [M R, and by the
arbitrariness of bV we have [M L [M R.</p>
        <p>Analogously one can prove [M R [M L, so [M L = [M R holds, as we
intended to show.</p>
        <p>Next we prove that [M L 6= [M R holds, whenever fL; Rg 2 ' . Thus, let
fL; Rg 2 ' , so that by our assumption we have L 6 ' R. Hence, by Lemma 4(d),
L 6= R. W.l.o.g., let us assume that L * R. Since R R (by Lemma 4(a)) and
plainly R 2 [ ' , then bR 2= [M R, by (4). On the other hand, by Lemma 4(f),
L * R, hence bR 2 [M L, again by (4), and therefore [M L 6= [M R,
concluding the proof of the theorem.</p>
        <p>In a dual manner, one can also prove the following result:
3 For de niteness, such bV 's can be drawn</p>
        <p>f;g; ff;gg; fff;ggg; : : : of Zermelo's non-zero numerals.</p>
        <p>Theorem 2. Let ' be a BST(\; =; 6=)-formula. Then ' is satis able if and only
if L 6 ' R (namely L 6= R) holds for every literal of the form \L 6= \R in '.
from
the
collection</p>
        <p>A cubic-time satis ability test for BST([; =; 6=) and for
BST(\; =; 6=)
Theorems 1 and 2 imply that any BST(?; =; 6=)-formula ', where ? 2 f[; \g, is
satis able if and only if L 6= R holds for every literal FL 6= FR in '. Hence, they
yield straight decision procedures for the theories BST(?; =; 6=), with ? 2 f[; \g.</p>
        <p>The next step will then be to provide a quadratic algorithm for computing the
closure Z of any input Z 2 P+(Vars(')), namely, the largest set in P+(Vars('))
which is '-equivalent to Z.</p>
        <p>In Algorithm 1 below, we provide a high-level speci cation of the function
Closure, intended to compute the closure Z of any given Z 2 P+(Vars(')),
for a BST(?; =; 6=)-formula '. After proving its correctness, we will illustrate a
lower-level implementation whose time complexity is quadratic (as opposed to
the cubic-time complexity which would ensue from a naive implementation).</p>
        <sec id="sec-2-2-1">
          <title>Algorithm 1 Satis ability tester</title>
          <p>Require: A BST(?; =; 6=)-formula ' represented by the sets of pairs ' and ' .
Ensure: Is ' satis able ?
1: for each fL; Rg in ' do
2: if Closure(L, ' ) = Closure(R, ' ) then
3: return false;
4: return true;
1: function Closure(Z, ' )
2:
3:
4:
5:</p>
          <p>Input: a set Z and the set '
Output: the '-closure Z of Z</p>
          <p>Z Z;
while there exists fL; Rg 2 ' such that L</p>
          <p>Z Z [ L [ R;
return Z;
Z () R 6 Z do</p>
          <p>We can now prove quite easily the correctness of the function Closure.
Lemma 5. The function Closure computes closures correctly.
Proof. Given a BST(?; =; 6=)-formula ', with input a set Z Vars(') and a
collection ' the while-loop of the function Closure plainly terminates within
a number k 6 j ' j of iterations. Let Zi be the value of the variable Z after i
iterations, so that Z0 = Z. Preliminarily, we prove by induction on i = 0; 1; : : : ; k
that Zi ' Z and Z Zi.</p>
          <p>The base case i = 0 is trivial.</p>
          <p>Next, let fL; Rg 2 ' be the pair selected by the while-loop during its i-th
iteration, with i &gt; 1. Hence, we have:</p>
          <p>L
' R;</p>
          <p>L</p>
          <p>Zi 1 () R 6 Zi 1;
and Zi = Zi 1 [ L [ R:
Thus, by inductive hypothesis and Lemma 4(g), we have</p>
          <p>Z
from which Z ' Zi and Z Zi follow. Hence, by induction, we have Z ' Zf
and Z Zf, where Zf := Zk is the nal value of the variable Z returned by the
execution of Closure(Z; ' ).</p>
          <p>In addition, the termination condition for the while-loop yields that L
Zf () R Zf, for all fL; Rg 2 ' . Thus, from Lemma 3, it follows that
W1</p>
          <p>Z
f
() W2</p>
          <p>Zf;
(5)
for all W1; W2 2 P+(Vars(')) such that W1 ' W2.</p>
          <p>In order to prove that Zf = Z, we observe that, since Z ' Z and Z Zf,
by (5) we have Z Zf. Moreover, by Lemma 4(a),(d) and since Z ' Zf, we
readily get Zf Zf = Z. The latter inclusion, together with the previously
established one Z Zf, implies Zf = Z, i.e., Zf is the closure of Z, proving that
the call to Closure(Z; ' ) computes the closure Z of Z correctly.</p>
          <p>Theorems 1 and 2, together with Lemma 5 and Lemma 4(d), readily yield
that Algorithm 1 is a valid satis ability test for formulae in the languages
BST([; =; 6=) and BST(\; =; 6=).</p>
          <p>A quadratic implementation of the function Closure
Next, we provide a quadratic implementation of the function Closure, which,
for a given BST(?; =; 6=)-formula ', takes as input the collection ' and a set
Z 2 P+(Vars(')) of which one wants to compute the closure Z. As internal
data structures, the function Closure uses: a doubly linked list Ripe of sets of
the form (L [ R) n Z, where fL; Rg 2 ' and Z is the internal variable whose
value will converge to Z at termination; a doubly linked list Unripe of pairs
of form (L n Z); (R n Z) , with fL; Rg 2 ' ; and an array Aux of m lists of
pointers to nodes either in Ripe or in Unripe, where m is the number of the
distinct variables x1; : : : ; xm in ', intended to allow fast retrieval of nodes in the
lists Ripe and Unripe.</p>
          <p>We will express the complexity of the main procedure in Algorithm 1 and
of our e cient implementation of the function Closure in terms of the four
quantities m; n; p; q, where m = jVars(')j is the number of distinct set variables
in ', n = j'j is the size of ', p = j ' j is the number of literals of the form (=)
in ', and q = j ' j is the number of literals of the form (6=) in '. Plainly, we
have m; p; q 6 n.</p>
          <p>
            Much as in [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ], we can index the variables in Vars(') from 1 to m = jVars(')j,
so that every subset A of Vars(') can be represented as a Boolean array of size m
such that any set variable xi belongs to A if and only if A[i] = 1. In fact, it is
possible to build such an index and initialize accordingly all the arrays corresponding
to the collections of set variables present in [ ' [ [ ' in O(m(p + q) + n) time,
even starting from a formula ' in plain text, yet to be parsed. Speci cally, for
each literal ` in ' of the form FL = FR or FL 6= FR, we let L and R be
pointers to the sets L and R, respectively. Then, while parsing the formula ',
we construct the collection of pairs
1: function Closure(Z, ' )
2: Z Z;
3: for each fL; Rg 2 ' do
4: if L [ R * Z then
5: if L Z or R Z then Ptr Add(Ripe, (L [ R) n Z);
6: . Ptr is a pointer to the node just added to the list Ripe
7: else Ptr Add(Unripe, (L n Z); (R n Z) );
8: for each index i such that xi 2 L [ R do Add(Aux[i], Ptr);
9: while Ripe is not empty do
10: S Extract(Ripe); . Extracts the rst set in Ripe
11: for each index i such that xi 2 S do
12: Z Z [ fxig;
13: for each pointer Ptr in Aux[i] do
14: if Ptr is in Ripe then . Ptr points to the set Ptr.Data
15: Ptr.Data Ptr.Data n fxig;
16: if Ptr.Data = ; then Remove(Ripe, Ptr);
17: else . Ptr points to the pair Ptr.Data in the list Unripe
18: LPtr Ptr.Data.Left Ptr.Data.Left n fxig;
19: RPtr Ptr.Data.Right Ptr.Data.Right n fxig;
20: if LPtr = ; or RPtr = ; then
21: Remove(Unripe, Ptr);
22: if LPtr 6= ; then Add(Ripe, LPtr)
23: else if RPtr 6= ; then Add(Ripe, RPtr)
24: Remove(Aux[i], Ptr);
25:
return Z;
/
:= hx; Ai j x 2 A 2 [ ' [ [ '
and sort it in O(n) time, according to the rst components, using the
lexicographic sorting algorithm of strings of varying length described in [1, Algorithm
3.2 (pp. 80{84)].
          </p>
          <p>Having sorted , we can easily collect the m 6 n distinct variables of '
and index them using the integers 1; : : : ; m. By means of such an indexing, in
O(m(p + q)) time (where p = j ' j and q = j ' j) we can represent as an m-bit
array each set of variables in [ ' [ [ ' , and accordingly represent ' and '
as lists of pairs of m-bit arrays. Such preliminary encoding phase can be carried
out in O(m(p + q) + n) time.</p>
          <p>We make use of the auxiliary functions Add(List, S) and Remove(List, Ptr)
to add S to List (S can be either a set or a pair of sets) and to remove the node
pointed to by Ptr from List, respectively. Since the two lists we use, namely
Ripe and Unripe, are maintained as doubly linked lists, both operations can be
performed in O(1) time. The function Add returns also a pointer to the newly
inserted node. Finally, we use the function Extract(List) to access in O(1)
time the pointer to the rst node of List while removing it.</p>
          <p>The function Closure(Z; ' ) comprises two phases: an initialization phase,
lines 2{8, and a computation phase, lines 9{25.</p>
          <p>For each m-bit array, we maintain a counter of its bits set to 1, so that
emptiness tests can be performed in O(1) time. Plainly, unions, set di erences,
and inclusion tests of sets represented as m-bit arrays can easily be performed
in O(m) time. Also, membership tests and the operations of singleton addition
and singleton removal can be performed in O(1) time.</p>
          <p>Thus, the initialization phase of the function Closure (lines 2{8) can be
performed in O(mp) time.</p>
          <p>At the end of the initialization phase and at each subsequent step, the lists
Ripe and Unripe contain only sets disjoint from Z, and each of them has length
at most p = j ' j. Speci cally, the list Ripe contains the set (L [ R) n Z, for all
fL; Rg 2 ' such that L [ R 6 Z but either L Z or R Z holds. Instead,
the list Unripe contains the pair hL n Z; R n Zi, for all fL; Rg 2 ' such that
L 6 Z and R 6 Z both hold.</p>
          <p>In view of the assignments at lines 15, 18, and 19, the disjointness property
from Z of the sets (L [ R) n Z in Ripe and the sets L n Z and R n Z such that
fL n Z; R n Zg is in Unripe is maintained at each iteration of the while-loop
at lines 9{24. Hence, at each extraction of a set S from the list Ripe at line 10,
none of the set variables in S has already been selected and processed by the
for-loop 11{24. Therefore, each set variable in Vars(') is processed by the
forloop at lines 11{24 at most once, yielding that, in the overall, the for-loop 11{24
is executed at most m times, for a total of O(mp) time, since each execution of
the for-loop 11{24, say relative to a set variable xi, is dominated by the time
taken by the internal for-loop 13{24, which is O(p). Indeed, (i) at the end of the
initialization phase, the list Aux[i] contains at most p pointers to nodes in the
lists Ripe and Unripe; (ii) once a pointer in the list Aux[i] is processed, it is
then removed (line 24), so that it will never be processed again; and (iii) each
line of the for-loop 13{24 can be executed in constant time.</p>
          <p>Since each extraction at line 10 takes O(1) time and, as observed, the list
Ripe has size at most p at the end of the initialization phase, it follows that the
while-loop at lines 9{24 takes O(mp) time.</p>
          <p>Thus, the overall complexity of the function Closure is O(mp) time. Since
m; p 6 n, we have also that the function Closure takes quadratic time O(n2)
in the size n of the formula ' to be tested for satis ability.</p>
          <p>Finally, our satis ability tester (Algorithm 1) checks at most q pairs fL; Rg 2
' in O(mpq) time, by computing the closures L and R by means of calls to
the function Closure and comparing them. By taking into account also the
preliminary encoding phase, which has a O(m(p + q) + n)-time complexity, the
overall complexity of Algorithm 1 is O(mpq+n), which is O(n3) since m; p; q 6 n.</p>
          <p>Concerning the space complexity of our satis ability tester, it is immediate to
check that all data structures used in Algorithm 1 and in the function Closure
require O(mp) space, namely O(n2) space since m; p 6 n.</p>
          <p>Summarizing, we have proved the following result:
Theorem 3. The satis ability decision problem for the language BST([; =; 6=),
as well as for BST(\; =; 6=), can be solved in cubic time and quadratic space.
Remark 1. It is not hard to see that our satis ability tester (Algorithm 1) and
its auxiliary function Closure can be re ned in order that an explicit set
assignment modeling the input conjunction ' is returned when ' is satis able.</p>
          <p>
            Extensions of BST([; =; 6=) and BST(\; =; 6=)
In [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ] we presented two notions called existential expressibility and O(f
)-expressibility, through which one can reduce, in constant or O(f ) time, a set-theoretic
formula of a richer language to an equisatis able formula belonging to a smaller
language. Those notions rely on techniques for replacing formulae that involve
operators or relators not belonging to the smaller language with convenient
surrogates, only comprising operators of the smaller language.
          </p>
          <p>Regarding the languages BST([; =; 6=) and BST(\; =; 6=), we have:
(a) the literal x = ? is O(n)-expressible in BST([; =);
(b) the literal x = ? is O(n)-expressible in BST(\; =);4
(c) the literal x y is existentially expressible in BST([; =) and in BST(\; =);
(d) the literal x * y is existentially expressible in BST([; 6=) and in BST(\; 6=);
(e) the literal Disj(x; y) is existentially expressible in BST(\; =?) and therefore,
by (b), it is O(n)-expressible in BST(\; =);
(f) the literal :Disj(x; y) is existentially expressible in BST( ; 6=); therefore, by
(c), it is existentially expressible in both of BST([; =; 6=) and BST(\; =; 6=).</p>
          <p>Wrapping up, we have that (a), (c), (d), and (f) ensure that any
BST([; =?; 6=?; :Disj; ; *; =; 6=)-formula can be reduced in linear time to an
equisatis able BST([; =; 6=)-formula. Similarly (b), (c), (d), and (e), (f) ensure
that any BST(\; =?; 6=?; Disj; :Disj; ; *; =; 6=)-formula can be reduced in
linear time to an equisatis able BST(\; =; 6=)-formula. Therefore:
Lemma 6. The satis ability decision problem for either one of the languages
BST([; =?; 6=?; :Disj; ; *; =; 6=), BST(\; =?; 6=?; Disj; :Disj; ; *; =; 6=)
can be solved in cubic time.</p>
          <p>
            Remark 2. In [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ] it is also proved that BST([; =?; 6=?; :Disj; ; *; =; 6=) and
BST(\; =?; 6=?; Disj; :Disj; ; *; =; 6=) are polynomial-maximal, which means
that every language strictly containing either one of those languages is endowed
with an NP-hard satis ability decision problem.
          </p>
          <p>
            Related work and conclusions
In [
            <xref ref-type="bibr" rid="ref4 ref6">4,6</xref>
            ], we highlighted initial results on fragments of set theory endowed with
polynomial-time satis ability decision tests, potentially useful for automated
proof veri cation and, more generally, in the symbolic manipulation of
declarative speci cations (cf., e.g., [
            <xref ref-type="bibr" rid="ref18 ref8 ref9">18,9,8</xref>
            ]). At the outset, we focused on `Boolean Set
Theory', BST, namely the language of quanti er-free formulae that involves
setvariables, the Boolean set operators [; \; n, the Boolean relators ; 6 ; =; 6=, and
the predicates ` =?' and `Disj( ; )', along with their opposites. That language,
whose expressive power is greater than it may appear at rst glance (cf. [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ]), has
an NP-complete satis ability problem. In [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ] we organized the fragments of BST
4 The proofs of (a) and of (c){(f) appear in [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ]; the proof of (b), which is new, is
provided in Appendix A.
in a full complexity taxonomy which spots the 18 minimal NP-complete
fragments, and the 5 maximal polynomial fragments. We then announced a study
on sub-maximal polynomial fragments of BST, which this paper has undertaken.
          </p>
          <p>We plan to address the satis ability problem for the theories BST([; 6 ; 6=)
and BST(\; 6 ; 6=) by suitably adapting to them the equivalence relation '
and its related closure operator introduced in this paper for the fragments
BST([; =; 6=) and BST(\; =; 6=). In view of the equivalences</p>
          <p>A = B
A = B
() A 6</p>
          <p>A [ B ^ B 6 A
() A \ B 6</p>
          <p>A ^ B 6</p>
          <p>A;
it turns out that the theories BST([; 6 ; 6=) and BST(\; 6 ; 6=) are extensions of
BST([; =; 6=) and of BST(\; =; 6=), respectively. Notice that the relation A 6 B,
which stands for A * B _ A = B, embodies a disjunction. It is therefore
expected that the resulting satis ability tests for BST([; 6 ; 6=) and BST(\; 6 ; 6=)
may have a complexity worse than cubic, though still polynomial.</p>
          <p>
            We envisage a con uence of the line of research centered on satis ability
testers, to which this paper, along with [
            <xref ref-type="bibr" rid="ref3 ref4 ref6">4,6,3</xref>
            ], contributes, with another active
line of research centered on set-uni cation algorithms (see, e.g., [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ]). A quick
satis ability tester often is, in fact, less helpful than a solver able to produce
a bunch of solution templates which cover, collectively, all possible models of a
given formula; or, even better, a solver supplying a symbolic solution of maximum
possible generality: e.g., the Buttner{Simonis uni cation algorithm for Boolean
algebras [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ], which produces, when a model exists, a most general uni er.
          </p>
          <p>
            Another foreseeable con uence has to do with a long-standing line of research
initiated by [
            <xref ref-type="bibr" rid="ref12 ref13">12,13</xref>
            ], concerning the cooperation among decision algorithms (see
also, among many, [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ]). In connection with the problem of combining decision
algorithm, it is worth noticing that not just BST but even the much richer
decidable theory MLS turns out to be `convex' in the sense explained in [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ].
Acknowledgements We gratefully acknowledge partial support from project
\STORAGE|Universita degli Studi di Catania, Piano della Ricerca 2020/2022,
Linea di intervento 2", and from INdAM-GNCS 2019 and 2020 research funds.
          </p>
          <p>We are also grateful to the anonymous reviewers for their helpful comments.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Expressibility</title>
      <p>In this appendix we highlight the reduction technique used in Section 4.</p>
      <p>Most of our reductions are based on the standard notion of `context-free'
expressibility:
De nition 1 (Existential expressibility). A formula (x) is said to be
existentially expressible in a theory T if there exists a T -formula ( x; z ) such
that
j=</p>
      <p>( x ) () ( 9z ) ( x; z );
where x and z stand for tuples of set variables.</p>
      <p>We also devised a more general notion of `context-sensitive' expressibility,
embodying complexity-related information.</p>
      <p>De nition 2 (O(f )-expressibility). Let T1 and T2 be any theories and f : N !
N be a given map. A collection C of formulae is said to be O(f )-expressible from
T1 into T2 if there exists a map
h '( y ) ; ( x ) i 7!
' ( x; y; z )
from T1 C into T2, where no variable in z occurs in either x or y, such that
the following conditions are satis ed:
(a) the mapping (6) can be computed in O f (j' ^ j) -time,
(b) if '( y ) ^ ' ( x; y; z ) is satis able, so is '( y ) ^ ( x ),
(c) j= '( y ) ^ ( x ) ! ( 9z ) ' ( x; y; z ).</p>
      <p>We are now ready to prove that the literal x = ? is O(n)-expressible in
BST(\; =), albeit not existentially expressible in BST(\; =; 6=).</p>
      <p>Lemma 7. The literal x = ? is not existentially expressibile in BST(\; =; 6=).
Proof. Assume by way of contradiction that x = ? is existentially expressible in
BST(\; =; 6=), so that there exists a BST(\; =; 6=)-formula (x; y) such that:
j= x = ? () (9z) (x; z):</p>
      <p>Since x = ? is plainly satis able then so it is , therefore it is satis ed by
the set assignment x 7!M fbV j x 2 V g (dual to the assignment (4), and actually
exploited in the proof of Theorem 2). Notice that M is such that, for each set
variable y 2 Vars( ), M y 6= ; holds; and, since x 2 Vars( ) we obtain
M j= (9z)
^ x 6= ;;
contradicting (7), whence our claim follows.</p>
      <p>Lemma 8. The literal x = ? is O(j'j)-expressible from BST(\; =) into BST(\; =).
(6)
(7)
Proof. We will show that the map
h '(y) ; x = ? i 7!
(8)
de ned for all '(y) 2 BST(\; =) , satis es (a), (b), and (c), where f is the
function sending each formula ' to its length n = j j
' .</p>
      <p>Plainly the map (8) can be computed by collecting all variables occurring in
the formula ' while scanning it, hence it can be computed in O(n)-time.</p>
      <p>Concerning (b), let M be a model for '(y) ^ \y2y y \ x = x. Then we have
M x = M x \ M y, namely M x M y, for all y 2 Vars('). Put</p>
      <p>M 0v := M v n M x;
for every set variable v 2 Vars(') [ fxg. Plainly M 0x = M x n M x = ;, so that
M 0 j= x = ?.</p>
      <p>To see that M 0 j= '(y), consider any literal \L = \R of ', and note that:
(since M j= ')
therefore M 0 models each literal of '.</p>
      <p>Finally, concerning (c), let M be a model for '(y) ^ x = ?. Then M x = ;
so that
\ M y \ M x = \ M y \ ; = ; = M x;
y2y y2y
by the genericity of M , we readily get
j= '(y) ^ x = ? ! \ y \ x = x;
y2y</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Aho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. E.</given-names>
            <surname>Hopcroft</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Ullman</surname>
          </string-name>
          .
          <article-title>The Design and Analysis of Computer Algorithms</article-title>
          . Addison-Wesley Publishing Company,
          <year>1975</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>W.</given-names>
            <surname>Bu</surname>
          </string-name>
          <article-title>ttner and</article-title>
          <string-name>
            <given-names>H.</given-names>
            <surname>Simonis</surname>
          </string-name>
          .
          <article-title>Embedding boolean expressions into logic programming</article-title>
          .
          <source>J. Symb. Comput.</source>
          ,
          <volume>4</volume>
          (
          <issue>2</issue>
          ):
          <volume>191</volume>
          {
          <fpage>205</fpage>
          ,
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>D.</given-names>
            <surname>Cantone</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. De Domenico</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Maugeri</surname>
            , and
            <given-names>E. G.</given-names>
          </string-name>
          <string-name>
            <surname>Omodeo</surname>
          </string-name>
          .
          <article-title>A quadratic reduction of constraints over nested sets to purely Boolean formulae in CNF</article-title>
          . In F. Calimeri,
          <string-name>
            <given-names>S.</given-names>
            <surname>Perri</surname>
          </string-name>
          , and E. Zumpano, editors,
          <source>Proceedings of the 35th Italian Conference on Computational Logic - CILC</source>
          <year>2020</year>
          , Rende, Italy,
          <source>October 13-15</source>
          ,
          <year>2020</year>
          , volume
          <volume>2710</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pages
          <volume>214</volume>
          {
          <fpage>230</fpage>
          . CEUR-WS.org,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D.</given-names>
            <surname>Cantone</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. De Domenico</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Maugeri</surname>
            , and
            <given-names>E. G.</given-names>
          </string-name>
          <string-name>
            <surname>Omodeo</surname>
          </string-name>
          .
          <article-title>Complexity assessments for decidable fragments of set theory. I: A taxonomy for the Boolean case</article-title>
          .
          <source>Fundam. Informaticae</source>
          ,
          <volume>181</volume>
          (
          <issue>1</issue>
          ):
          <volume>37</volume>
          {
          <fpage>69</fpage>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>D.</given-names>
            <surname>Cantone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ferro</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E. G.</given-names>
            <surname>Omodeo. Computable Set</surname>
          </string-name>
          <string-name>
            <surname>Theory</surname>
          </string-name>
          , volume
          <volume>1</volume>
          of International Series of Monographs on Computer Science. Clarendon Press, Oxford, UK,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>D.</given-names>
            <surname>Cantone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Maugeri</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E. G.</given-names>
            <surname>Omodeo</surname>
          </string-name>
          .
          <article-title>Complexity assessments for decidable fragments of set theory. II: A taxonomy for `small' languages involving membership</article-title>
          .
          <source>Theor. Comput. Sci.</source>
          ,
          <volume>848</volume>
          :
          <fpage>28</fpage>
          {
          <fpage>46</fpage>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>D.</given-names>
            <surname>Cantone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. G.</given-names>
            <surname>Omodeo</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Policriti</surname>
          </string-name>
          .
          <article-title>The automation of syllogistic. II: Optimization and complexity issues</article-title>
          .
          <source>J. Autom. Reason.</source>
          ,
          <volume>6</volume>
          (
          <issue>2</issue>
          ):
          <volume>173</volume>
          {
          <fpage>188</fpage>
          ,
          <year>June 1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>M.</given-names>
            <surname>Cristia</surname>
          </string-name>
          and
          <string-name>
            <given-names>G.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>Solving quanti er-free rst-order constraints over nite sets and binary relations</article-title>
          .
          <source>J. Autom. Reason.</source>
          ,
          <volume>64</volume>
          (
          <issue>2</issue>
          ):
          <volume>295</volume>
          {
          <fpage>330</fpage>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>A.</given-names>
            <surname>Dovier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Piazza</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>A uniform approach to constraint-solving for lists, multisets, compact lists, and sets</article-title>
          .
          <source>ACM Trans. Comput. Log.</source>
          ,
          <volume>9</volume>
          (
          <issue>3</issue>
          ):
          <volume>15</volume>
          :1{
          <fpage>30</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>A.</given-names>
            <surname>Dovier</surname>
          </string-name>
          , E. Pontelli, and
          <string-name>
            <given-names>G.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>Set uni cation</article-title>
          .
          <source>Theor. Pract</source>
          . Log. Prog.,
          <volume>6</volume>
          (
          <issue>6</issue>
          ):
          <volume>645</volume>
          {
          <fpage>701</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>A.</given-names>
            <surname>Ferro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. G.</given-names>
            <surname>Omodeo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. T.</given-names>
            <surname>Schwartz</surname>
          </string-name>
          .
          <article-title>Decision procedures for elementary sublanguages of set theory. I: Multi-level syllogistic and some extensions</article-title>
          .
          <source>Commun. Pure Appl</source>
          . Math.,
          <volume>33</volume>
          (
          <issue>5</issue>
          ):
          <volume>599</volume>
          {
          <fpage>608</fpage>
          ,
          <year>1980</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>G.</given-names>
            <surname>Nelson</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Oppen</surname>
          </string-name>
          ,
          <article-title>Simpli cation by Cooperating Decision Procedures, ACM Trans</article-title>
          . Program. Lang. Syst.,
          <volume>1</volume>
          (
          <issue>2</issue>
          ):
          <volume>245</volume>
          {
          <fpage>257</fpage>
          ,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>G.</given-names>
            <surname>Nelson</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Oppen</surname>
          </string-name>
          ,
          <article-title>Fast Decision Procedures Based on Congruence Closure</article-title>
          ,
          <string-name>
            <surname>J. ACM</surname>
          </string-name>
          ,
          <volume>27</volume>
          (
          <issue>2</issue>
          ):
          <volume>356</volume>
          {
          <fpage>364</fpage>
          ,
          <year>1980</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>D. C. Oppen</surname>
          </string-name>
          , Complexity, Convexity and Combinations of Theories,
          <source>Theor. Comput. Sci.</source>
          ,
          <volume>12</volume>
          :
          <fpage>291</fpage>
          {
          <fpage>302</fpage>
          ,
          <year>1980</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>F.</given-names>
            <surname>Parlamento</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Policriti</surname>
          </string-name>
          .
          <article-title>Decision Procedures for Elementary Sublanguages of Set Theory. IX: Unsolvability of the decision problem for a restricted subclass of the 0-formulas in Set Theory</article-title>
          ,
          <source>Comm. Pure Appl</source>
          . Math.,
          <volume>41</volume>
          (
          <issue>2</issue>
          ):
          <volume>221</volume>
          {
          <fpage>251</fpage>
          ,
          <year>1988</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. Deciding Combinations of Theories, J. ACM,
          <volume>31</volume>
          (
          <issue>1</issue>
          ):1{
          <fpage>12</fpage>
          ,
          <year>1984</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>J. T.</given-names>
            <surname>Schwartz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Cantone</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E. G.</given-names>
            <surname>Omodeo</surname>
          </string-name>
          .
          <source>Computational Logic and Set Theory { Applying Formalized Logic to Analysis</source>
          . Springer,
          <year>2011</year>
          . Foreword by Martin Davis.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>F.</given-names>
            <surname>Stolzenburg</surname>
          </string-name>
          .
          <article-title>Membership-constraints and complexity in logic programming with sets</article-title>
          . In F.
          <article-title>Baader and</article-title>
          K. U. Schulz, editors,
          <source>Frontiers of Combining Systems</source>
          , First International Workshop FroCoS 1996, Munich, Germany, March 26- 29,
          <year>1996</year>
          , Proceedings, volume
          <volume>3</volume>
          of Applied Logic Series, pages
          <volume>285</volume>
          {
          <fpage>302</fpage>
          . Kluwer Academic Publishers,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>