<!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>On the Quest for an Acyclic Graph</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mikol´aˇs Janota</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Radu Grigore</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vasco Manquinho</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>IST/INESC-ID</institution>
          ,
          <addr-line>Lisbon</addr-line>
          ,
          <country country="PT">Portugal</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>School of Computing, University of Kent</institution>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <fpage>41</fpage>
      <lpage>55</lpage>
      <abstract>
        <p>The paper aims at finding acyclic graphs under a given set of constraints. More specifically, given a propositional formula φ over edges of a fixed-size graph, the objective is to find a model of φ that corresponds to a graph that is acyclic. The paper proposes several encodings of the problem and compares them in an experimental evaluation using stateof-the-art SAT solvers.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>SAT solvers have become popular means of solving computationally hard
problems. However, most modern SAT solvers require the problem to be specified in
conjunctive normal form (CNF). This may pose difficulty in problems
comprising of constraints that do not have a straightforward translation to propositional
logic. This paper targets one such constraint, graph acyclicity.</p>
      <p>A graph is naturally modeled by a set of Boolean variables xjk expressing the
existence of an edge from j to k. So, for instance, a constraint x12 ∨ x13 expresses
that we’re looking for a graph where the node 1 is connected to at least one of
the nodes 2 and 3. But how do we ensure that we are looking for a graph that
is acyclic?</p>
      <p>
        Acyclicity is a core concept from graph theory and naturally arises in a
number of applications. In planning it is used to ensure causality [
        <xref ref-type="bibr" rid="ref42">42</xref>
        ]. Similarly,
it is needed in networks used for computation, e.g. Bayesian networks [
        <xref ref-type="bibr" rid="ref49">49</xref>
        ]. More
recently, software verification of concurrent programs relies on relaxed memory
models, which are defined in terms of acyclic relations [
        <xref ref-type="bibr" rid="ref34 ref51">34, 51</xref>
        ].
      </p>
      <p>
        There is a large body of work of translating constraints into CNF. Prime
examples are cardinality constraints [
        <xref ref-type="bibr" rid="ref36 ref43 ref5">5,36,43</xref>
        ] pseudo-Boolean constraints [
        <xref ref-type="bibr" rid="ref17 ref6">6,17</xref>
        ],
XOR-constraints [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] and general CSP [
        <xref ref-type="bibr" rid="ref46">46</xref>
        ]. A number of graph-related problems
approached by SAT can be found in the literature. For instance, encoding graph
connectivness property [
        <xref ref-type="bibr" rid="ref47">47</xref>
        ], graph coloring [
        <xref ref-type="bibr" rid="ref50">50</xref>
        ], calculating Steiner tree [
        <xref ref-type="bibr" rid="ref14 ref30">14, 30</xref>
        ]
or maximum clique [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]. It is also worth mentioning that graphs and SAT play
an important role in the research on Gene regulatory networks [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>
        The paper has the following contributions. It reviews CNF encodings that are
found in the literature, and introduces a number of new ones. All these encodings
were implemented and extensively evaluated. To generate a well-defined testbed
we introduce The Supervisor Problem, which asks to assign supervisors to a
group of persons, where there is a lower bound for each person’s supervisors and
an upper bound on how many persons he or she can supervise. This problem
is a generalization of the well-known ordering principle (also known as the GT
family) studied in proof complexity [
        <xref ref-type="bibr" rid="ref1 ref10 ref32 ref44">1, 10, 32, 44</xref>
        ].
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>Our basic setting is the following. We represent a directed graph on n ≥ 1
vertices by Boolean variables xij , associated with edges. A family of graphs
is defined by a formula φn(x, y ) over the edge variables x and some auxiliary
variables y. Each graph corresponds to a satisfying assignment of ∃y φn(x, y).
Given such a formula φn, we wish to construct another formula ψn, such that the
satisfying assignments of ∃y ∃z φn(x, y ) ∧ ψn(x, z ) correspond to the graphs
from the given family that, in addition, are acyclic. We refer to the formula ψn
as the acylicity checker or, for short, the checker. In the rest of the section, we
make this more precise, and we describe the particular formulas φn that we use
in experiments. The acyclicity checkers ψn are discussed later (§ 3). Standard
terminology from propositional logic and graph theory is assumed.
2.1</p>
      <sec id="sec-2-1">
        <title>Propositional Logic and SAT Solving</title>
        <p>Propositional formulas are constructed from propositional variables by Boolean
connectives (∨, ∧, ⇒) and negation (¬). A propositional formula is in
conjunctive normal form (CNF) if it is a conjunction of clauses, where a clause is a
disjunction of literals, where a literal is a propositional variable or its negation.</p>
        <p>Whenever convenient, we treat CNF as a set of clauses and a clause as a set
of literals. Observe that the empty set of clauses corresponds semantically to
true and the empty clause corresponds semantically to false. The empty clause
is denoted as ⊥.</p>
        <p>
          Any propositional formula can be converted to an equisatisfiable CNF
formula in linear time [
          <xref ref-type="bibr" rid="ref41 ref48">41, 48</xref>
          ].
        </p>
        <p>The problem of satisfiability (SAT) is to decide for a given propositional
formula whether there is a satisfying assignments for it or not.</p>
        <p>The paper requires minimal understanding of SAT solving. We will assume
that a SAT solver accepts a formula in CNF and gives the response “YES” if
the formula is satisfiable and “NO” otherwise. Most modern SAT solvers also
provide an actual satisfying assignment if the answer is “YES”.</p>
        <p>
          When discussing the performance of SAT solvers, sometimes we refer to the
underlying proof system, which is propositional resolution. Given two clauses
x∨C and ¬x∨D their resolution is C ∨D. The two clauses are called antecedents
and the resulting clause the resolvent. Resolution proof of a clause C from a
formula φ is a sequence of clauses C1, . . . , Ck such that Ck = C and each clause
Ci is either in φ or it is a resolvent of some Cj , Ck with 1 ≤ j &lt; k &lt; i. A
resolution refutation is a resolution proof of the empty clause. A CNF formula
is unsatisfiable if and only if there exists a resolution refutation for it. For most
modern SAT solvers it holds that for any run of the SAT solver that responds
“NO”, there exists a resolution refutation of the input formula linear to the run
of the solver. In fact, it even holds that for any resolution refutation there exists
a polynomial run of the solver [
          <xref ref-type="bibr" rid="ref39">39</xref>
          ].
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Graphs</title>
        <p>Throughout the paper we will be discussing directed graphs. A directed graph
G = (V, E) consists of a set V of vertices and a set E of edges. In this paper, we
work with finite graphs, and we fix V = [n] = {1, . . . , n}. We denote vertices by
i, j, k, . . . and we abbreviate the (directed) edge (i, j) by ij. For an edge ij, we
say that it has source i and target j; conversely, we say that ij is an outgoing
edge of i, and an incoming edge of j. The in-degree of a vertex is its number of
incoming edges, and the out-degree of a vertex is its number of outgoing edges.
A sink is a vertex with out-degree 0.</p>
        <p>A graph property is a family G of graphs. In this paper, we consider only
properties Gn that contain graphs with a fixed number n of vertices, and are
defined by a formula φn. More precisely, φn has one variable xij for each pair
(i, j) ∈ V × V , and may also use some auxiliary variables y. Then, a graph
with edges E is in Gn if and only if it corresponds to a satisfying assignment
of ∃y φn(x, y). We say that a property is monotone if adding edges to a graph
preserves the property. This corresponds to the Boolean function ∃y φn(x, y )
being monotone. We remark that the property of having a cycle is monotone,
and the intersection of two monotone properties is monotone.
2.3</p>
      </sec>
      <sec id="sec-2-3">
        <title>The No-Sink Family</title>
        <p>The graphs with no sinks are described by the following formula:
φn(x ) :=</p>
        <p>xij
i∈[n] j∈[n]
(no-sink)
Observe that the no-sink property is monotone. Also, the ordering principle says
that graphs with no sink have a cycle. It follows that, no matter what acyclicity
check ψn we use, the formula ∃y ∃z φn(x, y ) ∧ ψn(x, z ) will be unsatisfiable.
Since we know the answer, the no-sink family is a good test case for the
correctness of our implementation. In addition, as we shall see, these unsatisfiable
formulas are not easy for state-of-the art SAT solvers.
2.4</p>
      </sec>
      <sec id="sec-2-4">
        <title>The Supervisor Problem</title>
        <p>We define a parameterized family of graphs, which will typically contain both
cyclic and acyclic graphs. The idea is as follows. Consider a group of n people
where each person must have a certain number of supervisors and at the same
time there is a limit on how many people a person can supervise. The supervisor
problem is formalized as follows.</p>
        <p>Input: A positive integer n and a sequence of pairs of nonnegative integers
(u1, l1), . . . , (un, ln).</p>
        <p>Output: “YES” if and only if there exists an acyclic graph with the vertices
V = [n] such that vertex i has at most ui incoming edges and at least li outgoing
edges.</p>
        <p>An instance n, u, l of the Supervisor problem reduces to the satisfiability of
the following formula:
φn,u,l (x ) :=</p>
        <p>
          atleast(li; xi1, . . . , xin)
The cardinality constraint atleast(l; x ) evaluates to 1 when at least l of the
Boolean variables x evaluate to 1. There are several ways to encode such
cardinality constraints in CNF [
          <xref ref-type="bibr" rid="ref17 ref36 ref43 ref5">5, 17, 36, 43</xref>
          ]. The cardinality constraint atmost(u; x )
is analogous.
        </p>
        <p>The Supervisor problem has three interesting special cases: (a) the no-sink
family; (b) the pigeonhole principle; and (c) the DAG realizability problem. We
obtain a description of the no-sink family by requiring the bounds (n, 1) for each
of the n vertices. We obtain a description of the pigeonhole principle by requiring
the bounds (0, 1) for k1 vertices and the bounds (1, 0) for k2 vertices, with
k1 + k2 = n and k1 &gt; k2. Finally, any instance of the DAG realizability problem
is also an instance of the Supervisor problem, which satisfies the additional
constraint in=1 ui = in=1 li.</p>
        <p>
          Since the pigeonhole principle is a special case, it follows that (supervisor)
sometimes requires large resolution refutations [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]. Since the DAG realizability
problem is a special case, it follows that it is NP-complete to find a model
of (supervisor) that corresponds to an acyclic graph [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]. Finally, we observe
that (supervisor) is not monotone.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Encodings</title>
      <p>We discuss several ways of constructing the acyclicity checker ψn, based on
reachability (§3.1), based on labeling vertices with numbers (§3.2 and §3.3), and
based on oblivious algorithms (§3.4 and §3.5).
3.1</p>
      <sec id="sec-3-1">
        <title>Transitive Closure</title>
        <p>A graph G = (V, E) does not have cycles if and only if E+ is irreflexive. Here, E+
denotes the irreflexive transitive closure of E. Further, G does not have cycles if
and only if there exists an irreflexive transitive relation R that contains E; that
is, if there exists R ⊆ V × V such that (a) ii ∈/ R for all i ∈ V , (b) ij ∈ R and
jk ∈ R only if ik ∈ R for all i, j, k ∈ V , and (c) ij ∈ R if ij ∈ E for all i, j ∈ V .</p>
        <p>We represent the relation R by variables yij , and we define ψn by clauses that
directly correspond to the conditions (a), (b), and (c):
A possible alternative is the following:
ψn(x, y ) :=
ψn(x, y ) :=
¬yii ∧
¬yii ∧
i∈[n]
In relational language, (tc1) corresponds to the conditions (a) R ∩ id = ∅,
(b) RR ⊆ R, and (c) E ⊆ R. Here, id is defined to be { ii | i ∈ V }. In (tc2), we
replace condition (b) by RE ⊆ R. Juxtaposing relations corresponds to normal
relational composition:</p>
        <p>RE := { (i, j) | (i, k) ∈ R and (k, j) ∈ E, for some k }</p>
        <p>
          If the family of graphs satisfying φn is monotone, in the sense that adding
edges preserves φn, then we do not need to use auxiliary variables yij , as we can
simply reuse the variables xij :
ψn(x ) :=
¬xii ∧
(xij ∧ xjk → xik)
(tc3)
i∈[n]
The conjunction of (tc3) and (no-sink) has Ω(2n) regular tree resolution proofs
but O(n3) dag resolution proofs; see [
          <xref ref-type="bibr" rid="ref10 ref32 ref44">10, 32, 44</xref>
          ] and [31, §7.2.2.2, Theorem R].
Such conjunctions express the ordering principle.
        </p>
        <p>
          Observe that the formulas in each of (tc1), (tc2), and (tc3) have size Θ(n3).
A graph is acyclic when it can be embedded in a linear order; that is, when there
exists a labeling l : V → Z of the vertices such that ij ∈ E implies l(i) &lt; l(j)
for all i, j ∈ V . Recall that V = [n]. Clearly, it is sufficient to use b := log2 n
bits for labels, so l : V → {0, 1}b. Accordingly, we use n groups y1, . . . , yn of
auxiliary variables, each containing b Boolean variables. The acyclicity checker
is then [
          <xref ref-type="bibr" rid="ref42">42</xref>
          ]:
The implementation of less depends on how we represent numbers. Because we
use binary numbers, we set less := lexb, and define the latter to test lexicographic
ordering of the bits:
        </p>
        <p>lex0() := 0
lexb(yy, zz) := (¬y ∧ z) ∨ (¬y ∨ z) ∧ lexb−1(y, z )
(bin)
(1)
(2)</p>
        <p>Converting this circuit to CNF will require some more auxiliary variables, which
we do not denote explicitly. The conversion is standard, and the size of the
resulting CNF is Θ(b).</p>
        <p>Observe that the formula in (bin) has size Θ(n2 log n).
3.3</p>
      </sec>
      <sec id="sec-3-2">
        <title>Unary Labeling</title>
        <p>We can also use the labeling idea with unary numbers. To represent a number,
instead of log2 n bits we use n − 1 bits, and force them to follow the pattern
0∗1∗. We could still compare these numbers by their lexicographic order using lex,
but we can also write directly a CNF formula, thus avoiding the (small) overhead
associated with converting a circuit into CNF.</p>
        <p>The acyclicity checker is defined by
ψn(x, y1, . . . , yn ) :=
xij → less(yi, yj ) ∧
unary(yi)
(unr)
where each yi uses n − 1 bits.</p>
        <p>We could use less := lexn−1, but we prefer less(y, z ) := ∃u lessunr(y, z, u ),
where
n−1
i=1
lessunr(y, z, u ) :=
(¬yi ∨ ¬ui) ∧ (zi ∨ ¬ui) ∧
n−1
i=1
ui
The auxiliary u variables will identify a position i where yi = 0 and zi = 1. This
is sufficient because we enforce the pattern 0∗1∗.</p>
        <p>unary(y ) :=</p>
        <p>(yi−1 → yi)
n−1
i=2
(3)
(4)</p>
        <p>Observe that the formula in (unr) has size Θ(n3).
3.4</p>
      </sec>
      <sec id="sec-3-3">
        <title>Warshall</title>
        <p>The Warshall algorithm computes transitive closure, in cubic time.
Warshall
1 for k ∈ [n]
2 for i ∈ [n]
3 for j ∈ [n]
4 aij := Or(aij , And(aik, akj ))
Initially, aij says if the graph contains an edge ij; and, at the end aij says if the
graphs contains a path from i to j. In particular, at the end, aii says if there is
a cycle containing vertex i.</p>
        <p>In a usual implementation, the procedures Or, And are simply performing
the corresponding Boolean operations. Instead, we could replace each of them
with a function that constructs the corresponding circuit. Because the Warshall
algorithm is simple enough, we can also build the acyclicity checker directly.
We use n2(n + 1) auxiliary variables yijk, for i, j ∈ [n] and k ∈ {0, . . . , n}. The
variable yijk will be 1 only if there exists a path from i to j that uses intermediate
vertices only from the set [k].</p>
        <p>ψn(x, y) :=
¬yiin ∧
(xij → yij0) ∧</p>
        <p>(yij(k−1) → yijk)
i∈[n]
∧
i,j,k∈[n]
We remark that the formula above is close but not the same as what we would
obtain by replacing the basic operations Or, And with circuit builders. One
difference is that we use implications rather than equivalences: It is possible that
yijk = 1 even if there is no corresponding path. Another difference is that the
last conjunct built by Warshall would be (yik(k−[k≥j]) ∧ ykj(k−[k≥i])) ↔ yijk,
where [p] evaluates to 1 when p is true, and 0 when p is false. Either form is
correct.</p>
        <p>The formula in (fw) is similar to the one in (tc1). It has the same size Θ(n3),
but uses more auxiliary variables.
Let us take stock of the encodings we have so far. Four encodings have size
Θ(n3), namely (tc1), (tc2), (unr), and (fw); another encoding has size Θ(n2 log n),
namely (bin). But, size is not the only criterion on which to judge a satisfiability
formula. We note that (tc1), (tc2), and (fw) have the following desirable property:
if the edge variables x are fixed, then satisfiability is decided by unit propagation.
The smaller encoding (bin) does not have this property. Is it possible to have a
formula of sub-cubic size that is solved by unit propagation once the edge
variables x are fixed? We answer this question affirmatively by showing an encoding
based on matrix multiplication. We first describe the algorithm. The formula ψn
will be constructed by replacing the basic operations with circuit builders, and
then converting the circuit to CNF.</p>
        <p>We will consider n×n matrices of two kinds, over integers and over Booleans.
Integers form a commutative ring, so the corresponding matrix operations are
unrestricted. Booleans do not form a ring: We take addition to be logical-or
and we take multiplication to be logical-and, but there is no subtraction. Since
we use both types of operations and sometimes reinterpret the same matrix as
being over integers or over Booleans, we distinguish Boolean matrices with a hat.
When we reinterpret an integer matrix X as a Boolean matrix Xˆ , all non-zero
integers collapse to 1.</p>
        <p>Let X be the adjacency matrix of a graph, with entries in {0, 1}. Entry (i, j)
of Xl is the number of paths of length l from i to j, and entry (i, j) of Xˆ l tells
us if there exists a path of length l from i to j. Thus, to decide if the graph
has a cycle it suffices to check the diagonal of the Boolean matrix
compute this matrix by repeated squaring:</p>
        <p>Aˆ0 := Xˆ
Bˆ0 := Xˆ</p>
        <p>Aˆk+1 := Aˆ2k
Bˆk+1 := Bˆk + AˆBˆk
It is easy to check that Aˆk = Xˆ 2k and Bˆk = l2=k 1 Xˆ l, and also that Bˆk equals
n
l=1 Xˆ l whenever k ≥ log2 n. Thus we can decide if a directed graph is acyclic
in the time needed to perform Θ(log n) multiplications of n × n Boolean
matrices. One could perform a naive matrix multiplication in Θ(n3) time, giving an
acyclicity checker ψn of size Θ(n3 log n).</p>
        <p>
          Alternatively, to multiply Boolean matrices Aˆ and Bˆ, we multiply them as
integer matrices obtaining C = AB; the product of Aˆ and Bˆ is then Cˆ. (The
idea of using intermediate integer matrices is old [
          <xref ref-type="bibr" rid="ref18 ref19 ref37">18, 19, 37</xref>
          ].) To perform the
multiplication of integer matrices, we use Strassen’s algorithm [
          <xref ref-type="bibr" rid="ref45">45</xref>
          ], which works
in O(n2.81) time. To achieve this improved runtime, Strassen’s algorithm makes
essential use of subtraction, which is not available over Booleans. However, the
runtime O(n2.81) counts operations over integers, while we must count operations
over bits since we ultimately want to build a circuit. Since the matrices A and B,
which we multiply, have entries from {0, 1}, the product matrix C has entries
from {0, . . . , n}. Some intermediate values in Strassen’s algorithm are outside
this range. Nevertheless, one can check that Θ(log n) bits are sufficient to
represent all intermediate values. So, the size of the circuit is O(n2.81 log n · f (log n)),
where f (w) is the size of a circuit necessary to perform an arithmetic
operation on integers with w bits. In our implementation, we use a simple quadratic
multiplication algorithm, leading to a circuit of size O(n2.81 log3 n).
        </p>
        <p>
          In theory, one can use the same approach to achieve O nω log2 n log log n ·
8log∗ log n by using better algorithms for the multiplication of matrices [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] and
for the multiplication of integers [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ]. But such algorithms are known to not
be practical. Our current implementation based on Strassen is not competitive
either (§4). Improving it seems to require new ideas.
        </p>
        <p>
          Discussion. The approach we took for both Warshall and for matrix
multiplication was to replace the basic operations in the algorithm with circuit builders.
This approach is fairly general, but it does not apply to all algorithms, just to
the oblivious ones. An algorithm is said to be oblivious when the memory
locations it accesses do not depend on the input data. If an algorithm runs in t(n)
time in the Turing model of computation, then one can construct an oblivious
algorithm that runs in O t(n) log t(n) time, and hence a Boolean circuit of that
size [
          <xref ref-type="bibr" rid="ref40">40</xref>
          ]. In contrast, a similar construction does not exist in the deterministic
RAM model of computation [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ].
        </p>
        <p>The standard (and optimal) algorithm for finding cycles in directed graphs
is DFS (depth-first search). However, we are not aware of an implementation of
DFS that works in sub-cubic time in the (oblivious, deterministic, multi-tape)
Turing machine model of computation.
n
l=1 Xˆ l. We
(5)
(6)
solver/checker tc1 unr bin fw tc2</p>
        <p>
          solver/checker tc1 unr bin fw tc2
Overall setup. Three popular state-of-the-art SAT solvers were used for the
evaluation: Lingeling Version 276 [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], glucose 4.0 [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], and minisat 2.2 (from
github) [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. Further, minisat was a run in two modes: the default mode, and
with additional preprocessing techniques enabled (asymmetric breaking and
redundancy checking). The encodings we consider are Transitive closure (tc1),
Unary labeling (unr), Binary labeling (bin), Warshall (fw), and an alternate
version of Transitive closure (tc2). The techniques based on matrix multiplication
are not included, because they quickly lead to formulas in the realm of hundred
of megabytes, and more (Figure 3).
        </p>
        <p>
          The experimental results were obtained on an Intel Xeon 5160 3GHz, with
4GB of memory, time limit 500 seconds, and memory limit 2GB.
Generation of Graph Families. The generation of the no-sink graph family is
trivial: we simply instantiate (no-sink) for different values of n. We also generate
random instances of the Supervisor problem. Each upper bound ui on the
indegree of vertex i is chosen uniformly at random from the set {0, . . . , n − 1}.
Each lower bound li is 0 with probability p, which is a parameter, and otherwise
is chosen uniformly at random from the set {1, . . . , n − 1}. If the generated
sequence (l1, u1), . . . , (un, ln) is not satisfied by any directed graph, we throw
it away and try again. This filtering is easy, because it is possible to check in
linear time whether a sequence is satisfiable by some directed graph, using the
Fulkerson–Chen–Anstee theorem [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]; but, as we mentioned, checking whether a
sequence is satisfiable by an acyclic directed graph is NP-complete [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ].
        </p>
        <p>
          For each n ∈ {2, 3, . . . , 50} and for each p ∈ {10%, 20%, . . . , 90%}, we
generate a sequence (l1, u1), . . . , (ln, un) using the method just described. For each
such sequence, we generate the formula (supervisor). The atmost and atleast
constraints were encoded into CNF using the well-known Sequential Counter
encoding [
          <xref ref-type="bibr" rid="ref43">43</xref>
          ].
        </p>
        <p>Presentation of the results. Figure 1 presents the number of instances solved.
Figure 1(a) shows the results for graphs with no sinks, which lead to the GT
family of formulas when coupled with the acyclicity checker (tc1). Figure 1(b) shows
the results for the general supervisor problem. Figure 2 shows a cactus for the
(no-sink) family for all the considered combinations of solvers and encodings.
U
P200
C
150
100
50
0
glucose-bin
glucose-fw
glucose-tc2
glucose-unr
glucose-tc1
lingeling-fw
lingeling-tc2
lingeling-tc1
lingeling-bin
minisat-prepro-fw
minisat-prepro-tc2</p>
        <p>lingeling-unr
minisat-prepro-tc1
minisat-prepro-bin
minisat-prepro-unr
minisat-bin
minisat-fw
minisat-tc2
minisat-unr
minisat-tc1
0
5
10
15
20</p>
        <p>25
instances
30
35
40
45
50</p>
        <p>Recall that if a cactus plot contains a point (i, s) it means there are i instances
such that each was solved within s seconds. (Therefore, the graph is necessarily
increasing.) A more detailed presentation of the results can be found on the
authors’ homepage.3</p>
        <p>The first thing to observe is that the supervisor family turns out to be easy
for all the approaches. Indeed, all approaches solved over 90% benchmarks. Even
though the differences are rather small, the tables suggests that the Transitive
closure encoding ((tc1)) is good for all solvers. In contrast, Binary labeling (bin)
appears to be the worst.</p>
        <p>In the case of (no-sink) graphs, the results are widely different for each
encoding but also for each solver. Most notably, lingeling performs extremely well
on (tc1). Both versions of minisat perform well on Unary labeling (unr). Glucose
also performs the best with (unr), but once the graph size gets over 30 nodes,
the performance quickly deteriorates. The worst encoding appears to be Binary
labeling (bin) and the alternative Transitive closure (tc2), with which all solvers
could only handle less than half of all instances. Warshall has a peculiar behavior,
as it performs poorly for all the solvers except lingeling.
3 http://sat.inesc-id.pt/~mikolas/sat-cycles/</p>
        <p>Discussion. The results are surprisingly uneven across different solvers. In a
particular, lingeling performs extremely well with (tc1), while the other solvers
do not perform very well with the same encoding. It is possible that lingeling
benefits from some simplification technique (pre- or in-processing) that is missing
from the other solvers, but this remains to be understood. Binary labeling (bin) is
overall the most compact but with the poorest performance. This is not entirely
surprising. First, binary labeling does not offer many opportunities for applying
unit propagation. And second, binary labeling makes it virtually impossible to
learn anything about any particular variable.</p>
        <p>In contrast, Unary labeling (unr) fares quite well over the considered solvers.
Further, we observed that minisat with preprocessing solves the (no-sink) family
with no conflicts, i.e., merely with preprocessing. This also holds for lingeling
but only up to a certain size of the graph. It is not difficult to see how these
formulas can be completely solved by preprocessing, in particular by failed literal
detection and asymmetric breaking.</p>
        <p>In unary labeling (§3.3), the ordering of labels is ensured by the following
constraint. For every vertex i labeled by a number l(i) ∈ {0, . . . , n − 1} there
must be a neighbor j labeled by a number l(j) ∈ {0, . . . , n − 1} such that
l(i) &lt; k ≤ l(j) for some k ∈ {0, . . . , n − 1}. To show that such a labeling does
not exist for no-sink graphs, we reason as follows. If k = n − 1, it immediately
follows that vertex j has no neighbor labeled with a greater number since it has
reached the maximum. Performing this reasoning for every vertex yields that the
labels must be in the interval {0, . . . , n − 1}. Repeating this reasoning n times
leads to a contradiction.</p>
        <p>We argue that to perform this reasoning, it is sufficient to use unit
propagation on unary labeling. In definition (3), setting uk := 1 imposes exactly the
condition as listed above, i.e., the label of the source node is at most k − 1 and
the target node at least k. It is easy to verify that setting un−1 := 1 yields a
conflict by unit propagation.</p>
        <p>
          This idea is realized in the preprocessing techniques failed literal
detection [
          <xref ref-type="bibr" rid="ref12 ref35">12, 35</xref>
          ] and asymmetric breaking [
          <xref ref-type="bibr" rid="ref38">38</xref>
          ]. More generally, if setting a literal l
to true yields a conflict by unit propagation it is called a failed literal and the
literal is set to false. In this manner, these two techniques acting in tandem
can gradually remove the ui literal corresponding to the highest number, and
eventually derive an empty clause.
        </p>
        <p>Conclusion. The experimental results support the following conclusions. The
combination of choice for checking acyclicity is lingeling with Transitive
closure (tc1). (Do not use the seemingly very similar alternative Transitive
closure (tc2), which leads to poor performance.) Minisat is the second solver of
choice but not with the (tc1) encoding—instead, use (unr). SAT solvers appear
to be good at finding an acyclic graph if it exists; proving that an acyclic graph
does not exist can easily become very difficult.</p>
        <p>Formula Size. Figure 3 presents the size of the acyclicity checkers (§3). The cubic
methods (tc1, tc2, unr, fw) are all within a factor of 3 of each-other. The
supertc1
tc2
bin
unr
fw
mm
ss</p>
        <p>10
graph vertex count
100
cubic one (mm, which is based on the definition of Boolean matrix multiplication)
is already worse than the cubic ones at n = 3, and it only gets worse for larger n.
There are two sub-cubic methods: ss with size O(n2.81 log3 n), and bin with size
O(n2 log n). The method based on Strassen (ss) generates large formulas even
for n = 10 and, looking at Figure 3, there is no overtaking in sight. Indeed, even
if the constants hidden in the O-notation were just as good for ss as they are
for tc1, the crossing point would be at n ∼ 1032. The log3 n factor is important,
and it seems that without new ideas this method will never be practical. On the
other hand, the method based on binary labeling (bin), generates the smallest
acyclicity checkers for n ≥ 100.
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Summary and Future Work</title>
      <p>The paper presents a number of encodings for the graph acyclicity constraint into
conjunctive normal form. This is useful when calculating acyclic graphs using
SAT solvers but also other logic-based solvers, such as quantified Boolean
formula (QBF) and Satisfiability modulo theories (SMT) solvers. The experimental
evaluation suggests that the performance is highly sensitive both to be encoding
but also to the SAT solver used. This suggests that for practical purposes it is
useful to maintain a portfolio of encodings and solvers.</p>
      <p>There are a number of directions for further research. All the encodings that
are asymptotically better than cubic perform poorly in practice. Hence, it is a
challenge for future research to identify encodings with asymptotic complexity
better than cubic but that also perform well.</p>
      <p>
        Ultimately, all the considered encodings are not feasible for large graphs.
Indeed, any cubic encoding generates formulas that are too large once the number
of nodes gets over 1000. A possible solution is to consider a lazy approach where
only some portion of the encoding is considered. However, this will probably
require an iterative sequence of calls to the SAT solver. Another approach, tried
recently [
        <xref ref-type="bibr" rid="ref13 ref9">9,13</xref>
        ], is to integrate specialized algorithms for acyclicity inside the SAT
solver. This is also closely related to loop formulas, which are used in Answer
Set Programming (ASP) to avoid cyclic reasoning cf. [
        <xref ref-type="bibr" rid="ref21 ref29 ref33">21, 29, 33</xref>
        ].
      </p>
      <p>
        Some questions about properties of the encodings with respect to unit
propagation remain open. In particular, is it the case that any partial assignment that
contains a cycle produces a conflict by unit propagation in a given encoding? In
theory this is possible due to monotonicity [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] (adding edges preserves cycles).
We believe this holds for the encodings Transitive closure, Warshall, and matrix
multiplication, but does not hold for Unary and Binary labeling. Hence, this also
begs the question whether the labeling methods can be made more
deterministic. Other properties related to unit propagation are also worth exploring, e.g.,
generalized arc consistency and propagation completeness, cf. [
        <xref ref-type="bibr" rid="ref11 ref22 ref24 ref4 ref7">4, 7, 11, 22, 24</xref>
        ].
      </p>
      <p>The experimental results lead to several interesting questions. Why is
lingeling so efficient on the transitive closure encoding (tc1)? Why does the
alternative encoding for transitive closure (tc2) perform so poorly across all solvers?
Do formulas (tc2) lack short resolution refutations?</p>
      <p>Last but not least, this research opens avenues for exploring other
graphrelated properties, e.g., connectivness and reachability in general.</p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgments</title>
      <p>This work was supported by national funds through Fundac¸˜ao para a Ciˆencia e a
Tecnologia (FCT) with reference UID/CEC/50021/2013, and by the PrideMM Web
Interface grant from VeTSS.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Alekhnovich</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Johannsen</surname>
            <given-names>J</given-names>
          </string-name>
          , et al.
          <article-title>An exponential separation between regular and general resolution</article-title>
          .
          <source>Theory of Computing</source>
          ,
          <volume>3</volume>
          (
          <issue>5</issue>
          ):
          <fpage>81</fpage>
          -
          <lpage>102</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Anstee</surname>
            <given-names>RP</given-names>
          </string-name>
          .
          <source>Triangular (0</source>
          , 1)
          <article-title>-matrices with prescribed row and column sums</article-title>
          .
          <source>Discrete Mathematics</source>
          ,
          <volume>40</volume>
          (
          <issue>1</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          ,
          <year>1982</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Audemard</surname>
            <given-names>G</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Simon</surname>
            <given-names>L</given-names>
          </string-name>
          .
          <article-title>Predicting learnt clauses quality in modern SAT solvers</article-title>
          .
          <source>In International Joint Conference on Artificial Intelligence (IJCAI)</source>
          .
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Babka</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balyo</surname>
            <given-names>T</given-names>
          </string-name>
          , et al.
          <article-title>Complexity issues related to propagation completeness</article-title>
          .
          <source>Artif Intell</source>
          ,
          <volume>203</volume>
          :
          <fpage>19</fpage>
          -
          <lpage>34</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Bailleux</surname>
            <given-names>O</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boufkhad</surname>
            <given-names>Y. Efficient</given-names>
          </string-name>
          <article-title>CNF encoding of boolean cardinality constraints</article-title>
          .
          <source>In Principles and Practice of Constraint Programming (CP)</source>
          . Springer,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Bailleux</surname>
            <given-names>O</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boufkhad</surname>
            <given-names>Y</given-names>
          </string-name>
          , et al.
          <article-title>A translation of pseudo-boolean constraints to SAT</article-title>
          .
          <source>Journal on Satisfiability, Boolean Modeling and Computation</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Bessiere</surname>
            <given-names>C</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Katsirelos</surname>
            <given-names>G</given-names>
          </string-name>
          , et al.
          <article-title>Circuit complexity and decompositions of global constraints</article-title>
          .
          <source>In International Joint Conference on Artificial Intelligence (IJCAI)</source>
          , pages
          <fpage>412</fpage>
          -
          <lpage>418</lpage>
          .
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Biere</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Lingeling</surname>
          </string-name>
          ,
          <article-title>Plingeling and Treengeling entering the SAT competition</article-title>
          .
          <source>Proceedings of SAT Competition</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Bomanson</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gebser</surname>
            <given-names>M</given-names>
          </string-name>
          , et al.
          <article-title>Answer set programming modulo acyclicity</article-title>
          .
          <source>Fundam Inform</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Bonet</surname>
            <given-names>ML</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Galesi</surname>
            <given-names>N.</given-names>
          </string-name>
          <article-title>Optimality of size-width tradeoffs for resolution</article-title>
          .
          <source>Computational Complexity</source>
          ,
          <volume>10</volume>
          (
          <issue>4</issue>
          ):
          <fpage>261</fpage>
          -
          <lpage>276</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Bordeaux</surname>
            <given-names>L</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marques-Silva</surname>
            <given-names>J</given-names>
          </string-name>
          .
          <article-title>Knowledge compilation with empowerment</article-title>
          .
          <source>In International Conference on Current Trends in Theory and Practice of Computer Science (SOFSEM)</source>
          , pages
          <fpage>612</fpage>
          -
          <lpage>624</lpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Crawford</surname>
            <given-names>JM</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Auton</surname>
            <given-names>LD</given-names>
          </string-name>
          .
          <article-title>Experimental results on the crossover point in satisfiability problems</article-title>
          .
          <source>In AAAI</source>
          , volume
          <volume>93</volume>
          , pages
          <fpage>21</fpage>
          -
          <lpage>27</lpage>
          .
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Cuteri</surname>
            <given-names>B</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dodaro</surname>
            <given-names>C</given-names>
          </string-name>
          , et al.
          <article-title>Constraints, lazy constraints, or propagators in ASP solving: An empirical analysis</article-title>
          .
          <source>In International Conference on Logic Programming (ICLP)</source>
          .
          <year>2017</year>
          . http://arxiv.org/abs/1707.04027.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>de Oliveira</surname>
            <given-names>RT</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            <given-names>F.</given-names>
          </string-name>
          <article-title>SAT and MaxSAT encodings for trees applied to the Steiner tree problem</article-title>
          .
          <source>In Brazilian Conference on Intelligent Systems (BRACIS)</source>
          , pages
          <fpage>192</fpage>
          -
          <lpage>197</lpage>
          . IEEE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Dubrova</surname>
            <given-names>E</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Teslenko</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>A SAT-based algorithm for finding attractors in synchronous boolean networks</article-title>
          .
          <source>IEEE/ACM transactions on computational biology and bioinformatics</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. E´
          <string-name>
            <surname>en N</surname>
            , S¨orensson
            <given-names>N.</given-names>
          </string-name>
          <article-title>An extensible SAT-solver</article-title>
          .
          <source>In International Conference on Theory and Applications of Satisfiability Testing (SAT)</source>
          , pages
          <fpage>502</fpage>
          -
          <lpage>518</lpage>
          .
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. E´
          <string-name>
            <surname>en</surname>
            <given-names>N</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sorensson</surname>
            <given-names>N.</given-names>
          </string-name>
          <article-title>Translating pseudo-boolean constraints into SAT</article-title>
          .
          <source>Journal on Satisfiability, Boolean Modeling and Computation</source>
          ,
          <volume>2</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>26</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Fisher</surname>
            <given-names>MJ</given-names>
          </string-name>
          , Meyer AR.
          <article-title>Boolean matrix multiplication and transitive closure</article-title>
          .
          <source>Switching and Automata</source>
          ,
          <year>1971</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Furman</surname>
            <given-names>ME</given-names>
          </string-name>
          .
          <article-title>Application of a method of fast multiplication of matrices in the problem of finding the transitive closure of a graph</article-title>
          .
          <source>Soviet Math Dokl</source>
          ,
          <year>1970</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Gall</surname>
            <given-names>FL</given-names>
          </string-name>
          .
          <article-title>Powers of tensors and fast matrix multiplication</article-title>
          .
          <source>In ISSAC</source>
          .
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Gebser</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Janhunen</surname>
            <given-names>T</given-names>
          </string-name>
          , et al.
          <source>SAT modulo graphs: Acyclicity. In Logics in Artificial Intelligence (JELIA)</source>
          .
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Gent</surname>
            <given-names>IP</given-names>
          </string-name>
          .
          <article-title>Arc consistency in SAT</article-title>
          .
          <source>In European Conference on Artificial Intelligence (ECAI)</source>
          , pages
          <fpage>121</fpage>
          -
          <lpage>125</lpage>
          . IOS Press,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Goldreich</surname>
            <given-names>O</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ostrovsky</surname>
            <given-names>R</given-names>
          </string-name>
          .
          <article-title>Software protection and simulation on oblivious RAMs</article-title>
          .
          <source>J ACM</source>
          ,
          <volume>43</volume>
          (
          <issue>3</issue>
          ):
          <fpage>431</fpage>
          -
          <lpage>473</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Gwynne</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kullmann</surname>
            <given-names>O</given-names>
          </string-name>
          .
          <article-title>On SAT representations of XOR constraints</article-title>
          .
          <source>In Language and Automata Theory and Applications Conference (LATA)</source>
          , pages
          <fpage>409</fpage>
          -
          <lpage>420</lpage>
          .
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Haken</surname>
            <given-names>A.</given-names>
          </string-name>
          <article-title>The intractability of resolution</article-title>
          .
          <source>Theoretical Computer Science</source>
          ,
          <volume>39</volume>
          :
          <fpage>297</fpage>
          -
          <lpage>308</lpage>
          ,
          <year>1985</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Hartung</surname>
            <given-names>S</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nichterlein</surname>
            <given-names>A</given-names>
          </string-name>
          .
          <article-title>NP-hardness and fixed-parameter tractability of realizing degree sequences with directed acyclic graphs</article-title>
          .
          <source>SIAM Journal on Discrete Mathematics</source>
          ,
          <volume>29</volume>
          (
          <issue>4</issue>
          ):
          <fpage>1931</fpage>
          -
          <lpage>1960</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Harvey</surname>
            <given-names>D</given-names>
          </string-name>
          ,
          <string-name>
            <surname>van der Hoeven</surname>
            <given-names>J</given-names>
          </string-name>
          , et al.
          <article-title>Even faster integer multiplication</article-title>
          .
          <source>Journal of Complexity</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Ignatiev</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morgado</surname>
            <given-names>A</given-names>
          </string-name>
          , et al.
          <article-title>Cardinality encodings for graph optimization problems</article-title>
          .
          <source>In International Joint Conference on Artificial Intelligence (IJCAI)</source>
          .
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Janhunen</surname>
            <given-names>T</given-names>
          </string-name>
          ,
          <article-title>Niemel¨a I. Compact translations of non-disjunctive answer set programs to propositional clauses</article-title>
          .
          <source>In Logic Programming</source>
          ,
          <source>Knowledge Representation, and Nonmonotonic Reasoning: Essays Dedicated to Michael Gelfond on the Occasion of His 65th Birthday</source>
          .
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Jiang</surname>
            <given-names>Y</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kautz</surname>
            <given-names>H</given-names>
          </string-name>
          , et al.
          <article-title>Solving problems with hard and soft constraints using a stochastic algorithm for MAX-SAT</article-title>
          .
          <source>In 1st International Joint Workshop on Artificial Intelligence and Operations Research</source>
          .
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Knuth</surname>
            <given-names>DE</given-names>
          </string-name>
          .
          <source>The Art of Computer Programming</source>
          , Volume
          <volume>4</volume>
          ,
          <string-name>
            <surname>Fascicle</surname>
            <given-names>6</given-names>
          </string-name>
          :
          <string-name>
            <surname>Satisfiability. Addison-Wesley</surname>
            <given-names>Professional</given-names>
          </string-name>
          ,
          <source>1st edition</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>Krishnamurthy</surname>
            <given-names>B</given-names>
          </string-name>
          .
          <article-title>Short proofs for tricky formulas</article-title>
          .
          <source>Acta Informatica</source>
          ,
          <volume>22</volume>
          (
          <issue>3</issue>
          ):
          <fpage>253</fpage>
          -
          <lpage>275</lpage>
          ,
          <year>1985</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>Lifschitz</surname>
            <given-names>V</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Razborov</surname>
            <given-names>A</given-names>
          </string-name>
          .
          <article-title>Why are there so many loop formulas? ACM Transactions on Computational Logic (TOCL</article-title>
          ),
          <volume>7</volume>
          (
          <issue>2</issue>
          ):
          <fpage>261</fpage>
          -
          <lpage>268</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>Lustig</surname>
            <given-names>D</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sethi</surname>
            <given-names>G</given-names>
          </string-name>
          , et al.
          <article-title>COATCheck: Verifying memory ordering at the hardwareOS interface</article-title>
          .
          <source>ACM SIGOPS Operating Systems Review</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <surname>Lynce</surname>
            <given-names>I</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marques-Silva</surname>
            <given-names>J</given-names>
          </string-name>
          .
          <article-title>Probing-based preprocessing techniques for propositional satisfiability</article-title>
          .
          <source>In ICTAI</source>
          , pages
          <fpage>105</fpage>
          -
          <lpage>110</lpage>
          .
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <surname>Marques-Silva</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lynce</surname>
            <given-names>I</given-names>
          </string-name>
          .
          <article-title>Towards robust CNF encodings of cardinality constraints</article-title>
          .
          <source>In Principles and Practice of Constraint Programming (CP)</source>
          , pages
          <fpage>483</fpage>
          -
          <lpage>497</lpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <string-name>
            <surname>Munro</surname>
            <given-names>I.</given-names>
          </string-name>
          <article-title>Efficient determination of the transitive closure of a directed graph</article-title>
          .
          <source>Inf Process Lett</source>
          ,
          <volume>1</volume>
          (
          <issue>2</issue>
          ):
          <fpage>56</fpage>
          -
          <lpage>58</lpage>
          ,
          <year>1971</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38.
          <string-name>
            <surname>Piette</surname>
            <given-names>C</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hamadi</surname>
            <given-names>Y</given-names>
          </string-name>
          , et al.
          <article-title>Vivifying propositional clausal formulae</article-title>
          .
          <source>In European Conference on Artificial Intelligence (ECAI)</source>
          , pages
          <fpage>525</fpage>
          -
          <lpage>529</lpage>
          .
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          39.
          <string-name>
            <surname>Pipatsrisawat</surname>
            <given-names>K</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Darwiche</surname>
            <given-names>A</given-names>
          </string-name>
          .
          <article-title>On the power of clause-learning SAT solvers as resolution engines</article-title>
          .
          <source>Artificial Intelligence</source>
          ,
          <volume>175</volume>
          (
          <issue>2</issue>
          ):
          <fpage>512</fpage>
          -
          <lpage>525</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          40.
          <string-name>
            <surname>Pippenger</surname>
            <given-names>N</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fischer MJ</surname>
          </string-name>
          .
          <article-title>Relations among complexity measures</article-title>
          .
          <source>J ACM</source>
          ,
          <volume>26</volume>
          (
          <issue>2</issue>
          ):
          <fpage>361</fpage>
          -
          <lpage>381</lpage>
          ,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          41.
          <string-name>
            <surname>Plaisted</surname>
            <given-names>DA</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Greenbaum</surname>
            <given-names>S.</given-names>
          </string-name>
          <article-title>A structure-preserving clause form translation</article-title>
          .
          <source>J Symb Comput</source>
          ,
          <volume>2</volume>
          (
          <issue>3</issue>
          ):
          <fpage>293</fpage>
          -
          <lpage>304</lpage>
          ,
          <year>1986</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          42.
          <string-name>
            <surname>Rintanen</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heljanko</surname>
            <given-names>K</given-names>
          </string-name>
          , et al.
          <article-title>Planning as satisfiability: parallel plans and algorithms for plan search</article-title>
          .
          <source>Artificial Intelligence</source>
          ,
          <volume>170</volume>
          (
          <issue>12</issue>
          ):
          <fpage>1031</fpage>
          -
          <lpage>1080</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          43.
          <string-name>
            <surname>Sinz</surname>
            <given-names>C</given-names>
          </string-name>
          .
          <article-title>Towards an optimal cnf encoding of boolean cardinality constraints</article-title>
          .
          <source>In Principles and Practice of Constraint Programming (CP)</source>
          , pages
          <fpage>827</fpage>
          -
          <lpage>831</lpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          44. St˚almarck G.
          <article-title>Short resolution proofs for a sequence of tricky formulas</article-title>
          .
          <source>Acta Informatica</source>
          ,
          <volume>33</volume>
          (
          <issue>3</issue>
          ):
          <fpage>277</fpage>
          -
          <lpage>280</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          45.
          <string-name>
            <surname>Strassen</surname>
            <given-names>V</given-names>
          </string-name>
          .
          <article-title>Gaussian elimination is not optimal</article-title>
          .
          <source>Numer Math</source>
          ,
          <year>1969</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          46.
          <string-name>
            <surname>Tamura</surname>
            <given-names>N</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taga</surname>
            <given-names>A</given-names>
          </string-name>
          , et al.
          <article-title>Compiling finite linear CSP into SAT</article-title>
          . Constraints,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          47.
          <string-name>
            <surname>Tavares de Oliveira</surname>
            <given-names>R</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            <given-names>F</given-names>
          </string-name>
          , et al.
          <article-title>On modeling connectedness in reductions from graph problems to extended satisfiability</article-title>
          .
          <source>In Advances in Artificial Intelligence (IBERAMIA)</source>
          , pages
          <fpage>381</fpage>
          -
          <lpage>391</lpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          48.
          <string-name>
            <surname>Tseitin</surname>
            <given-names>GS</given-names>
          </string-name>
          .
          <article-title>On the complexity of derivations in the propositional calculus</article-title>
          .
          <source>Studies in Constructive Mathematics and Mathematical Logic</source>
          ,
          <string-name>
            <surname>Part</surname>
            <given-names>II</given-names>
          </string-name>
          ,
          <year>1968</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref49">
        <mixed-citation>
          49.
          <string-name>
            <surname>van Beek</surname>
            <given-names>P</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoffmann</surname>
            <given-names>HF</given-names>
          </string-name>
          .
          <article-title>Machine learning of Bayesian networks using constraint programming</article-title>
          .
          <source>In International Conference on Principles and Practice of Constraint Programming (CP)</source>
          , pages
          <fpage>429</fpage>
          -
          <lpage>445</lpage>
          .
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref50">
        <mixed-citation>
          50.
          <string-name>
            <surname>Van Gelder</surname>
          </string-name>
          <article-title>A. Another look at graph coloring via propositional satisfiability</article-title>
          .
          <source>Discrete Appl Math</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref51">
        <mixed-citation>
          51.
          <string-name>
            <surname>Wickerson</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Batty</surname>
            <given-names>M</given-names>
          </string-name>
          , et al.
          <article-title>Automatically comparing memory consistency models</article-title>
          .
          <source>In Symposium on Principles of Programming Languages (POPL)</source>
          .
          <source>ACM</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>