Bitwuzla at the SMT-COMP 2020
aa r X i v : . [ c s . L O ] M a y Bitwuzla at the SMT-COMP 2020
Aina Niemetz
Stanford University
Mathias Preiner
Stanford University
Abstract —In this paper, we present Bitwuzla, our SatisfiabilityModulo Theories (SMT) solver for the theories of bit-vectors,floating-points, arrays and uninterpreted functions and theircombinations. We discuss selected features and provide detailsof its configuration and participation in the 2020 edition of theannual SMT competition.
I. I
NTRODUCTION
Bitwuzla is a Satisfiability Modulo Theories (SMT) solverfor the theories of bit-vectors, floating-points, arrays and unin-terpreted functions and their combinations. Its name is derivedfrom an Austrian dialect expression that can be translated as“someone who tinkers with bits”. Bitwuzla is the successorof our SMT solver Boolector [20], which supports bit-vectors,arrays and uninterpreted functions.Bitwuzla implements a lemmas on demand procedure forlogics with arrays and uninterpreted functions that generalizesthe lemmas on demand for arrays approach from [11] to non-recursive first-order lambda terms [21, 22]. For quantifier-freebit-vectors, it supports the classic bit-blasting approach [14],different approaches to local search [15, 17, 18, 19], anda sequential combination of both. For floating-point logics,Bitwuzla includes SymFPU [9], a C++ library of bit-vectorencodings of floating-point operations. It further supports unsatcore extraction for all supported quantifier-free logics.This paper serves as system description for Bitwuzla as en-tered into the SMT competition 2020 [3]. Bitwuzla is licencedunder the MIT license, and releases and more information isavailable on its website [1].II. F
EATURES
A. Arrays and Uninterpreted Functions
Bitwuzla generalizes the lemmas on demand for exten-sional arrays approach [11] to non-recursive first-order lambdaterms [21, 22], which enables compact representations for op-erations such as memset and memcpy [23] and constant arrays.It further supports dual propagation-based and justification-based optimization techniques for lemmas on demand, wherethe overhead for consistency checking is reduced by extractingpartial candidate models via don’t care reasoning on fullcandidate models [16].
B. Quantifier-Free Bit-Vectors
Bitwuzla implements two orthogonal strategies for solvingquantifier-free bit-vector constraints: the classic bit-blasting approach employed by most state-of-the-art bit-vector solvers,and local search. Since local search procedures are only ableto determine satisfiability, Bitwuzla allows to combine localsearch with bit-blasting in a sequential portfolio setting, wherethe local search procedure is run until a certain limit is reached,before falling back to the bit-blasting engine.
Local Search for Quantifier-Free Bit-Vectors.
Bitwuzla sup-ports the stochastic local search (SLS) approach presentedin [13], an improved variant where SLS is augmented witha propagation-based strategy [19], and mainly the completepropagation-based local search procedure presented in [18].The latter can both be applied on the bit-level and word-level.The word-level strategy, however is superior to the bit-levelimplementation, which operates on the circuit representationof the input formula. Bitwuzla further implements a novelgeneralization of the propagation-based approach in [18] toternary values. This generalization addresses the main weak-ness of the propagation-based local search strategy [15, 18], itsobliviousness to bits that can be simplified to constant values.The local search engines can now also be combined with thelemmas on demand engine and quantified bit-vectors.
Bit-Blasting.
Bitwuzla implements bit-blasting in two phases.Initially, it generates an And-Inverter Graph (AIG) circuitrepresentation of the simplified input formula and then appliesAIG-level rewriting [10]. The rewritten AIG representation isthen converted into Conjunctive Normal Form (CNF) and sentto one of following SAT back ends: MiniSat [12], PicoSAT [6],Lingeling [7], CaDiCaL [8], CryptoMiniSat [25], or Kissat [2].Bitwuzla uses CaDiCaL version 1.2.1 as default SAT backend. It further utilizes Lingeling for preprocessing the Booleanskeleton of the input formula.
C. Quantified Bit-Vectors
Bitwuzla implements a combination of counterexampleguided quantifier instantiation and syntax-guided synthesis(SyGuS) [4] to synthesize Skolem functions [24] for exis-tential variables. By default, Bitwuzla also employs a dualapproach, which applies the same technique to the negationof the input formula to synthesize quantifier instantiations.Both approaches are run in two separate threads in parallel.Combination with other theories, incremental solving andunsat core extraction is currently not supported for quantifiedbit-vectors.1 . Floating-Points
For the theory of floating-points, Bitwuzla implements aneager translation of the simplified input formula to the theoryof bit-vectors. This approach is sometimes also referred to as word-blasting . To translate floating-point expressions to theword-level, Bitwuzla integrates SymFPU [9], a C++ libraryof bit-vector encodings of floating-point operations. SymFPUuses templated types for Booleans, (un)signed bit-vectors,rounding modes and floating-point formats, which allows toplug it in as a back end while utilizing solver-specific repre-sentations. It is also integrated in the SMT solver CVC4 [5].
E. Unsat Cores
Bitwuzla implements unsat core extraction via solving underassumptions [12]. When unsat core extraction is enabled, allassertions in the formula are assumed in the SAT back end.If given input formula is unsatisfiable, Bitwuzla returns allunsatisfiable (failed) assumptions as unsat core. Unsat Coreextraction is not yet supported for quantified formulas.III. C
ONFIGURATIONS
Bitwuzla participates in the single query, incremental, unsatcore, and model validation tracks in the following divisions: • Single Query Track (SQ):
BV, QF BV, QF ABV, QF AUFBV, QF UFBV,QF FP, QF BVFP, QF ABVFP, QF UFFP • Incremental Track (INC):
QF BV, QF ABV, QF AUFBV, QF UFBV, QF FP,QF BVFP, QF ABVFP, QF UFFP • Unsat Core Track (UC):
QF BV, QF ABV, QF AUFBV, QF UFBV, QF FP,QF BVFP, QF ABVFP, QF UFFP • Model Validation Track (MV):
QF BVFor divisions BV and QF BV in the SQ and MV track,Bitwuzla uses a sequential combination of bit-blasting andpropagation-based local search with a limit of 10k propagationsteps and 2M model update steps.IV. L
ICENSE
Bitwuzla is licensed under the MIT license. For moredetails, refer to the actual license text, which is distributedwith the source code. R
FMCAD 2013, Portland, OR, USA, October 20-23,2013 , pages 1–8. IEEE, 2013.[5] C. W. Barrett, C. L. Conway, M. Deters, L. Hadarean, D. Jovanovic,T. King, A. Reynolds, and C. Tinelli. CVC4. In
CAV 2011, Snowbird,UT, USA, July 14-20, 2011. Proceedings , volume 6806 of
LNCS , pages171–177. Springer, 2011.[6] A. Biere. Picosat essentials.
JSAT , 4(2-4):75–97, 2008.[7] A. Biere. CaDiCaL, Lingeling, Plingeling, Treengeling, YalSAT Enter-ing the SAT Competition 2018. In
SAT Competition 2018 – Solver andBenchmark Descriptions , 2018. To appear.[8] A. Biere. CaDiCaL at the SAT Race 2019. In
Proc. of SAT Race 2019– Solver and Benchmark Descriptions , volume B-2019-1 of
Departmentof Computer Science Series of Publications B , pages 8–9. University ofHelsinki, 2019.[9] M. Brain, F. Schanda, and Y. Sun. Building better bit-blasting forfloating-point problems. In
TACAS 2019, Prague, Czech Republic, April6-11, 2019, Proceedings, Part I , volume 11427 of
LNCS , pages 79–98.Springer, 2019.[10] R. Brummayer and A. Biere. Local Two-Level And-Inverter Graph Min-imization without Blowup. In , 2006.[11] R. Brummayer and A. Biere. Lemmas on demand for the extensionaltheory of arrays.
JSAT , 6(1-3):165–201, 2009.[12] N. E´en and N. S¨orensson. An extensible sat-solver. In
SAT 2003.Santa Margherita Ligure, Italy, May 5-8, 2003 Selected Revised Papers ,volume 2919 of
LNCS , pages 502–518. Springer, 2003.[13] A. Fr¨ohlich, A. Biere, C. M. Wintersteiger, and Y. Hamadi. Stochasticlocal search for satisfiability modulo theories. In
AAAI 2015, January25-30, 2015, Austin, Texas, USA. , pages 1136–1143. AAAI Press, 2015.[14] D. Kroening and O. Strichman.
Decision Procedures - An AlgorithmicPoint of View . Texts in Theoretical Computer Science. An EATCS Series.Springer, 2008.[15] A. Niemetz.
Bit-Precise Reasoning Beyond Bit-Blasting . PhD thesis,Informatik, Johannes Kepler University Linz, 2017.[16] A. Niemetz, M. Preiner, and A. Biere. Turbo-charging lemmas ondemand with don’t care reasoning. In
FMCAD 2014, Lausanne,Switzerland, October 21-24, 2014 , pages 179–186. IEEE, 2014.[17] A. Niemetz, M. Preiner, and A. Biere. Precise and complete propagationbased local search for satisfiability modulo theories. In
CAV (1) , volume9779 of
LNCS , pages 199–217. Springer, 2016.[18] A. Niemetz, M. Preiner, and A. Biere. Propagation based local searchfor bit-precise reasoning.
Formal Methods in System Design , 51(3):608–636, 2017.[19] A. Niemetz, M. Preiner, A. Biere, and A. Fr¨ohlich. Improving lo-cal search for bit-vector logics in SMT with path propagation. In
DIFTS@FMCAD, Austin, TX, USA, September 26-27, 2015. , pages 1–10, 2015.[20] A. Niemetz, M. Preiner, C. Wolf, and A. Biere. Btor2 , btormc andboolector 3.0. In
CAV 2018, Oxford, UK, July 14-17, 2018, Proceedings,Part I , volume 10981 of
Lecture Notes in Computer Science , pages 587–595. Springer, 2018.[21] M. Preiner.
Lambdas, Arrays and Quantifiers . PhD thesis, Informatik,Johannes Kepler University Linz, 2017.[22] M. Preiner, A. Niemetz, and A. Biere. Lemmas on demand for lambdas.In
DIFTS@FMCAD 2013, Portland, OR, USA , volume 1130 of
CEURWorkshop Proceedings . CEUR-WS.org, 2013.[23] M. Preiner, A. Niemetz, and A. Biere. Better lemmas with lambdaextraction. In
FMCAD 2015, Austin, Texas, USA, September 27-30,2015 , pages 128–135. IEEE, 2015.[24] M. Preiner, A. Niemetz, and A. Biere. Counterexample-guided modelsynthesis. In
TACAS (1) , volume 10205 of
LCNS , pages 264–280, 2017.[25] M. Soos, K. Nohl, and C. Castelluccia. Extending SAT solvers tocryptographic problems. In
SAT 2009, Swansea, UK, June 30 - July3, 2009. Proceedings , volume 5584 of
LNCS , pages 244–257. Springer,2009., pages 244–257. Springer,2009.