## Picosat essentials

Venue: | Journal on Satisfiability, Boolean Modeling and Computation (JSAT |

Citations: | 90 - 11 self |

### BibTeX

@ARTICLE{Biere_picosatessentials,

author = {Armin Biere},

title = {Picosat essentials},

journal = {Journal on Satisfiability, Boolean Modeling and Computation (JSAT},

year = {},

pages = {2008}

}

### OpenURL

### Abstract

In this article we describe and evaluate optimized compact data structures for watching literals. Experiments with our SAT solver PicoSAT show that this low-level optimization not only saves memory, but also turns out to speed up the SAT solver considerably. We also discuss how to store proof traces compactly in memory and further unique features of PicoSAT including an aggressive restart schedule. Keywords: SAT solver, watched literals, occurrence lists, proof traces, restarts

### Citations

1192 | Chaff: Engineering an efficient SAT solver
- Moskewicz, Madigan, et al.
- 2001
(Show Context)
Citation Context ...ics but also in low-level optimization techniques. In the first part of this paper we present a careful evaluation of one low-level optimization that was implemented in the original mChaff SAT solver =-=[28]-=- but was abandoned in more recent solvers, starting with zChaff and including even the latest versions of MiniSAT [11]. To the best of our knowledge, this optimization has not been described nor evalu... |

562 |
A machine program for theorem-proving
- Davis, Logemann, et al.
- 1962
(Show Context)
Citation Context ...oblems in benchmarking SAT solvers. SAT solvers maintain an occurrence list for each literal. An occurrence list contains references to clauses in which a literal occurs. Recent solvers based on DPLL =-=[9]-=- learn many derived clauses [25]. For efficiency it is crucial to put only watched clauses on to the occurrence lists [38, 28], also called watch lists in this case. Since only two literals of each cl... |

503 |
An extensible SAT-solver
- Eén, Sörensson
- 2003
(Show Context)
Citation Context ...one low-level optimization that was implemented in the original mChaff SAT solver [28] but was abandoned in more recent solvers, starting with zChaff and including even the latest versions of MiniSAT =-=[11]-=-. To the best of our knowledge, this optimization has not been described nor evaluated in the literature. 1. A careful experimental analysis conducted with our SAT solver PicoSAT [4] shows that this o... |

399 | GRASP: A Search Algorithm for Propositional Satisfiability
- Marques-Silva, Sakallah
- 1999
(Show Context)
Citation Context ...ers. SAT solvers maintain an occurrence list for each literal. An occurrence list contains references to clauses in which a literal occurs. Recent solvers based on DPLL [9] learn many derived clauses =-=[25]-=-. For efficiency it is crucial to put only watched clauses on to the occurrence lists [38, 28], also called watch lists in this case. Since only two literals of each clause have to be watched, the ave... |

327 | Boosting Combinatorial Search Through Randomization - Gomes, Selman, et al. - 1998 |

253 | BerkMin: a Fast and Robust SAT-Solver
- Goldberg, Novikov
(Show Context)
Citation Context ...rch space over and over again, the last learned clause before a restart is fixed and never deleted. Other learned clauses are garbage collected in the reduction phase based on their activity as usual =-=[17]-=-. The implementation follows MiniSAT. At the end of (in our case outer) restart interval the limit on the number of live learned clauses is increased by 5%. If this limit is hit, half of the learned c... |

221 | Interpolation and SAT-based model checking
- McMillan
- 2003
(Show Context)
Citation Context ... the variable core. In approximative image computation, or more general in over approximation of quantifier elimination, a resolution proof obtained from a proof trace allows to generate interpolants =-=[26]-=-. Proofs are important for certification through proof checking [40, 18, 13, 16] or just simply for testing of SAT solvers. In these two applications, a proof object does not actually have to be gener... |

207 | An efficient propositional prover
- ZHANG
(Show Context)
Citation Context ... references to clauses in which a literal occurs. Recent solvers based on DPLL [9] learn many derived clauses [25]. For efficiency it is crucial to put only watched clauses on to the occurrence lists =-=[38, 28]-=-, also called watch lists in this case. Since only two literals of each clause have to be watched, the average length of occurrence lists is reduced considerably compared to full occurrence lists, whi... |

144 | Effective preprocessing in SAT through variable and clause elimination
- Een, Biere
- 2005
(Show Context)
Citation Context ...[3], which in turn shares many of its key features with MiniSAT 1.14 [11]. The latter is the back end of SATeLiteGTI, the winner in the industrial category of the SAT Competition’05. It uses SATeLite =-=[10]-=- as preprocessor. As it has been shown in [10], most state-of-the-art solvers can benefit from such preprocessing and therefore we focus in this paper on low-level optimizations of the back end. The l... |

123 | Optimal speedup of Las Vegas algorithms
- Luby, Sinclair, et al.
- 1993
(Show Context)
Citation Context ...he previous section. 3.2 Restart Schedule Beside the list based representation of occurrence lists, as described above, PicoSAT uses an aggressive nested restart scheme, inspired by, but simpler than =-=[23]-=-, in combination with a more sophisticated strategy for picking the phase of decision variables. The restart strategies of RSAT [32] and TiniSAT [20] are similar. The nested restart scheme, with pseud... |

116 | Automatic Abstraction without Counterexamples
- McMillan, Amla
- 2003
(Show Context)
Citation Context ...isfiable problem instance. From a proof trace it is possible to extract a justification why the specification is erroneous. In the context of model checking proofs are used for abstraction refinement =-=[27]-=-. Given an abstract counter example, which can not be concretized, assume 84PicoSAT Essentials that the failed attempt to concretize the counter example has a refutation proof generated by a SAT solv... |

109 | Validating SAT solvers using an independent resolutionbased checker: Practical implementations and other applications
- Zhang, Malik
- 2003
(Show Context)
Citation Context ...hase saving increases the likelihood that the other watched literal is true while visiting a clause. 4. Proofs Another important feature of modern SAT solvers is their ability to produce proof traces =-=[40, 18, 13, 36, 22, 16]-=-. Earlier work on generating more verbose resolution proofs but without experiments can be found in [14]. These proof traces are used in many applications. For instance, in declarative modeling or pro... |

53 | Deciding bit-vector arithmetic with abstraction
- Bryant, Kroening, et al.
(Show Context)
Citation Context ... As example consider a learned clause with antecedents 100, 500, and 501. These clause ids are already sorted, the delta which we need to save are 100, 400, and 1. The first delta 9. See for instance =-=[8]-=-. 85A. Biere fits in 7 bits and is encoded as one byte with value 100. The second delta needs two bytes 244 = (500 % 128) | 128 and 3 = (500 / 128) similarly the third delta also just needs one byte.... |

49 | A.: A lightweight component caching scheme for satisfiability solvers - Pipatsrisawat, Darwiche - 2007 |

45 | Verification of Proofs of Unsatisfiability for CNF Formulas
- Goldberg, Novikov
- 2003
(Show Context)
Citation Context ...hase saving increases the likelihood that the other watched literal is true while visiting a clause. 4. Proofs Another important feature of modern SAT solvers is their ability to produce proof traces =-=[40, 18, 13, 36, 22, 16]-=-. Earlier work on generating more verbose resolution proofs but without experiments can be found in [14]. These proof traces are used in many applications. For instance, in declarative modeling or pro... |

41 | andWolfgang Küchlin, ‘Formal methods for the validation of automotive product configuration data
- Sinz, Kaiser
- 2003
(Show Context)
Citation Context ...enerating more verbose resolution proofs but without experiments can be found in [14]. These proof traces are used in many applications. For instance, in declarative modeling or product configuration =-=[34, 37]-=- an inconsistent specification corresponds to an unsatisfiable problem instance. From a proof trace it is possible to extract a justification why the specification is erroneous. In the context of mode... |

39 | The effect of restarts on the efficiency of clause learning
- Huang
- 2007
(Show Context)
Citation Context ...sted restart scheme, inspired by, but simpler than [23], in combination with a more sophisticated strategy for picking the phase of decision variables. The restart strategies of RSAT [32] and TiniSAT =-=[20]-=- are similar. The nested restart scheme, with pseudo-code in Fig. 6, triggers fast restarts with a high frequency. In Fig. 7 an initial prefix of its schedule is shown. The period of fast restarts is ... |

30 |
Ashish Sabharwal. Towards understanding and harnessing the potential of clause learning
- Beame, Kautz
(Show Context)
Citation Context ...an the number of propagations 77A. Biere Watcher of A −8 −2 start top end 1 −2 7 −8 A −2 3 −5 B Watcher of B 3 Figure 2. Stack based occurrence lists of watchers as in Limmat and FunEx. minimization =-=[1]-=-, as implemented in MiniSAT [11]. Clause minimization is able to remove 32% literals on average, which means that average clause length increases by almost 50% if clause minimization is disabled. The ... |

26 |
Backtrack search algorithms for propositional logic satisfiability: Review and innovations
- Nadel
(Show Context)
Citation Context ...ow to produce shorter learned clauses. Shorter learned clauses not only need less space, but also, if clause shrinking is implemented carefully, will reduce search. Originally, implemented in JeruSAT =-=[29]-=- and in the 2004 version of zChaff [12] clause shrinking was based on unassigning the literals of a learned clause and then reassigning them one after the other until another conflict occurs. The resu... |

24 | Debugging overconstrained declarative models using unsatisfiable cores
- Shlyakhter, Seater, et al.
- 2003
(Show Context)
Citation Context ...enerating more verbose resolution proofs but without experiments can be found in [14]. These proof traces are used in many applications. For instance, in declarative modeling or product configuration =-=[34, 37]-=- an inconsistent specification corresponds to an unsatisfiable problem instance. From a proof trace it is possible to extract a justification why the specification is erroneous. In the context of mode... |

23 | Rsat 2.0: SAT solver description
- Pipatsrisawat, Darwiche
- 2007
(Show Context)
Citation Context ...ite directly into MiniSAT. Therefore, it is probably more instructive to compare PicoSAT with MiniSAT 1.14. 3.1 Decision Heuristics The decision heuristic of PicoSAT follows ideas implemented in RSAT =-=[32]-=-. The decision variable is selected as in MiniSAT 1.14, which is a more dynamic and adaptive version of the original zChaff decision heuristics. While MiniSAT 1.14 always assigns the decision 81A. Bi... |

22 | A.: Extended Resolution Proofs for Conjoining BDDs
- Sinz, Biere
(Show Context)
Citation Context ...hase saving increases the likelihood that the other watched literal is true while visiting a clause. 4. Proofs Another important feature of modern SAT solvers is their ability to produce proof traces =-=[40, 18, 13, 36, 22, 16]-=-. Earlier work on generating more verbose resolution proofs but without experiments can be found in [14]. These proof traces are used in many applications. For instance, in declarative modeling or pro... |

19 | Cache performance of SAT solvers: a case study for efficient implementation of algorithms
- Zhang, Malik
- 2003
(Show Context)
Citation Context ...means that average clause length increases by almost 50% if clause minimization is disabled. The cache behavior of modern microprocessors has a non negligible impact on the performance of SAT solvers =-=[39]-=-. In an earlier version of PicoSAT, low-level profiling revealed, that most of the time is spent in one assembler instruction, which corresponds to reading the head of a clause for the first time whil... |

17 | Decomposing SAT problems into connected components - Biere, Sinz - 2006 |

16 | Multithreaded SAT solving
- Lewis, Schubert, et al.
- 2007
(Show Context)
Citation Context ... in our earlier SAT solvers Limmat and FunEx [6] were implemented. More recently a similar technique has been used to separate watch lists of different threads in the multi-threaded SAT solver MiraXT =-=[24]-=-. The drawback of separate watcher data structures is the additional pointer dereference needed to actually access the literals of the clause, even if the watcher is embedded in the clause. If the two... |

16 |
Efficient algorithms for clause learning sat solvers
- Ryan
- 2004
(Show Context)
Citation Context ...wing we will use the term “stack” to denote a container with exactly these characteristics. Our approach is similar to the idea of using specialized data structures for binary [30] or ternary clauses =-=[33]-=-. Carefully implementing this optimization does not influence heuristics. Identical search trees can be obtained, which makes experimental evaluation much easier and more robust. It avoids common stat... |

15 | Extended resolution proofs for symbolic SAT solving with quantification
- Jussila, Sinz, et al.
- 2006
(Show Context)
Citation Context |

14 | The evolution from Limmat to NanoSAT
- Biere
- 2004
(Show Context)
Citation Context ...k a watch has been removed earlier. The number of propagations during the run of a SAT solver can be smaller than the number of assignments, if, as most SAT solvers do, variables are assigned eagerly =-=[6]-=-. The number of clauses visited during this process, or just short the number of visits, is also a good indication of the amount of work performed by the SAT solver. The average number of visits per p... |

11 | Extracting (easily) checkable proofs from a satisfiability solver that employs both preorder and postorder resolution
- Gelder
(Show Context)
Citation Context ...tant feature of modern SAT solvers is their ability to produce proof traces [40, 18, 13, 36, 22, 16]. Earlier work on generating more verbose resolution proofs but without experiments can be found in =-=[14]-=-. These proof traces are used in many applications. For instance, in declarative modeling or product configuration [34, 37] an inconsistent specification corresponds to an unsatisfiable problem instan... |

8 | New features of the SAT04 versions of zChaff - Fu, Mahajan, et al. - 2004 |

7 | Generalizations of watched literals for backtracking search
- Gelder
- 2002
(Show Context)
Citation Context ... modern SAT solvers, seems to be too much of an overhead. 5. 2.3 Keeping Watched Literals as First and Second Literal The costs of separate watchers can be avoided by following the suggestion made in =-=[15]-=-, which is inspired by the implementation of the original mChaff [28], and implemented in CompSAT [6] and MiniSAT [11]. The idea is to move and keep the two watched literals at the beginning of the cl... |

6 |
Verifying propositional unsatisfiability: Pitfalls to avoid
- Gelder
- 2007
(Show Context)
Citation Context |

5 | G.: Speeding up SAT for EDA
- Pilarski, Hu
- 2002
(Show Context)
Citation Context ...at the end. In the following we will use the term “stack” to denote a container with exactly these characteristics. Our approach is similar to the idea of using specialized data structures for binary =-=[30]-=- or ternary clauses [33]. Carefully implementing this optimization does not influence heuristics. Identical search trees can be obtained, which makes experimental evaluation much easier and more robus... |

3 |
Solving propositional satisability problems
- Jeroslow, Wang
- 1990
(Show Context)
Citation Context ...ble to false, RSAT [32] assigns the decision variable to the same value it has been assigned before. Initially, as long a variable has not been assigned yet, PicoSAT uses the Jeruslow-Wang heuristics =-=[21]-=- for selecting the phase of the decision variable. 8. This seems to be slightly better than using the plain number of occurrences of a literal. We contribute the success of PicoSAT in the category of ... |

1 |
The AIGER and-inverter graph (AIG) format. http://fmv.jku.at/aiger
- Biere
(Show Context)
Citation Context ...n compressing them by just storing the deltas, followed by a simple byte stream encoding. In this encoding the most significant bit of a byte denotes the end of a delta, as in the binary AIGER format =-=[2]-=-. In practice we obtain compression ratios close to one byte per antecedent. As example consider a learned clause with antecedents 100, 500, and 501. These clause ids are already sorted, the delta whi... |

1 |
Independently checkable proofs from decision procedures: Issues and progress
- Gelder
(Show Context)
Citation Context |