Incremental Preprocessing Methods for use in BMC S. Kupferschmid, M. Lewis, T. Schubert, and B. Becker Albert-Ludwigs-Universit¨ at, Freiburg, Germany {skupfers,lewis,schubert,becker}@informatik.uni-freiburg.de Abstract. Traditional incremental SAT solvers have achieved great success in the domain of Bounded Model Checking (BMC). However, modern solvers de- pend on advanced preprocessing procedures to obtain high levels of performance. Unfortunately, many preprocessing techniques such as a variable and (blocked) clause elimination cannot be directly used in an incremental manner. This work focuses on extending these techniques and Craig interpolation so that they can be used effectively together in incremental SAT solving (in the context of BMC). The techniques introduced here doubled the performance of our BMC solver on both SAT and UNSAT problems. For UNSAT problems, preprocessing had the added advantage that Craig interpolation was able to find the fixed point sooner, reducing the number of incremental SAT iterations. Furthermore, our ideas seem to perform better as the benchmarks become larger, and/or deeper, which is ex- actly when they are needed. Lastly, our methods can be extended to other SAT based BMC tools to achieve similar speedups. Key words: BMC, Preprocessing, SAT, Model Checking, Craig Interpolation 1 Introduction Bounded Model Checking (BMC) has become an important technique used to find er- rors in sequential circuits [4]. BMC accomplishes this by iteratively unfolding a circuit k times for k =0, 1,..., adding the negated property, and then finally converting the BMC instance into a SAT formula for a SAT solver. If the SAT solver finds the k-th problem instance satisfiable, a path of length k violating the property has been found. The use of incremental SAT solvers has been shown to be very effective on BMC type problems [2, 4, 11, 18]. Regrettably, one of the most powerful new techniques used in modern SAT solvers is currently not used in BMC tools as it does not inherently sup- port incremental solving, mainly modern preprocessing [7]. Since the introduction of SatELite, and widespread use of MiniSAT, all state-of-the-art DPLL (i.e. search) based SAT solvers include powerful preprocessors. These preprocessors reduce the overall size of a formula, and provide a significant performance increase on almost all types of industrial benchmarks. Preprocessing accomplishes this by performing variable elimi- nation, block clause removal, and others techniques. These techniques, however, intro- duce complications in incremental SAT solving where new variables and clauses can be added and/or removed from the problem after each iteration. This work was partly supported by the German Research Council (DFG) as part of the Transregional Collaborative Research Center “Automatic Verification and Analysis of Complex Systems” (SFB/TR 14 AVACS). See www.avacs.org for more information.