# Satisfiability of Quantified Bit-Vector Formulas: Theory and Practice

This is a supplemental page for my PhD thesis *Satisfiability of
Quantified Bit-Vector Formulas: Theory and Practice*.

- Full text of the thesis: http://fi.muni.cz/~xjonas/phdThesis.pdf
- Official university page of the thesis: https://is.muni.cz/th/cg101/?lang=en

## Abstract

Multiple modern applications, ranging from bioinformatics, through job scheduling, to software and hardware analysis rely on ability to decide satisfiability of a given formula in a given logical theory. This decision problem is called satisfiability modulo theories (SMT). This thesis focuses on one particular theory, which is of paramount importance in analysis of software and hardware: the theory of fixed-size bit-vectors. In particular, this thesis focuses on both theoretical and practical aspects of deciding satisfiability of bit-vector formulas that contain quantifiers. In the first part of the thesis, we investigate the precise computational complexity of satisfiability of quantified bit-vector formulas in which the values of bit-widths are encoded in binary or decimal notation, which is often the case in practice. Afterwards, we introduce an approach to deciding satisfiability of quantified bit-vector formulas by using binary decision diagrams and abstractions of bit-vector operations. We also the extend known simplifications of formulas that contain unconstrained variables, i.e., variables that occur only once in the formula. The thesis further describes our implementation of state-of-the-art SMT solver called Q3B, which uses the approach of solving satisfiability of quantified bit-vector formulas by binary decision diagrams and abstractions and also implements the simplifications using unconstrained variables. Experimental evaluation shows that the implemented solver Q3B outperforms other state-of-the-art solvers for quantified bit-vector formulas. Furthermore, we also investigate the dependence of satisfiability of quantified bit-vector formulas on the bit-widths of the used variables. We show that in most formulas coming from practical applications, the satisfiability of the formula remains the same even after reducing the bit-widths in the formula to very small values. Finally, we show how to use this observation to improve the performance of quantified bit-vector SMT solvers by using reductions of bit-widths in the input formula.

## Additional materials

### Chapter 8 (Q3B: An Efficient BDD-Based SMT Solver for Quantified Bit-Vectors)

- the source code of Q3B can be found at https://github.com/martinjonas/Q3B

### Chapter 9 (Experimental Evaluation of Q3B)

- the data for the section
*Overall Performance*can be found at https://www.fi.muni.cz/~xjonas/PhdThesis/Q3BExperiments/SolverComparison/ - the data for the section
*Effect of Individual Techniques*can be found at https://www.fi.muni.cz/~xjonas/PhdThesis/Q3BExperiments/Q3BTechniques

### Chapter 10 (Is Satisfiability of Quantified Bit-Vector Formulas Stable Under Bit-Width Changes)

- the tool can be found at https://gitlab.fi.muni.cz/xjonas/BWStability
- the archive with reduced formulas can be found at http://fi.muni.cz/~xstrejc/lpar2018/ReducedBW.tar.gz
- the data for the chapter can be found at https://www.fi.muni.cz/~xstrejc/lpar2018/

### Chapter 11 (Speeding Up Quantified Bit-Vector SMT Solvers by Bit-Width Reductions and Extensions)

- the solver can be found at https://gitlab.fi.muni.cz/xjonas/BWReducingSolver
- the data for the section
*Experimental Evaluation*can be found at https://www.fi.muni.cz/~xjonas/PhdThesis/BWReductions/