<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">On the Quest for an Acyclic Graph</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Mikoláš</forename><surname>Janota</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">IST/INESC-ID</orgName>
								<address>
									<settlement>Lisbon</settlement>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Radu</forename><surname>Grigore</surname></persName>
							<affiliation key="aff1">
								<orgName type="department">School of Computing</orgName>
								<orgName type="institution">University of Kent</orgName>
								<address>
									<country key="GB">UK</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Vasco</forename><surname>Manquinho</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">IST/INESC-ID</orgName>
								<address>
									<settlement>Lisbon</settlement>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">On the Quest for an Acyclic Graph</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">DFEFDA99E46E265C7580FF7CA98C2D42</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T08:19+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><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 x jk expressing the existence of an edge from j to k. So, for instance, a constraint x 12 ∨ x 13 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 <ref type="bibr" target="#b41">[42]</ref>. Similarly, it is needed in networks used for computation, e.g. Bayesian networks <ref type="bibr" target="#b48">[49]</ref>. More recently, software verification of concurrent programs relies on relaxed memory models, which are defined in terms of acyclic relations <ref type="bibr" target="#b33">[34,</ref><ref type="bibr" target="#b50">51]</ref>.</p><p>There is a large body of work of translating constraints into CNF. Prime examples are cardinality constraints <ref type="bibr" target="#b4">[5,</ref><ref type="bibr" target="#b35">36,</ref><ref type="bibr" target="#b42">43]</ref> pseudo-Boolean constraints <ref type="bibr" target="#b5">[6,</ref><ref type="bibr" target="#b16">17]</ref>, XOR-constraints <ref type="bibr" target="#b23">[24]</ref> and general CSP <ref type="bibr" target="#b45">[46]</ref>. A number of graph-related problems approached by SAT can be found in the literature. For instance, encoding graph connectivness property <ref type="bibr" target="#b46">[47]</ref>, graph coloring <ref type="bibr" target="#b49">[50]</ref>, calculating Steiner tree <ref type="bibr" target="#b13">[14,</ref><ref type="bibr" target="#b29">30]</ref> or maximum clique <ref type="bibr" target="#b27">[28]</ref>. It is also worth mentioning that graphs and SAT play an important role in the research on Gene regulatory networks <ref type="bibr" target="#b14">[15]</ref>.</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 <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b9">10,</ref><ref type="bibr" target="#b31">32,</ref><ref type="bibr" target="#b43">44]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Preliminaries</head><p>Our basic setting is the following. We represent a directed graph on n ≥ 1 vertices by Boolean variables x ij , 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Propositional Logic and SAT Solving</head><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 <ref type="bibr" target="#b40">[41,</ref><ref type="bibr" target="#b47">48]</ref>.</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 C 1 , . . . , C k such that C k = C and each clause C i is either in φ or it is a resolvent of some C j , C k 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 <ref type="bibr" target="#b38">[39]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Graphs</head><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 G n that contain graphs with a fixed number n of vertices, and are defined by a formula φ n . More precisely, φ n has one variable x ij for each pair (i, j) ∈ V × V , and may also use some auxiliary variables � y. Then, a graph with edges E is in G n 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3">The No-Sink Family</head><p>The graphs with no sinks are described by the following formula:</p><formula xml:id="formula_0">φ n (� x ) := � i∈[n] � � j∈[n] x ij � (no-sink)</formula><p>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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.4">The Supervisor Problem</head><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 (u 1 , l 1 ), . . . , (u n , l n ). Output: "YES" if and only if there exists an acyclic graph with the vertices V = [n] such that vertex i has at most u i incoming edges and at least l i outgoing edges.</p><p>An instance n, � u, � l of the Supervisor problem reduces to the satisfiability of the following formula:</p><formula xml:id="formula_1">φ n,� u, � l (� x ) := � i∈[n] atleast(l i ; x i1 , . . . , x in ) ∧ � j∈[n] atmost(u j ; x 1j , . . . , x nj ) (supervisor)</formula><p>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 <ref type="bibr" target="#b4">[5,</ref><ref type="bibr" target="#b16">17,</ref><ref type="bibr" target="#b35">36,</ref><ref type="bibr" target="#b42">43]</ref>. 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 k 1 vertices and the bounds (1, 0) for k 2 vertices, with</p><formula xml:id="formula_2">k 1 + k 2 = n and k 1 &gt; k 2 .</formula><p>Finally, any instance of the DAG realizability problem is also an instance of the Supervisor problem, which satisfies the additional constraint � n i=1 u i = � n i=1 l i . Since the pigeonhole principle is a special case, it follows that (supervisor) sometimes requires large resolution refutations <ref type="bibr" target="#b24">[25]</ref>. 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 <ref type="bibr" target="#b25">[26]</ref>. Finally, we observe that (supervisor) is not monotone.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Encodings</head><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).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Transitive Closure</head><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</p><formula xml:id="formula_3">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 .</formula><p>We represent the relation R by variables y ij , and we define ψ n by clauses that directly correspond to the conditions (a), (b), and (c):</p><formula xml:id="formula_4">ψ n (� x, � y ) := � i∈[n] ¬y ii ∧ � i,j,k∈[n] (y ij ∧ y jk → y ik ) ∧ � i,j∈[n] (x ij → y ij )<label>(tc1)</label></formula><p>A possible alternative is the following:</p><formula xml:id="formula_5">ψ n (� x, � y ) := � i∈[n] ¬y ii ∧ � i,j,k∈[n] (y ij ∧ x jk → y ik ) ∧ � i,j∈[n] (x ij → y ij )<label>(tc2)</label></formula><p>In relational language, (tc1) corresponds to the conditions (a)</p><formula xml:id="formula_6">R ∩ id = ∅, (b) RR ⊆ R, and (c) E ⊆ R.</formula><p>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><formula xml:id="formula_7">RE := { (i, j) | (i, k) ∈ R and (k, j) ∈ E, for some k }</formula><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 y ij , as we can simply reuse the variables x ij :</p><formula xml:id="formula_8">ψ n (� x ) := � i∈[n] ¬x ii ∧ � i,j,k∈[n] (x ij ∧ x jk → x ik )<label>(tc3)</label></formula><p>The conjunction of (tc3) and (no-sink) has Ω(2 n ) regular tree resolution proofs but O(n 3 ) dag resolution proofs; see <ref type="bibr" target="#b9">[10,</ref><ref type="bibr" target="#b31">32,</ref><ref type="bibr" target="#b43">44]</ref>  Observe that the formulas in each of (tc1), (tc2), and (tc3) have size Θ(n 3 ).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Binary Labeling</head><p>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 := �log 2 n� bits for labels, so l : V → {0, 1} b . Accordingly, we use n groups � y 1 , . . . , � y n of auxiliary variables, each containing b Boolean variables. The acyclicity checker is then <ref type="bibr" target="#b41">[42]</ref>:</p><formula xml:id="formula_9">ψ n (� x, � y 1 , . . . , � y n ) := � i,j∈[n] � x ij → less(� y i , � y j ) � (bin)</formula><p>The implementation of less depends on how we represent numbers. Because we use binary numbers, we set less := lex b , and define the latter to test lexicographic ordering of the bits:</p><formula xml:id="formula_10">lex 0 () := 0 (1) lex b (� yy, � zz) := (¬y ∧ z) ∨ � (¬y ∨ z) ∧ lex b−1 (� y, � z ) �<label>(2)</label></formula><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 Θ(n 2 log n).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Unary Labeling</head><p>We can also use the labeling idea with unary numbers. To represent a number, instead of �log 2 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. The acyclicity checker is defined by</p><formula xml:id="formula_11">ψ n (� x, � y 1 , . . . , � y n ) := � i,j∈[n] � x ij → less(� y i , � y j ) � ∧ � i∈[n] unary(� y i ) (unr)</formula><p>where each � y i uses n − 1 bits. We could use less := lex n−1 , but we prefer less(� y, � z ) := ∃� u lessunr(� y, � z, � u ), where</p><formula xml:id="formula_12">lessunr(� y, � z, � u ) := n−1 � i=1 � (¬y i ∨ ¬u i ) ∧ (z i ∨ ¬u i ) � ∧ n−1 � i=1 u i<label>(3)</label></formula><p>The auxiliary � u variables will identify a position i where y i = 0 and z i = 1. This is sufficient because we enforce the pattern 0 * 1 * .</p><formula xml:id="formula_13">unary(� y ) := n−1 � i=2 (y i−1 → y i )<label>(4)</label></formula><p>Observe that the formula in (unr) has size Θ(n 3 ).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4">Warshall</head><p>The Warshall algorithm computes transitive closure, in cubic time.</p><p>Warshall</p><formula xml:id="formula_14">1 for k ∈ [n] 2 for i ∈ [n] 3 for j ∈ [n] 4 a ij := Or(a ij , And(a ik , a kj ))</formula><p>Initially, a ij says if the graph contains an edge ij; and, at the end a ij says if the graphs contains a path from i to j. In particular, at the end, a ii 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 n 2 (n + 1) auxiliary variables y ijk , for i, j ∈ [n] and k ∈ {0, . . . , n}. The variable y ijk will be 1 only if there exists a path from i to j that uses intermediate vertices only from the set <ref type="bibr">[k]</ref>.</p><formula xml:id="formula_15">ψ n (� x, � y) := � i∈[n] ¬y iin ∧ � i,j∈[n] (x ij → y ij0 ) ∧ � i,j,k∈[n] (y ij(k−1) → y ijk ) ∧ � i,j,k∈[n] (y ik(k−1) ∧ y kj(k−1) → y ijk ) (fw)</formula><p>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 y ijk = 1 even if there is no corresponding path. Another difference is that the last conjunct built by Warshall would be (</p><formula xml:id="formula_16">y ik(k−[k≥j]) ∧ y kj(k−[k≥i]) ) ↔ y ijk ,</formula><p>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 Θ(n 3 ), but uses more auxiliary variables.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.5">Matrix Multiplication</head><p>Let us take stock of the encodings we have so far. Four encodings have size Θ(n 3 ), namely (tc1), (tc2), (unr), and (fw); another encoding has size Θ(n 2 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 X l is the number of paths of length l from i to j, and entry (i, j) of Xl 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 Xl , and also that Bk equals � n l=1 Xl whenever k ≥ log 2 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 Θ(n 3 ) time, giving an acyclicity checker ψ n of size Θ(n 3 log n).</p><p>Alternatively, to multiply Boolean matrices Â and B, we multiply them as integer matrices obtaining C = AB; the product of Â and B is then Ĉ. (The idea of using intermediate integer matrices is old <ref type="bibr" target="#b17">[18,</ref><ref type="bibr" target="#b18">19,</ref><ref type="bibr" target="#b36">37]</ref>.) To perform the multiplication of integer matrices, we use Strassen's algorithm <ref type="bibr" target="#b44">[45]</ref>, which works in O(n 2.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(n 2.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(n 2.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(n 2.81 log 3 n).</p><p>In theory, one can use the same approach to achieve O � n ω log 2 n log log n • 8 log * log n � by using better algorithms for the multiplication of matrices <ref type="bibr" target="#b19">[20]</ref> and for the multiplication of integers <ref type="bibr" target="#b26">[27]</ref>. 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 <ref type="bibr" target="#b39">[40]</ref>. In contrast, a similar construction does not exist in the deterministic RAM model of computation <ref type="bibr" target="#b22">[23]</ref>.</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.  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Experimental Evaluation</head><p>Overall setup. Three popular state-of-the-art SAT solvers were used for the evaluation: Lingeling Version 276 <ref type="bibr" target="#b7">[8]</ref>, glucose 4.0 <ref type="bibr" target="#b2">[3]</ref>, and minisat 2.2 (from github) <ref type="bibr" target="#b15">[16]</ref>. 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 <ref type="figure" target="#fig_3">3</ref>).</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.</p><p>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 u i on the indegree of vertex i is chosen uniformly at random from the set {0, . . . , n − 1}. Each lower bound l i 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 (l 1 , u 1 ), . . . , (u n , l n ) 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 <ref type="bibr" target="#b1">[2]</ref>; but, as we mentioned, checking whether a sequence is satisfiable by an acyclic directed graph is NP-complete <ref type="bibr" target="#b25">[26]</ref>.</p><p>For each n ∈ {2, 3, . . . , 50} and for each p ∈ {10%, 20%, . . . , 90%}, we generate a sequence (l 1 , u 1 ), . . . , (l n , u n ) 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 <ref type="bibr" target="#b42">[43]</ref>.</p><p>Presentation of the results. Figure <ref type="figure" target="#fig_1">1</ref> presents the number of instances solved. Figure <ref type="figure" target="#fig_1">1</ref>(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 <ref type="figure" target="#fig_1">1(b)</ref> shows the results for the general supervisor problem. Figure <ref type="figure" target="#fig_2">2</ref> shows a cactus for the (no-sink) family for all the considered combinations of solvers and encodings. 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. <ref type="foot" target="#foot_0">3</ref>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.</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 u k := 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 u n−1 := 1 yields a conflict by unit propagation.</p><p>This idea is realized in the preprocessing techniques failed literal detection <ref type="bibr" target="#b11">[12,</ref><ref type="bibr" target="#b34">35]</ref> and asymmetric breaking <ref type="bibr" target="#b37">[38]</ref>. 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 u i literal corresponding to the highest number, and eventually derive an empty clause.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Conclusion.</head><p>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. Formula Size. Figure <ref type="figure" target="#fig_3">3</ref> 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 super- 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.</p><p>There are two sub-cubic methods: ss with size O(n 2.81 log 3 n), and bin with size O(n 2 log n). The method based on Strassen (ss) generates large formulas even for n = 10 and, looking at Figure <ref type="figure" target="#fig_3">3</ref>, 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 ∼ 10 32 . The log 3 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Summary and Future Work</head><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 <ref type="bibr" target="#b8">[9,</ref><ref type="bibr" target="#b12">13]</ref>, 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. <ref type="bibr" target="#b20">[21,</ref><ref type="bibr" target="#b28">29,</ref><ref type="bibr" target="#b32">33]</ref>. 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 <ref type="bibr" target="#b6">[7]</ref> (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. <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b6">7,</ref><ref type="bibr" target="#b10">11,</ref><ref type="bibr" target="#b21">22,</ref><ref type="bibr" target="#b23">24]</ref>.</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></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>to check that Âk = X2 k and Bk = � 2 k l=1</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Number of solved instances for sizes 2-50.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Cactus plot for the (no-sink) family.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 3 .</head><label>3</label><figDesc>Fig.3. The size of the acylicity checker formula ψn as a function of the number of vertices n. Five lines correspond to equations (tc1), (tc2), (bin), (unr), and (fw). The remaining two correspond to Boolean matrix multiplication methods, using the definition (mm), and using Strassen's algorithm (ss). The size of a CNF formula consisting of clauses C1, . . . , Cm is defined to be m + � m i=1 |Ci|.</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_0">http://sat.inesc-id.pt/ ~mikolas/sat-cycles/ M. Janota et al. On the Quest for an Acyclic Graph</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgments</head><p>This work was supported by national funds through Fundação para a Ciência e a Tecnologia (FCT) with reference UID/CEC/50021/2013, and by the PrideMM Web Interface grant from VeTSS.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">An exponential separation between regular and general resolution</title>
		<author>
			<persName><forename type="first">M</forename><surname>Alekhnovich</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Johannsen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Theory of Computing</title>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="81" to="102" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Triangular (0, 1)-matrices with prescribed row and column sums</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">P</forename><surname>Anstee</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Discrete Mathematics</title>
		<imprint>
			<biblScope unit="volume">40</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="1" to="10" />
			<date type="published" when="1982">1982</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Predicting learnt clauses quality in modern SAT solvers</title>
		<author>
			<persName><forename type="first">G</forename><surname>Audemard</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Simon</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Joint Conference on Artificial Intelligence (IJCAI)</title>
				<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Complexity issues related to propagation completeness</title>
		<author>
			<persName><forename type="first">M</forename><surname>Babka</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Balyo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Artif Intell</title>
		<imprint>
			<biblScope unit="volume">203</biblScope>
			<biblScope unit="page" from="19" to="34" />
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Efficient CNF encoding of boolean cardinality constraints</title>
		<author>
			<persName><forename type="first">O</forename><surname>Bailleux</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Boufkhad</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Principles and Practice of Constraint Programming</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">A translation of pseudo-boolean constraints to SAT</title>
		<author>
			<persName><forename type="first">O</forename><surname>Bailleux</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Boufkhad</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal on Satisfiability, Boolean Modeling and Computation</title>
		<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Circuit complexity and decompositions of global constraints</title>
		<author>
			<persName><forename type="first">C</forename><surname>Bessiere</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Katsirelos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Joint Conference on Artificial Intelligence (IJCAI)</title>
				<imprint>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="412" to="418" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Plingeling and Treengeling entering the SAT competition</title>
		<author>
			<persName><forename type="first">A</forename><surname>Biere</surname></persName>
		</author>
		<author>
			<persName><surname>Lingeling</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of SAT Competition</title>
				<meeting>SAT Competition</meeting>
		<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Answer set programming modulo acyclicity</title>
		<author>
			<persName><forename type="first">J</forename><surname>Bomanson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Gebser</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Fundam Inform</title>
		<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Optimality of size-width tradeoffs for resolution</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">L</forename><surname>Bonet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Galesi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computational Complexity</title>
		<imprint>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="261" to="276" />
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Knowledge compilation with empowerment</title>
		<author>
			<persName><forename type="first">L</forename><surname>Bordeaux</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Marques-Silva</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ternational Conference on Current Trends in Theory and Practice of Computer Science (SOFSEM)</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="612" to="624" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Experimental results on the crossover point in satisfiability problems</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Crawford</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">D</forename><surname>Auton</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">AAAI</title>
				<imprint>
			<date type="published" when="1993">1993</date>
			<biblScope unit="volume">93</biblScope>
			<biblScope unit="page" from="21" to="27" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Constraints, lazy constraints, or propagators in ASP solving: An empirical analysis</title>
		<author>
			<persName><forename type="first">B</forename><surname>Cuteri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Dodaro</surname></persName>
		</author>
		<ptr target="http://arxiv.org/abs/1707.04027" />
	</analytic>
	<monogr>
		<title level="m">International Conference on Logic Programming</title>
				<imprint>
			<publisher>ICLP</publisher>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">SAT and MaxSAT encodings for trees applied to the Steiner tree problem</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">T</forename><surname>De Oliveira</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Silva</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Brazilian Conference on Intelligent Systems (BRACIS)</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="192" to="197" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">A SAT-based algorithm for finding attractors in synchronous boolean networks</title>
		<author>
			<persName><forename type="first">E</forename><surname>Dubrova</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Teslenko</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE/ACM transactions on computational biology and bioinformatics</title>
		<imprint>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">An extensible SAT-solver</title>
		<author>
			<persName><forename type="first">N</forename><surname>Eén</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Sörensson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Conference on Theory and Applications of Satisfiability Testing (SAT)</title>
				<imprint>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="502" to="518" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Translating pseudo-boolean constraints into SAT</title>
		<author>
			<persName><forename type="first">N</forename><surname>Eén</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Sorensson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal on Satisfiability, Boolean Modeling and Computation</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="page" from="1" to="26" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Boolean matrix multiplication and transitive closure</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">J</forename><surname>Fisher</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">R</forename><surname>Meyer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Switching and Automata</title>
				<imprint>
			<date type="published" when="1971">1971</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Application of a method of fast multiplication of matrices in the problem of finding the transitive closure of a graph</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">E</forename><surname>Furman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Soviet Math Dokl</title>
		<imprint>
			<date type="published" when="1970">1970</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Powers of tensors and fast matrix multiplication</title>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">L</forename><surname>Gall</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ISSAC</title>
				<imprint>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">SAT modulo graphs: Acyclicity</title>
		<author>
			<persName><forename type="first">M</forename><surname>Gebser</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Janhunen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Logics in Artificial Intelligence (JELIA)</title>
				<imprint>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">Arc consistency in SAT</title>
		<author>
			<persName><forename type="first">I</forename><forename type="middle">P</forename><surname>Gent</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">European Conference on Artificial Intelligence (ECAI)</title>
				<imprint>
			<publisher>IOS Press</publisher>
			<date type="published" when="2002">2002</date>
			<biblScope unit="page" from="121" to="125" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Software protection and simulation on oblivious RAMs</title>
		<author>
			<persName><forename type="first">O</forename><surname>Goldreich</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Ostrovsky</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J ACM</title>
		<imprint>
			<biblScope unit="volume">43</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="431" to="473" />
			<date type="published" when="1996">1996</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">On SAT representations of XOR constraints</title>
		<author>
			<persName><forename type="first">M</forename><surname>Gwynne</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Kullmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Language and Automata Theory and Applications Conference (LATA)</title>
				<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="409" to="420" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">The intractability of resolution</title>
		<author>
			<persName><forename type="first">A</forename><surname>Haken</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Theoretical Computer Science</title>
		<imprint>
			<biblScope unit="volume">39</biblScope>
			<biblScope unit="page" from="297" to="308" />
			<date type="published" when="1985">1985</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">NP-hardness and fixed-parameter tractability of realizing degree sequences with directed acyclic graphs</title>
		<author>
			<persName><forename type="first">S</forename><surname>Hartung</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Nichterlein</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SIAM Journal on Discrete Mathematics</title>
		<imprint>
			<biblScope unit="volume">29</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="1931" to="1960" />
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<analytic>
		<title level="a" type="main">Even faster integer multiplication</title>
		<author>
			<persName><forename type="first">D</forename><surname>Harvey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Van Der Hoeven</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Complexity</title>
		<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b27">
	<analytic>
		<title level="a" type="main">Cardinality encodings for graph optimization problems</title>
		<author>
			<persName><forename type="first">A</forename><surname>Ignatiev</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Morgado</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Joint Conference on Artificial Intelligence (IJCAI)</title>
				<imprint>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b28">
	<analytic>
		<title level="a" type="main">Compact translations of non-disjunctive answer set programs to propositional clauses</title>
		<author>
			<persName><forename type="first">T</forename><surname>Janhunen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Niemelä</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Logic Programming, Knowledge Representation, and Nonmonotonic Reasoning: Essays Dedicated to Michael Gelfond on the Occasion of His 65th Birthday</title>
				<imprint>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b29">
	<analytic>
		<title level="a" type="main">Solving problems with hard and soft constraints using a stochastic algorithm for MAX-SAT</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Jiang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Kautz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">1st International Joint Workshop on Artificial Intelligence and Operations Research</title>
				<imprint>
			<date type="published" when="1995">1995</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b30">
	<analytic>
		<title level="a" type="main">The Art of Computer Programming</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">E</forename><surname>Knuth</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Fascicle 6: Satisfiability</title>
				<imprint>
			<publisher>Addison-Wesley Professional</publisher>
			<date type="published" when="2015">2015</date>
			<biblScope unit="volume">4</biblScope>
		</imprint>
	</monogr>
	<note>1st edition</note>
</biblStruct>

<biblStruct xml:id="b31">
	<analytic>
		<title level="a" type="main">Short proofs for tricky formulas</title>
		<author>
			<persName><forename type="first">B</forename><surname>Krishnamurthy</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Acta Informatica</title>
		<imprint>
			<biblScope unit="volume">22</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="253" to="275" />
			<date type="published" when="1985">1985</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b32">
	<analytic>
		<title level="a" type="main">Why are there so many loop formulas?</title>
		<author>
			<persName><forename type="first">V</forename><surname>Lifschitz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Razborov</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Transactions on Computational Logic (TOCL)</title>
		<imprint>
			<biblScope unit="volume">7</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="261" to="268" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b33">
	<analytic>
		<title level="a" type="main">COATCheck: Verifying memory ordering at the hardware-OS interface</title>
		<author>
			<persName><forename type="first">D</forename><surname>Lustig</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Sethi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM SIGOPS Operating Systems Review</title>
		<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b34">
	<analytic>
		<title level="a" type="main">Probing-based preprocessing techniques for propositional satisfiability</title>
		<author>
			<persName><forename type="first">I</forename><surname>Lynce</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Marques-Silva</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICTAI</title>
				<imprint>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="105" to="110" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b35">
	<analytic>
		<title level="a" type="main">Towards robust CNF encodings of cardinality constraints</title>
		<author>
			<persName><forename type="first">J</forename><surname>Marques-Silva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Lynce</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Principles and Practice of Constraint Programming (CP)</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="483" to="497" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b36">
	<analytic>
		<title level="a" type="main">Efficient determination of the transitive closure of a directed graph</title>
		<author>
			<persName><forename type="first">I</forename><surname>Munro</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Inf Process Lett</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="56" to="58" />
			<date type="published" when="1971">1971</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b37">
	<analytic>
		<title level="a" type="main">Vivifying propositional clausal formulae</title>
		<author>
			<persName><forename type="first">C</forename><surname>Piette</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Hamadi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">European Conference on Artificial Intelligence (ECAI)</title>
				<imprint>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="525" to="529" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b38">
	<analytic>
		<title level="a" type="main">On the power of clause-learning SAT solvers as resolution engines</title>
		<author>
			<persName><forename type="first">K</forename><surname>Pipatsrisawat</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Darwiche</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Artificial Intelligence</title>
		<imprint>
			<biblScope unit="volume">175</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="512" to="525" />
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b39">
	<analytic>
		<title level="a" type="main">Relations among complexity measures</title>
		<author>
			<persName><forename type="first">N</forename><surname>Pippenger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">J</forename><surname>Fischer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J ACM</title>
		<imprint>
			<biblScope unit="volume">26</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="361" to="381" />
			<date type="published" when="1979">1979</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b40">
	<analytic>
		<title level="a" type="main">A structure-preserving clause form translation</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">A</forename><surname>Plaisted</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Greenbaum</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J Symb Comput</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="293" to="304" />
			<date type="published" when="1986">1986</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b41">
	<analytic>
		<title level="a" type="main">Planning as satisfiability: parallel plans and algorithms for plan search</title>
		<author>
			<persName><forename type="first">J</forename><surname>Rintanen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Heljanko</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Artificial Intelligence</title>
		<imprint>
			<biblScope unit="volume">170</biblScope>
			<biblScope unit="issue">12</biblScope>
			<biblScope unit="page" from="1031" to="1080" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b42">
	<analytic>
		<title level="a" type="main">Towards an optimal cnf encoding of boolean cardinality constraints</title>
		<author>
			<persName><forename type="first">C</forename><surname>Sinz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Principles and Practice of Constraint Programming (CP)</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page" from="827" to="831" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b43">
	<analytic>
		<title level="a" type="main">Short resolution proofs for a sequence of tricky formulas</title>
		<author>
			<persName><forename type="first">G</forename><surname>Stålmarck</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Acta Informatica</title>
		<imprint>
			<biblScope unit="volume">33</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="277" to="280" />
			<date type="published" when="1996">1996</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b44">
	<analytic>
		<title level="a" type="main">Gaussian elimination is not optimal</title>
		<author>
			<persName><forename type="first">V</forename><surname>Strassen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Numer Math</title>
		<imprint>
			<date type="published" when="1969">1969</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b45">
	<monogr>
		<title level="m" type="main">Compiling finite linear CSP into SAT. Constraints</title>
		<author>
			<persName><forename type="first">N</forename><surname>Tamura</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Taga</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b46">
	<analytic>
		<title level="a" type="main">On modeling connectedness in reductions from graph problems to extended satisfiability</title>
		<author>
			<persName><forename type="first">R</forename><surname>Tavares De Oliveira</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Silva</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Advances in Artificial Intelligence (IBERAMIA)</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="381" to="391" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b47">
	<analytic>
		<title level="a" type="main">On the complexity of derivations in the propositional calculus</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">S</forename><surname>Tseitin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Studies in Constructive Mathematics and Mathematical Logic, Part</title>
		<imprint>
			<biblScope unit="volume">II</biblScope>
			<date type="published" when="1968">1968</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b48">
	<analytic>
		<title level="a" type="main">Machine learning of Bayesian networks using constraint programming</title>
		<author>
			<persName><forename type="first">P</forename><surname>Van Beek</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">F</forename><surname>Hoffmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Conference on Principles and Practice of Constraint Programming (CP)</title>
				<imprint>
			<date type="published" when="2015">2015</date>
			<biblScope unit="page" from="429" to="445" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b49">
	<analytic>
		<title level="a" type="main">Another look at graph coloring via propositional satisfiability</title>
		<author>
			<persName><forename type="first">A</forename><surname>Van Gelder</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Discrete Appl Math</title>
		<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b50">
	<analytic>
		<title level="a" type="main">Automatically comparing memory consistency models</title>
		<author>
			<persName><forename type="first">J</forename><surname>Wickerson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Batty</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Symposium on Principles of Programming Languages (POPL)</title>
				<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
