Loading Chapters/Chapter02.tex +13 −13 Original line number Diff line number Diff line Loading @@ -473,7 +473,7 @@ and uninterpreted functions~\cite{McM11}. The \emph{theory of fixed sized bit-vectors (\BV)} is a multi-sorted first-order theory with infinitely many sorts $\sort{n}$ corresponding to bit-vectors of length $n$. The only predicate symbols in the \BV theory are $=$, $\leq_u$, and $\leq_s$, interpretead as equality, theory are $=$, $\leq_u$, and $\leq_s$, interpreted as equality, unsigned inequality of binary-encoded natural numbers, and signed inequality of integers in $2$'s complement representation, respectively. Function symbols in the theory are Loading @@ -495,7 +495,7 @@ by a \sat solver. The transformation of a bit-vector formula to the equivalent propositional formula is traditionally called \emph{bit-blasting}~\cite{Kro08}. \marginpar{TODO: Nepřidat odstavec o propagating-complete \cnf encodings?} More lazy approach to the bit-blasting is benefitial when the theory combination is bit-blasting is beneficial when the theory combination is required. For example, solvers Z3 and Yices apply bit-blasting to all operations except for the equality, which is handled by a specialized solver, and dynamically add axioms of the array Loading @@ -509,7 +509,7 @@ satisfiability of the formula, theory lemmas and propagated literals generated by the sub-solvers are added to the formula and a lazy \dpllt bit-blasting solver is employed~\cite{HBJBT14}. \subsection{Word-level techinques} \subsection{Word-level techniques} Although bit-blasting is highly efficient for most of practical problems, it can exhaust memory of the solver if the input formula contains complex arithmetic or variables with large bit-width. Several Loading @@ -535,7 +535,7 @@ heuristics for generalizing explanations of bit-vector conflicts. For example, the solver \mcsat can perform the partial assignment $\extract{2}{0}(x) \mapsto 10$, denoting that the two least significant bits of $x$ are $10$. To be able to efficiently use such partial assignments, the solver \mcbv mantains two over-approximations partial assignments, the solver \mcbv maintains two over-approximations of the set of models that are compatible with the current partial assignment -- using \emph{bit-patterns} and \emph{arithmetic intervals}. Bit-patterns are sequences of $0$, $1$ and $u$, which Loading @@ -549,7 +549,7 @@ detected. Another word-level approach for the full bit-vector theory is \emph{stochastic local search} (\sls), proposed for solving bit-vectors by Frohlich et al.~\cite{FBWH15} and subsequently improved bit-vectors by Fröhlich et al.~\cite{FBWH15} and subsequently improved by Niemetz et al.~\cite{NPBF15,NPB16}. In the \sls approach, the solver randomly chooses initial values of bit-vector variables and tries to find a satisfying assignment by performing random bit flips, Loading @@ -562,10 +562,10 @@ necessary to satisfy randomly selected subformulas. The \sls based solver has been shown to be able to decide several formulas not decided by bit-blasting solvers. To combine benefit of bit-blasting and \sls approaches, the latest version of Boolector, which have won the 2016 SMT competition in category of unquantified bit-vectors, uses a protfolio approach, which consists in first running a \sls based solver for a short period of time and then running a bit-blasting solver if the \sls solver fails to solve the the 2016 SMT competition in category of quantifier-free bit-vectors, uses a portfolio approach, which consists in first running a \sls based solver for a short period of time and then running a bit-blasting solver if the \sls solver fails to solve the formula~\cite{BoolectorComp}. \subsection{Preprocessing} Loading Loading @@ -726,12 +726,12 @@ of the bit-vector satisfiability problem differ in allowing uninterpreted functions, allowing quantifiers, and in encoding of the bit-widths (unary vs. binary). In the following, we follow the notation of Kováznai et al~\cite{KFB16} -- decision problems for quantifer-free fragments are dentoted by the prefix QF\_, the quantifier-free fragments are denoted by the prefix QF\_, the combination with the theory of uninterpreted functions is denoted by the prefix UF, and the problems with unary and binary encoded bit-widths are denoted by suffixes 1 and 2, respectively. For example, QF\_UFBV2 is the decision problem for quantifier free formulas with uninterpreted functions and binary encoded bit-withs. The completeness uninterpreted functions and binary encoded bit-widths. The completeness results for these classes are summarized in table \ref{tbl:complexity}, and briefly explained in the rest of this section. Loading Loading @@ -790,7 +790,7 @@ original input bit-vector formula, as the number of bits may be exponential with respect to the size of the formula. Therefore, bit-blasting shows that QF\_BV2 is in \NEXPTIME. On the other hand, Kovásznai et al. have presented a polynomial time reduction of satisfiability of \emph{dependent quantified boolean formulas} (\dqbf) satisfiability of \emph{dependent quantified Boolean formulas} (\dqbf) to QF\_BV2. Since \dqbf is well known to be \NEXPTIME-complete, this reduction shows \NEXPTIME-hardness of QF\_BV2~\cite{KFB12}. In contrast, the precise complexity after adding quantifiers is not Loading @@ -798,7 +798,7 @@ known. BV2 is known to be in \EXPSPACE and because it contains all formulas from QF\_BV2, it is also \NEXPTIME-hard. Similarly to the case with the unary encoding, the complexity of the quantifier-fre fragment stays the same when the uninterpreted quantifier-free fragment stays the same when the uninterpreted functions are added -- QF\_UFBV2 can be shown to be in \NEXPTIME by the Ackermann reduction and \NEXPTIME-hard by the simple reduction from QF\_UFBV2. The complexity of the problem after adding quantifiers Loading Chapters/Chapter03.tex +1 −1 File changed.Contains only whitespace changes. Show changes Loading
Chapters/Chapter02.tex +13 −13 Original line number Diff line number Diff line Loading @@ -473,7 +473,7 @@ and uninterpreted functions~\cite{McM11}. The \emph{theory of fixed sized bit-vectors (\BV)} is a multi-sorted first-order theory with infinitely many sorts $\sort{n}$ corresponding to bit-vectors of length $n$. The only predicate symbols in the \BV theory are $=$, $\leq_u$, and $\leq_s$, interpretead as equality, theory are $=$, $\leq_u$, and $\leq_s$, interpreted as equality, unsigned inequality of binary-encoded natural numbers, and signed inequality of integers in $2$'s complement representation, respectively. Function symbols in the theory are Loading @@ -495,7 +495,7 @@ by a \sat solver. The transformation of a bit-vector formula to the equivalent propositional formula is traditionally called \emph{bit-blasting}~\cite{Kro08}. \marginpar{TODO: Nepřidat odstavec o propagating-complete \cnf encodings?} More lazy approach to the bit-blasting is benefitial when the theory combination is bit-blasting is beneficial when the theory combination is required. For example, solvers Z3 and Yices apply bit-blasting to all operations except for the equality, which is handled by a specialized solver, and dynamically add axioms of the array Loading @@ -509,7 +509,7 @@ satisfiability of the formula, theory lemmas and propagated literals generated by the sub-solvers are added to the formula and a lazy \dpllt bit-blasting solver is employed~\cite{HBJBT14}. \subsection{Word-level techinques} \subsection{Word-level techniques} Although bit-blasting is highly efficient for most of practical problems, it can exhaust memory of the solver if the input formula contains complex arithmetic or variables with large bit-width. Several Loading @@ -535,7 +535,7 @@ heuristics for generalizing explanations of bit-vector conflicts. For example, the solver \mcsat can perform the partial assignment $\extract{2}{0}(x) \mapsto 10$, denoting that the two least significant bits of $x$ are $10$. To be able to efficiently use such partial assignments, the solver \mcbv mantains two over-approximations partial assignments, the solver \mcbv maintains two over-approximations of the set of models that are compatible with the current partial assignment -- using \emph{bit-patterns} and \emph{arithmetic intervals}. Bit-patterns are sequences of $0$, $1$ and $u$, which Loading @@ -549,7 +549,7 @@ detected. Another word-level approach for the full bit-vector theory is \emph{stochastic local search} (\sls), proposed for solving bit-vectors by Frohlich et al.~\cite{FBWH15} and subsequently improved bit-vectors by Fröhlich et al.~\cite{FBWH15} and subsequently improved by Niemetz et al.~\cite{NPBF15,NPB16}. In the \sls approach, the solver randomly chooses initial values of bit-vector variables and tries to find a satisfying assignment by performing random bit flips, Loading @@ -562,10 +562,10 @@ necessary to satisfy randomly selected subformulas. The \sls based solver has been shown to be able to decide several formulas not decided by bit-blasting solvers. To combine benefit of bit-blasting and \sls approaches, the latest version of Boolector, which have won the 2016 SMT competition in category of unquantified bit-vectors, uses a protfolio approach, which consists in first running a \sls based solver for a short period of time and then running a bit-blasting solver if the \sls solver fails to solve the the 2016 SMT competition in category of quantifier-free bit-vectors, uses a portfolio approach, which consists in first running a \sls based solver for a short period of time and then running a bit-blasting solver if the \sls solver fails to solve the formula~\cite{BoolectorComp}. \subsection{Preprocessing} Loading Loading @@ -726,12 +726,12 @@ of the bit-vector satisfiability problem differ in allowing uninterpreted functions, allowing quantifiers, and in encoding of the bit-widths (unary vs. binary). In the following, we follow the notation of Kováznai et al~\cite{KFB16} -- decision problems for quantifer-free fragments are dentoted by the prefix QF\_, the quantifier-free fragments are denoted by the prefix QF\_, the combination with the theory of uninterpreted functions is denoted by the prefix UF, and the problems with unary and binary encoded bit-widths are denoted by suffixes 1 and 2, respectively. For example, QF\_UFBV2 is the decision problem for quantifier free formulas with uninterpreted functions and binary encoded bit-withs. The completeness uninterpreted functions and binary encoded bit-widths. The completeness results for these classes are summarized in table \ref{tbl:complexity}, and briefly explained in the rest of this section. Loading Loading @@ -790,7 +790,7 @@ original input bit-vector formula, as the number of bits may be exponential with respect to the size of the formula. Therefore, bit-blasting shows that QF\_BV2 is in \NEXPTIME. On the other hand, Kovásznai et al. have presented a polynomial time reduction of satisfiability of \emph{dependent quantified boolean formulas} (\dqbf) satisfiability of \emph{dependent quantified Boolean formulas} (\dqbf) to QF\_BV2. Since \dqbf is well known to be \NEXPTIME-complete, this reduction shows \NEXPTIME-hardness of QF\_BV2~\cite{KFB12}. In contrast, the precise complexity after adding quantifiers is not Loading @@ -798,7 +798,7 @@ known. BV2 is known to be in \EXPSPACE and because it contains all formulas from QF\_BV2, it is also \NEXPTIME-hard. Similarly to the case with the unary encoding, the complexity of the quantifier-fre fragment stays the same when the uninterpreted quantifier-free fragment stays the same when the uninterpreted functions are added -- QF\_UFBV2 can be shown to be in \NEXPTIME by the Ackermann reduction and \NEXPTIME-hard by the simple reduction from QF\_UFBV2. The complexity of the problem after adding quantifiers Loading