<?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">Generic CDCL -A Formalization of Modern Propositional Satisfiability Solvers</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Steffen</forename><surname>Hölldobler</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">International Center for Computational Logic</orgName>
								<orgName type="institution">Technische Universität Dresden</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Norbert</forename><surname>Manthey</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">International Center for Computational Logic</orgName>
								<orgName type="institution">Technische Universität Dresden</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Tobias</forename><surname>Philipp</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">International Center for Computational Logic</orgName>
								<orgName type="institution">Technische Universität Dresden</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Peter</forename><surname>Steinke</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">International Center for Computational Logic</orgName>
								<orgName type="institution">Technische Universität Dresden</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">Generic CDCL -A Formalization of Modern Propositional Satisfiability Solvers</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">BA649298F94D9D757F39D58B017BBCD2</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T05:35+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>Modern propositional satisfiability (or SAT) solvers are very powerful due to recent developments on the underlying data structures, the used heuristics to guide the search, the deduction techniques to infer knowledge, and the formula simplification techniques that are used during pre-and inprocessing. However, when all these techniques are put together, the soundness of the combined algorithm is not guaranteed any more. In this paper we present a small set of rules that allows to model modern SAT solvers in terms of a state transition system. With these rules all techniques which are applied in modern SAT solvers can be adequately modeled. Finally, we compare Generic CDCL with related systems.</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>Many practical problems of computer science are in the complexity class NP. There are many well studied formalisms that can handle problems of this class, among them are constraint satisfaction <ref type="bibr" target="#b19">[20]</ref>, answer set programming <ref type="bibr" target="#b6">[7]</ref>, or satisfiability checking <ref type="bibr" target="#b2">[3]</ref>. Although the two former formalisms admit a richer language, the latter approach is still very competitive even if the expressivity of its language is comparatively low.</p><p>The propositional satisfiability problem (SAT) consists of a propositional formula and asks whether there is a satisfying assignment for the Boolean variables occurring in the formula. From a complexity theory point of view SAT is NPcomplete <ref type="bibr" target="#b3">[4]</ref> and, thus, intractable. Still, there are many industrial and academic applications that can be solved nicely with modern SAT solvers. For instance a SAT-based railway scheduling software outperformed the native version <ref type="bibr" target="#b8">[9]</ref>. Likewise, haplotype matching <ref type="bibr" target="#b12">[13]</ref> can be solved nicely with modern SAT solvers.</p><p>The success of the SAT approach lies in the strength of today's SAT solvers. SAT solvers do not operate on testing all possible variable assignments, but on constructing an assignment by successively interleaving two processes, viz., guessing and propagating the assignment of literals. The main inference rule is unit propagation, an efficient form of resolution. Combined with a decision rule it is the core of the basic algorithm known as the DPLL algorithm <ref type="bibr" target="#b4">[5]</ref>. In the case that a contradiction is found in the formula with respect to the current variable assignment, advanced SAT solvers backtrack and learn a conflict clause which prevents the current and similar conflicts. With the addition of so-called learned clauses the basic algorithm is known as CDCL algorithm <ref type="bibr" target="#b15">[16]</ref>.</p><p>Modern systematic SAT solvers are highly tuned and complex proof procedures employing many advanced techniques like clause learning <ref type="bibr" target="#b15">[16]</ref>, nonchronological backtracking, restarts <ref type="bibr" target="#b7">[8]</ref>, clause removal <ref type="bibr" target="#b1">[2,</ref><ref type="bibr" target="#b5">6]</ref>, decision heuristics <ref type="bibr" target="#b1">[2,</ref><ref type="bibr" target="#b16">17]</ref>, and formula simplification techniques <ref type="bibr" target="#b11">[12]</ref>. Specialized, cache-conscious data structures <ref type="bibr" target="#b9">[10]</ref> further improve the performance. This way, today's solvers like Riss, <ref type="foot" target="#foot_0">1</ref> MiniSAT or Lingeling can handle formulas with millions of variables and millions of clauses.</p><p>However, the success of modern solvers carries a price tag: increased code complexity. Successful SAT solvers like the above mentioned ones consist of multiple thousand lines of code and are written in programming languages with side effects like C or C++. Due to the code complexity, the behavior of SAT solvers is hard to understand and state-of-the-art SAT solver internals are hard to teach. Moreover, finding additional techniques and integrating them into a SAT solver is getting more complex, as we have to consider the interplay with all the remaining techniques. Consequently, abstracting from specific algorithms, data structures, and heuristics is extremely important in order to discover and prove properties of a modern SAT solver as well as to understand the principles of SAT solving.</p><p>This problem was tackled by different formalizations, notably Linearized DPLL <ref type="bibr" target="#b0">[1]</ref>, Rule-based SAT Solver Descriptions <ref type="bibr" target="#b14">[15]</ref>, and Abstract DPLL <ref type="bibr" target="#b17">[18]</ref>. However, these systems do not appropriately model modern SAT solvers anymore. In particular, preprocessing and applying preprocessing techniques interleaved with search, known as inprocessing, became a crucial part in SAT solving. Applying formula simplification techniques also during search is an attractive idea since it allows to use valuable formula simplifications while taking learned clauses into account. For example, the SAT solver Lingeling benefits considerably from this approach.</p><p>The contribution of this paper is the formalism Generic CDCL that models the computation of modern SAT solvers. Equipped with a small set of simple state transition rules, we can model all well-established techniques like preprocessing, inprocessing, restarts, clause sharing, as well as clause learning and forgetting. This formalism allows us to reason about the behavior of SAT solvers independently of the specific implementation. Additionally, the framework is a first step to explain how modern SAT solvers are working in a compact and easy way. Besides the presentation of Generic CDCL, the main result of this paper is the proof that Generic CDCL and, consequently, all its instances are sound.</p><p>The paper is structured as follows: In Section 2 we describe basic concepts of satisfiability testing. We present Generic CDCL in Section 3, where we also prove that Generic CDCL correctly solves the satisfiability problems. Afterwards, we compare Generic CDCL with related formalism in Section 4 and we conclude the paper in Section 5.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Preliminaries</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">The Satisfiability Problem</head><p>We assume a fixed infinite set V of Boolean variables. A literal is a variable v (positive literal ) or a negated variable v (negative literal ). The complement x of a positive (negative, resp.) literal x is the negative (positive, resp.) literal with the same variable as x. The complement of a set S of literals, denoted with S, is defined as S = {x | x ∈ S}. Finite sets of clauses are called formulas, where a clause is a finite set of literals. Sometimes, we write a clause {x 1 , . . . , x n } also as the disjunction (x 1 ∨ . . . ∨ x n ) and a formula {C 1 , . . . , C n } as the conjunction (C 1 ∧ . . . ∧ C n ). The empty clause is denoted by ⊥, the empty formula by . The formula obtained from F by replacing all occurrences of the variable v by the variable w is denoted by F [v → w]. The set of all variables occurring in a formula F (in positive or negative literals) is denoted by vars(F ); the set of all literals occurring in F by lits(F ). For instance, if x, y ∈ V, then F = {{x, y}, {y}} is a formula, its alternative representation using logical connectives is (x ∨ y) ∧ y, vars(F ) = {x, y}, and lits(F ) = {x, y}.</p><p>The semantics of formulas is based on the notion of an interpretation. An interpretation I is a set of literals which does not contain a complementary pair x, x of literals. An interpretation</p><formula xml:id="formula_0">I is total iff for each v ∈ V either v ∈ I or v ∈ I.</formula><p>The satisfaction relation |= is defined as follows: Let I be an interpretation, then</p><formula xml:id="formula_1">I |= , I |= ⊥, I |= (x 1 ∨ . . . ∨ x n ) iff I |= x i for some i ∈ {1, . . . , n}, and I |= (C 1 ∧ . . . ∧ C n ) iff I |= C i for all i ∈ {1, . . . , n}.</formula><p>Interpretation I is a model for the formula F iff I |= F . In the case that a formula F has a model, then F is satisfiable, otherwise it is unsatisfiable.</p><p>We relate formulas by three relations: the entailment, the equivalence and the equisatisfiability relation: Formula F entails formula F iff every total model of F is a model of F . Two formulas F and F are equivalent, in symbols F ≡ F , iff F entails F and F entails F . Two formulas F and F are equisatisfiable, in symbols F ≡ sat F , iff either both are satisfiable or both are unsatisfiable.</p><p>For instance, the interpretation I = {x, ¬z} is a model of the formula F 1 = (x ∨ y) ∧ (x ∨ z) and, therefore, F is satisfiable. The formula F 2 = x ∧ x has no model and, therefore, is unsatisfiable. The formula F 3 = x ∧ z is satisfiable and, therefore, the formulas F 1 and F 3 are equisatisfiable, but the formulas F 1 and F 2 are not equisatisfiable. In fact, F 3 |= F 1 since every total model I of the formula F 3 must contain x and z and, hence, the two clauses of F 1 are satisfied by I. Finally, we find for all clauses C and formulas</p><formula xml:id="formula_2">F that C ∨ ≡ ∨ C ≡ , C ∨ ⊥ ≡ ⊥ ∨ C ≡ C, F ∧ ≡ ∧ F ≡ F , and F ∧ ⊥ ≡ ⊥ ∧ F ≡ ⊥.</formula><p>Let </p><formula xml:id="formula_3">C i | 1 ≤ i ≤ n) such that C 1 = C, C n = D and C i is a resolvent of the clause C i−1 and</formula><p>some clause in the formula F for all i ∈ {2, . . . , n − 1}; one should observe that F entails D and that the addition of entailed clauses to a formula preserves equivalence.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Variable Assignments and the Reduct Operator</head><p>Let J be a finite sequence of literals. In J each literal may be marked as a decision literal by placing a dot on top like in ẋ; if a literal x is not marked, then it is a propagation literal. Let J be a sequence of literals of length n. We say that literal x ∈ J iff there is a k ∈ {1, . . . , n} such that x = x k . Let J 1 = (x 1 , . . . , x n ) and J 2 = (y 1 , . . . , y m ) be two sequences of literals; their concatenation J 1 J 2 is the sequence (x 1 , . . . , x n , y 1 , . . . , y m ). If a finite sequence J of literals does not contain a complementary pair of literals, then J represents an interpretation. As this condition is always met in this paper, we identify sequences of literals with interpretations whenever appropriate.</p><p>The reduct of a formula F w.r.t. an interpretation J, in symbols F | J , is defined as F | J := {C| J | C ∈ F and for every literal x ∈ C we find that x ∈ J}, where C| J = C \ {x | x ∈ J}. Intuitively, the reduct operator expresses the state of a SAT solver, where the formula F is the working formula and J is the working assignment. For instance, let F = {{x, y}, {z}}, then F | x = {{y}, {z}}, F | z = {{x, y}, ⊥} and F | y z = , where the interpretations are written as sequences of literals. One should observe that the reduct operator does not distinguish between propagation and decision literals.</p><p>Lemma 1 below summarizes the properties of the reduct operator: (i) The reduct is monotone. (ii) A formula F is satisfiable iff there exists an interpretation J such that the reduct of a formula w.r.t. J is the empty formula. (iii) If the reduct of a formula F w.r.t. the interpretation {x} is unsatisfiable, and the formula F entails the literal x, then the formula F is unsatisfiable. (iv) The reduct operator is a semantic operator in the sense that it cannot distinguish equivalent formulas.</p><p>Lemma 1 (Reduct Operator). Let F, F be formulas and x a literal.</p><p>(i) F | J ⊆ (F ∪ F )| J for every interpretation J.</p><p>(ii) F is satisfiable iff there exists a J such that</p><formula xml:id="formula_4">F | J = . (iii) If F | x is unsatisfiable and F |= x, then F is unsatisfiable. (iv) If F ≡ F , then F | J ≡ F | J for every interpretation J.</formula><p>Proof. See <ref type="bibr">[19, pp.10-12]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Generic CDCL</head><p>Modern SAT solvers are based on the linearized DPLL <ref type="bibr" target="#b4">[5]</ref> algorithm and consists of the following components: termination criteria, a decision component that picks the branching literals, an inference component that adds propagation literals to the working sequence of literals, a backtracking component that rolls back wrong decisions and a formula management component that simplifies the working formula. We maintain two data structures during the execution of modern SAT solvers: the working formula, and the working set of literals. Together they define the state. The components are modelled as a transition relation over the set of states; the union of the rules in Fig. <ref type="figure">1</ref> is then the transition relation SAT-rule:</p><formula xml:id="formula_5">F J SAT SAT iff F | J = .</formula><p>UNSAT-rule: F J UNSAT UNSAT iff ⊥ ∈ F | J and J contains only propagation literals.</p><p>DEC-rule:</p><formula xml:id="formula_6">F J DEC F J ẋ iff x ∈ vars(F ) ∪ vars(F ) and {x, x} ∩ J = ∅.</formula><p>INF-rule:</p><formula xml:id="formula_7">F J INF F J x iff F | J ≡sat F | J x and {x, x} ∩ J = ∅.</formula><p>LEARN-rule:</p><formula xml:id="formula_8">F J LEARN F ∪ {C} J iff F |= C.</formula><p>FORGET-rule:</p><formula xml:id="formula_9">F J FORGET F \ {C} J iff F \ {C} |= C.</formula><p>BACK-rule:</p><formula xml:id="formula_10">F J J BACK F J. INP-rule: F ε INP F ε iff F ≡sat F .</formula><p>Fig. <ref type="figure">1</ref>: Transition relations of Generic CDCL. These relations apply to all formulas F and F , clauses C, literals x and lists of literals J and J . ε denotes the empty sequence of literals.</p><p>of Generic CDCL: Formally, we model the computation of modern SAT solvers by means of state transition systems as follows:</p><p>Definition 2 (Generic CDCL). Generic CDCL is a state transition system whose sets of states is {F J | F is a formula and J is a sequence of literals} ∪ {SAT, UNSAT}, whose initial state for the input formula F is init(F ) = F ε, whose set of terminal states is {SAT, UNSAT}, and whose transition relation is defined as:</p><formula xml:id="formula_11">:= { SAT , UNSAT , DEC , INF , LEARN , FORGET , BACK , INP }.</formula><p>The SAT-rule terminates the computation with the output SAT, if the reduct of the working formula w.r.t. the working set of literals is the empty formula. This condition can be decided in linear time w.r.t. the size of the working formula F . By Lemma 1 (ii) the working formula is then satisfiable.</p><p>The UNSAT-rule terminates the computation with the output UNSAT, if no model of the working formula exists. This is the case when a conflict occurs in the top level, i.e. ⊥ ∈ F | J and the sequence J of literals contains only propagation literals. These conditions can be decided in polynomial time.</p><p>The DEC-rule extends the working sequence of literals by an unassigned literal ẋ as a decision literal.</p><p>The INF-rule extends the working list of literals by a propagation literal x, if the reducts of the working formula w.r.t. the working sequence of literals and its extension are equisatisfiable.</p><p>The BACK-rule models backtracking, as well as backjumping and restarts, by deleting outermost right literals in the working sequence of literals.</p><p>The LEARN-rule adds a clause C to the working formula, if it is entailed by the working formula F . Deciding whether F |= C holds, is coNP-complete.</p><p>Similarly to the INF-rule, SAT solvers avoid this check by using techniques for creating the clause C that ensure this property, as for example resolution.</p><p>The FORGET-rule deletes a clause C of the working formula</p><formula xml:id="formula_12">F , if F \ {C} |= C.</formula><p>The question whether F \ {C} |= C holds is coNP-complete. Typically, we use tractable algorithms to identify redundant clauses. For instance, clauses that were introduced by the LEARN-rule but have turned out to be useless and did not participate in the elimination of other clauses in the formula can be removed.</p><p>For more details on the deletion of clauses see <ref type="bibr" target="#b11">[12]</ref>.</p><p>The INP-rule models formula simplifications that are used in pre-and inprocessing. It replaces the working formula with an equisatisfiable formula when the working sequence of literals is empty.</p><p>Let * be the reflexive and transitive closure of . Let x 0 x for all states x, and x n z for all natural numbers n ∈ N if and only if there exists a state y such that x n−1 y z. In the next subsection we investigate the question whether Generic CDCL correctly solves the SAT problem. Formally, we define Generic CDCL to be sound iff for all formulas F 0 we have that init(F 0 )</p><p>* SAT implies that F 0 is satisfiable and init(F 0 ) * UNSAT implies that F 0 is unsatisfiable.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Generic CDCL is Sound</head><p>Before proceeding to the soundness proof of Generic CDCL, it will be necessary to study two invariants of Generic CDCL that are presented in the proposition below: (i) states that the rules of Generic CDCL do not change the satisfiability of the working formula, and (ii) states that whenever the working sequence of literals is of the form J 1 x J 2 , where x is a propagation literal, the reducts of the working formula w.r.t. J 1 and J 1 x are equisatisfiable.</p><p>Proposition 3 (Invariants). Let F 0 , F be formulas, J be a sequence of literals, and</p><formula xml:id="formula_13">n ∈ N. If init(F 0 ) n F J, then 1. F 0 ≡ sat F , and 2. F | J1 ≡ sat F | J1 x</formula><p>, for all sequences of literals J 1 , J 2 and propagation literals x with J = J 1 x J 2 .</p><p>Proof. The claims are proven by induction on n. For the base case n = 0, 1. follows from F 0 = F and 2. holds since the J is empty. For the induction step, assume that the claim holds for the state F J and suppose that F J R F J where R ∈ {DEC, INF, LEARN, FORGET, BACK, INP}: ẋ with {x, x} ∩ J = ∅. 1. follows since F 0 ≡ sat F holds by induction. 2. holds because the appended literal is a decision literal. Formally, let J 1 , J 2 be literal sequences, y be a propagation literal such that J = J 1 y J 2 ẋ. By induction, we conclude that</p><formula xml:id="formula_14">F | J 1 ≡ sat F | J 1 y . Hence, F | J 1 ≡ sat F | J1 y .</formula><p>-BACK-rule: In this case, F = F and J = J J . 1. follows since F 0 ≡ sat F by induction. 2. holds because the literal sequence J is a prefix of J. Formally, let J 1 , J 2 be literal sequences and y be a propagation literal such that J = J 1 y J 2 . By induction, we conclude that</p><formula xml:id="formula_15">F | J 1 ≡ sat F | J 1 y</formula><p>, and consequently we know that</p><formula xml:id="formula_16">F | J 1 ≡ sat F | J 1 y .</formula><p>-LEARN-rule: In this case, F = F ∪ {C} where F |= C and J = J. 1. follows since F ≡ F and the addition of the entailed clause C preserves equivalence of the working formula. 2. follows from the reduct operator being a semantic operator by Lemma 1.iv and therefore F | J 1 ≡ sat F | J 1 y holds by induction for every literal sequences J 1 , J 2 and propagation literals y with J = J 1 y J 2 .</p><p>-FORGET-rule: This case can be treated as in the LEARN-rule.</p><p>-INF-rule: In this case, F = F and J = J x for some propagation literal x with {x, x} ∩ J = ∅. 1. follows since F 0 ≡ sat F holds by induction. 2. follows from the definition of the INF-rule: Consider the literal sequences J 1 , J 2 and a propagation literal y such that J = J 1 y J 2 . In the case that y = x, we know that J 2 is the empty sequence of literals and consequently F | J 1 ≡ sat F | J 1 y holds by the definition of the INF-rule. In the case of y = x, we can conclude the claim by induction.</p><p>-INP-rule: In this case, F ≡ sat F and J is the empty sequence. Consequently, 1. holds by the definition of the INP-rule, and 2. is satisfied as J = ε.</p><p>We can now show the main theorem in this paper.</p><p>Theorem 4 (Soundness). Generic CDCL is sound.</p><p>Proof. We divide the proof in two parts, first proving that the output SAT is correct, and then proving that the output UNSAT is correct. Let F 0 , F be formulas, J be a sequence of literals and suppose that init(F 0 ) * F J SAT(UNSAT, resp.).</p><p>SAT By the definition of the SAT-rule, we know that F | J = . By Lemma 1.ii, we know that the formula F is satisfiable. From the result that the formula F is satisfiable together with the property that the formulas F 0 and F are equisatisfiable given in Prop. 3(1.), we conclude that the input formula F 0 is satisfiable.</p><p>UNSAT By the definition of the UNSAT-rule, we know that ⊥ ∈ F | J and the working sequence of literals J = (x 1 . . . x n ) contains only propagation literals. Since a conflict occurs, F | J is unsatisfiable. From the result that the formula F | J is unsatisfiable and the literal sequence J contains only propagation literals we can repeatably apply Prop. 3(2.) and we obtain that the formula F is unsatisfiable. Since the formula F is unsatisfiable and the formulas F and F 0 are equisatisfiable by Prop. 3(1.), we conclude that F 0 is unsatisfiable.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Generic CDCL Subsumes Important SAT Solving Techniques</head><p>We now describe some important SAT solving techniques, and demonstrate that Generic CDCL can adequately model these techniques.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Subsumption</head><p>For a formula F , the clause C ∈ F subsumes the clause D ∈ F iff C ⊂ D. In this case, D can be deleted because F \ {D} |= D. Consequently, F J FORGET F \{D} J holds for every literal sequence J. Removing subsumed clauses is done as a preprocessing step in SAT solvers and during clause learning.</p><p>Tautologies A clause C is a tautology if it contains a complementary pair of literals. Every formula F entails a tautology and the LEARN-rule in Generic CDCL subsumes this techniques. Tautologies are eliminated during preprocessing.</p><p>Conflict-Directed Backtracking and Learning <ref type="bibr" target="#b20">[21]</ref> is an improvement of naive backtracking that takes the reason of the conflict into account. Consider the state F J ẋ J and a clause C ∈ F where C| J ẋ J = ⊥. The clause C is the conflict clause. If there is a linear resolution derivation from the conflict clause C to a clause D in the formula F such that D| J is the unit clause y, the technique rewrites the state F J ẋ J into the state F ∪ {C} J y. Conflict-directed backtracking and learning can be simulated by the following transition steps:</p><formula xml:id="formula_17">F J ẋ J BACK F J LEARN F ∪ {D} J INF F ∪ {D} J y.</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Blocked Clause Elimination [11]</head><p>A clause C is blocked in the formula F if it contains a literal x such that all resolvents of the clause C and clauses D ∈ F upon x are tautological. Blocked clauses are removed from a formula during preand inprocessing. If C is blocked in F , then F ≡ sat F \ {C} and, therefore, the INP-rule subsumes the blocked clause elimination technique.</p><p>Unit Propagation A clause that contains a single literal is a unit clause. Unit propagation adds the propagation literal x to the literal sequence J, whenever the reduct of the working formula w.r.t. J contains the unit clause (x). Since F | J |= x, we know that F | J ≡ sat F | J x and consequently the INF-rule subsumes unit resolution.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Pure Literal</head><p>A literal x is pure in the formula F , if x ∈ lits(F ). For pure literals, it holds that F ≡ sat F | x and, therefore, whenever a literal x is pure in the formula F | J for some literal sequence J, Generic CDCL can add the pure literal to the working literal sequence: F J INF F J x.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Related Work</head><p>Several attempts have been made to formalize sequential SAT solvers in terms of transition systems or proofs calculi: Abstract DPLL <ref type="bibr" target="#b17">[18]</ref>, Linearized DPLL <ref type="bibr" target="#b0">[1]</ref>, and Rule-based SAT solver description <ref type="bibr" target="#b14">[15]</ref>. In general, these formalization are based on a notion of state like Generic CDCL.</p><p>However, these formalizations cannot adequately model recent SAT solvers: For instance, Linearized DPLL does not model the SAT solver MiniSAT, because Linearized DPLL restricts decision literals to occur in the working formula, but the solver MiniSAT can also select the complements of such literals. Additionally, Linearized DPLL does not model formula simplification techniques such as blocked clause elimination, or probing-based inference techniques. Similarly, Abstract DPLL and the Rule-based SAT solver description <ref type="bibr" target="#b14">[15]</ref> do not model formula simplifications that changes the semantics of formulas like blocked clause elimination. Maric highlighted the implementation of clause learning techniques in his Rule-based SAT solver description <ref type="bibr" target="#b14">[15]</ref>, but it does not include recent developments such as clause strengthening. All these formalizations consider DPLLbased SAT solvers, but the ancient pure literal rule is not subsumed in these systems. In contrast, Generic CDCL subsumes all recent SAT techniques to the best of our knowledge.</p><p>In <ref type="bibr" target="#b11">[12]</ref> Jarvisalo et. al. developed a formal system to model clause learning, forgetting and formula simplification techniques to understand the side-effects of the combination of different rules. They drew our attention to the interplay of the learned clause database with inprocessing techniques. The interplay of clause sharing and formula simplification techniques in parallel SAT solvers was analyzed in <ref type="bibr" target="#b13">[14]</ref>, where the state of a sequential SAT solver was modelled just as the working formula. We believe that Generic CDCL is an important fragment to understand sequential SAT solvers with inprocessing and their cooperation in the parallel-portfolio setting with clause sharing.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusion</head><p>The propositional satisfiability problem is of great practical interest and can be efficiently answered by modern SAT solvers like Riss, Lingeling or MiniSAT. Today, modern SAT solvers are highly tuned proof procedures with many advaned techniques. Therefore, it is desireable to investigate SAT solving techniques in combination with each other and to abstract from implementations.</p><p>In this paper, we developed Generic CDCL, a formalism that models the computation of modern SAT solvers in terms of a state transition system, where each transition rule abstracts a component in a SAT solver. In particular, the transition rules INF and INP model formula simplification techniques like blocked clause elimination and inference techniques such as the pure literal rule. We have examined invariants in Generic CDCL and have shown that Generic CDCL is sound. In contrast to previous work on formalizations of SAT solvers, we can model all recent techniques. The findings add to our understanding of the interplay of inprocessing techniques with the other components of SAT solvers.</p><p>A limitation of Generic CDCL is its lack of details in the learning and inference component. As future work, we plan to investigate properties such as completeness, confluence and termination.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>x be a literal, C = (x ∨ C ) and D = (x ∨ D ) be two clauses. Then the clause (C ∨ D ) is the resolvent of the clauses C and D upon the literal x. A linear resolution derivation from the clause C to the clause D in the formula F is a finite sequence of clauses (</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">The SAT solver Riss is freely available at tools.computational-logic.org.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_1">Steffen Hölldobler et al.</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">A linearized DPLL calculus with clause learning</title>
		<author>
			<persName><forename type="first">H</forename><surname>Arnold</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
		<respStmt>
			<orgName>Universität Potsdam. Institut für Informatik</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Tech. rep.</note>
</biblStruct>

<biblStruct xml:id="b1">
	<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">IJCAI 2009</title>
				<editor>
			<persName><forename type="first">C</forename><surname>Boutilier</surname></persName>
		</editor>
		<meeting><address><addrLine>Pasadena</addrLine></address></meeting>
		<imprint>
			<publisher>Morgan Kaufmann Publishers Inc</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="399" to="404" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">Handbook of Satisfiability</title>
		<editor>Biere, A., Heule, M., van Maaren, H., Walsh, T.</editor>
		<imprint>
			<date type="published" when="2009">2009</date>
			<publisher>IOS Press</publisher>
			<pubPlace>Amsterdam</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">The complexity of theorem-proving procedures</title>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">A</forename><surname>Cook</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">STOC</title>
		<editor>Harrison, M.A., Banerji, R.B., Ullman, J.D.</editor>
		<imprint>
			<biblScope unit="page" from="151" to="158" />
			<date type="published" when="1971">1991. 1971</date>
			<publisher>ACM</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">A machine program for theorem-proving</title>
		<author>
			<persName><forename type="first">M</forename><surname>Davis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Logemann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Loveland</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Commun. ACM</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="issue">7</biblScope>
			<biblScope unit="page" from="394" to="397" />
			<date type="published" when="1962">1962</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<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">SAT 2003. LNCS</title>
				<editor>
			<persName><forename type="first">E</forename><surname>Giunchiglia</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Tacchella</surname></persName>
		</editor>
		<meeting><address><addrLine>Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="volume">2919</biblScope>
			<biblScope unit="page" from="502" to="518" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">The stable model semantics for logic programming</title>
		<author>
			<persName><forename type="first">M</forename><surname>Gelfond</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Lifschitz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICLP</title>
				<editor>
			<persName><forename type="first">R</forename><forename type="middle">A</forename><surname>Kowalski</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">K</forename><forename type="middle">A</forename><surname>Bowen</surname></persName>
		</editor>
		<imprint>
			<publisher>MIT Press</publisher>
			<date type="published" when="1988">1988. 1988</date>
			<biblScope unit="page" from="1070" to="1080" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Heavy-tailed phenomena in satisfiability and constraint satisfaction problems</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">P</forename><surname>Gomes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Selman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Crato</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Kautz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. Autom. Reason</title>
		<imprint>
			<biblScope unit="volume">24</biblScope>
			<biblScope unit="issue">1-2</biblScope>
			<biblScope unit="page" from="67" to="100" />
			<date type="published" when="2000">2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Solving periodic event scheduling problems with SAT</title>
		<author>
			<persName><forename type="first">P</forename><surname>Großmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Hölldobler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Manthey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Nachtigall</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Opitz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Steinke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEA / AIE 2012. LNCS</title>
				<editor>
			<persName><forename type="first">H</forename><surname>Jiang</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">W</forename><surname>Ding</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Ali</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">X</forename><surname>Wu</surname></persName>
		</editor>
		<meeting><address><addrLine>Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="volume">7345</biblScope>
			<biblScope unit="page" from="166" to="175" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Improving resource-unaware SAT solvers</title>
		<author>
			<persName><forename type="first">S</forename><surname>Hölldobler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Manthey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Saptawijaya</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">LPAR 2010. LNCS</title>
				<editor>
			<persName><forename type="first">C</forename><forename type="middle">G</forename><surname>Fermüller</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Voronkov</surname></persName>
		</editor>
		<meeting><address><addrLine>Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="volume">6397</biblScope>
			<biblScope unit="page" from="519" to="534" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Blocked clause elimination</title>
		<author>
			<persName><forename type="first">M</forename><surname>Järvisalo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Biere</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Heule</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">TACAS 2010. LNCS</title>
				<editor>
			<persName><forename type="first">J</forename><surname>Esparza</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">R</forename><surname>Majumdar</surname></persName>
		</editor>
		<meeting><address><addrLine>Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="volume">6015</biblScope>
			<biblScope unit="page" from="129" to="144" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Inprocessing rules</title>
		<author>
			<persName><forename type="first">M</forename><surname>Järvisalo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">J H</forename><surname>Heule</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Biere</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IJCAR 2012. LNCS</title>
				<editor>
			<persName><forename type="first">B</forename><surname>Gramlich</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Miller</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">U</forename><surname>Sattler</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer, Heidelberg</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="volume">7364</biblScope>
			<biblScope unit="page" from="355" to="370" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Efficient haplotype inference with Boolean 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">AAAI 2006</title>
				<imprint>
			<publisher>AAAI Press</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="104" to="109" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Soundness of inprocessing in clause sharing SAT solvers</title>
		<author>
			<persName><forename type="first">N</forename><surname>Manthey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Philipp</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Wernhard</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">SAT 2013</title>
				<editor>
			<persName><forename type="first">M</forename><surname>Järvisalo</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Van Gelder</surname></persName>
		</editor>
		<meeting><address><addrLine>Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2013">2013</date>
			<biblScope unit="volume">7962</biblScope>
			<biblScope unit="page" from="22" to="39" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Formalization and implementation of modern SAT solvers</title>
		<author>
			<persName><forename type="first">F</forename><surname>Marić</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. Autom. Reason</title>
		<imprint>
			<biblScope unit="volume">43</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="81" to="119" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">GRASP: A search algorithm for propositional satisfiability</title>
		<author>
			<persName><forename type="first">Marques</forename><surname>Silva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">P</forename><surname>Sakallah</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">A</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Computers</title>
		<imprint>
			<biblScope unit="volume">48</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="506" to="521" />
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Chaff: Engineering an efficient SAT solver</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">W</forename><surname>Moskewicz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">F</forename><surname>Madigan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Zhao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Zhang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Malik</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">DAC 2001</title>
				<meeting><address><addrLine>New York</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2001">2001</date>
			<biblScope unit="page" from="530" to="535" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Abstract DPLL and abstract DPLL modulo theories</title>
		<author>
			<persName><forename type="first">R</forename><surname>Nieuwenhuis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Oliveras</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Tinelli</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">LPAR 2004. LNCS</title>
				<editor>
			<persName><forename type="first">F</forename><surname>Baader</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Voronkov</surname></persName>
		</editor>
		<meeting><address><addrLine>Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="volume">3452</biblScope>
			<biblScope unit="page" from="36" to="50" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title level="m" type="main">Expressive Models for Parallel Satisfiability Solvers</title>
		<author>
			<persName><forename type="first">T</forename><surname>Philipp</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
		<respStmt>
			<orgName>Technische Universität Dresden</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Master thesis</note>
</biblStruct>

<biblStruct xml:id="b19">
	<monogr>
		<title level="m" type="main">Handbook of Constraint Programming</title>
		<author>
			<persName><forename type="first">F</forename><surname>Rossi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">V</forename><surname>Beek</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Walsh</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2006">2006</date>
			<publisher>Elsevier Science Inc</publisher>
			<pubPlace>New York</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">GRASP -a new search algorithm for satisfiability</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">P M</forename><surname>Silva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">A</forename><surname>Sakallah</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICCAD</title>
				<meeting><address><addrLine>Washington</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="1996">1996. 1996</date>
			<biblScope unit="page" from="220" to="227" />
		</imprint>
	</monogr>
</biblStruct>

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