Commit 085af0c2 authored by Martin Jonáš's avatar Martin Jonáš
Browse files

Changes

parent 99f3d906
......@@ -2,7 +2,7 @@
\chapter{Introduction}\label{ch:introduction}
% ************************************************
During the last decades, the area of solving \emph{propositinal
During the last decades, the area of solving \emph{propositional
satisfiability} (\sat)~\cite{DP09} and consequently the related area
of solving \emph{satisfiability modulo theories} (\smt)~\cite{BSST09}
has undergone steep development in both theory and practice. Achieved
......@@ -10,14 +10,14 @@ advances of \smt solving opened new research directions in program
analysis and verification, where \smt solvers are now seen as standard
tools.
The task for an \smt solver is for a given first-order formula in a
given first-order theory decide, whether the formula is
The task for an \smt solver is to decide for a given first-order
formula in a given first-order theory whether the formula is
satisfiable. Usually, if the formula is satisfiable, the \smt solver
also has the ability to provide its model. Modern \smt solvers support
wide range of different first-order theories -- for example, theories
of integers, real numbers, floating-point numbers, arrays, strings,
inductively defined data types, bit-vectors and various combinations
and framgents of these theories. From the software analysis and
and fragments of these theories. From the software analysis and
verification point of view, a particularly important of these theories
is the theory of bit-vectors, which can be used to describing
properties of computer programs, since they usually use data-types of
......@@ -27,34 +27,35 @@ The benefit of describing properties of programs by bit-vector
formulas is twofold. Formulas in the bit-vector theory allow to model
the program's behavior precisely including possible arithmetic
overflows and underflows. Furthermore, in contrast to the theory of
integers, the satisfiability of bit-vector theory is decidable even if
the multiplication is allowed.
integers, the satisfiability of the bit-vector theory is decidable
even if the multiplication is allowed.
Therefore, quantifier-free bit-vector formulas are used in tools for
symbolic execution, bounded model checking, analysis of hardware
circuits, static analysis, or test generation. Most of the current
\smt solvers for the quantifier-free bit-vector formulas eagerly or
lazily translate the formula to the propositional logic
(\emph{bit-blasting}) and use an efficient \sat solver to decide its
satisfiability. Therefore, the efficiency of most of the \smt solvers
\smt solvers for quantifier-free bit-vector formulas eagerly or lazily
translate the formula to the propositional logic (so called
\emph{bit-blasting}) and use an efficient \sat solver to decide its
satisfiability. Therefore, the efficiency the majority of \smt solvers
for such formulas is tightly connected to the efficiency of the \sat
solvers. Plenty of solvers for the quantifier-free bit-vector formulas
exist: Beaver~\cite{Beaver}, Boolector~\cite{Boolector},
exist: for example Beaver~\cite{Beaver}, Boolector~\cite{Boolector},
CVC4~\cite{CVC4}, MathSAT5~\cite{MathSAT}, OpenSMT~\cite{OpenSMT},
Sonolar~\cite{Sonolar}, Spear~\cite{Spear}, STP~\cite{STP},
UCLID~\cite{LS04}, Yices~\cite{Yices}, or Z3~\cite{Z3}.
In some cases, quantifier-free formulas are not succint enough and
quantified formulas are necessary. Bit-vector quantified formulas
arise naturally for example in applications that generate loop
invariants, ranking functions, loop summaries, or that test equality
of two symbolic states. However, the \smt solvers' support of
quantified bit-vector logic is much more modest -- CVC4, Yices, and Z3
officially support quantifiers in bit-vector formulas. Recently,
quantifiers have been also implemented in an development version of
Boolector. All of these \smt solvers solve quantified bit-vector
formulas by some variant of quantifier-instantiation and using a
solver for quantifier-free formulas as an oracle.
In some cases, quantifier-free formulas are not succinct enough and
using quantification is necessary to keep a reasonable size of the
formula. Bit-vector quantified formulas arise naturally for example in
applications that generate loop invariants, ranking functions, loop
summaries, or that test equality of two symbolic states. However, the
\smt solvers' support of quantified bit-vector logic is much more
modest -- only CVC4, Yices, and Z3 officially support quantifiers in
bit-vector formulas. Recently, quantifiers have been also implemented
in an development version of Boolector~\cite{BoolectorComp}. All of
these \smt solvers solve quantified bit-vector formulas by some
variant of quantifier-instantiation and using a solver for
quantifier-free formulas as an oracle.
In the last year, we have proposed a different approach. We have
implemented a symbolic solver Q3B, which is based on binary decision
......@@ -72,17 +73,18 @@ uninterpreted functions and arrays that are important in the software
verification.
The thesis proposal is organized as follows. Chapter~\ref{ch:sota}
summarizes the state of the art and is divided into six sections. The
first section introduces necessary background and notations from
propositional logic and first-order logic. The second section
describes approaches to solving propositional satisfiability problem
and the third section describes approaches to solving satisfiability
modulo theories. The fourth and fifth sections are devoted to solving
quantifier-free and quantifed formulas over the theory of bit-vectors,
respectively. The final, sixth, section describes results about the
computational complexity of bit-vector
logics. Chapter~\ref{ch:achieved} describes results, which we have
achieved during the first two years of my PhD
summarizes the state of the art and is divided into six
sections. Section~\ref{sec:prelim} introduces necessary background and
notations from propositional logic and first-order
logic. Section~\ref{sec:sat} describes approaches to solving
propositional satisfiability problem and Section~\ref{sec:smt}
describes approaches to solving satisfiability modulo
theories. Sections \ref{sec:qfbv} and \ref{sec:bv} are devoted to
solving quantifier-free and quantified formulas over the theory of
bit-vectors, respectively. Finally, Section~\ref{sec:complexity}
section describes results about the computational complexity of
bit-vector logics. Chapter~\ref{ch:achieved} describes results, which
we have achieved during the first two years of my PhD
study. Chapter~\ref{ch:aims} presents the aim of the thesis and states
plans remaining part of the PhD study.
......
......@@ -3,6 +3,7 @@
%*****************************************
\section{Preliminaries}
\label{sec:prelim}
This section introduces the notation used in the rest of this
chapter. The exposition of the propositional logic is mainly based on
......@@ -146,50 +147,6 @@ $\mathcal{T}$-\emph{solver}. Moreover, if the signature or the theory
is clear from the context, we drop the respective $\Sigma$- or
$\mathcal{T}$- prefixes.
% In the following text, we suppose the knowledge of a standard
% first-order logic and model theory, which is given for example by
% Enderton~\cite{End01}.
% Definitions for the first-order quantifier-free formulas are similar
% to those from subsection \ref{prelim:prop}, except that the set $\P$
% now contains a fixed finite set of first-order atoms that do not
% contain free variables. For example, if we consider a set of atoms
% $\P = \{ x \geq y + 1, x = 4 \}$, where $x, y, 1$, and $4$ are
% constant symbols, $x \geq y + 1~\vee~\neg (x = 4)$ is a clause.
% A \emph{theory} $\mathcal{T}$ is a set of first-order structures. A formula
% $\varphi$ is $\mathcal{T}$-\emph{satisfiable} or $\mathcal{T}$-\emph{consistent} if there
% is a structure $M \in T$ in which the formula $F$ holds in the
% standard first-order sense. The formula $\varphi$ is
% $\mathcal{T}$-\emph{unsatisfiable} or $\mathcal{T}$-\emph{inconsistent} otherwise. If the
% distinction is necessary, we call literals over a specific background
% theory $\mathcal{T}$-literals. In the rest of this chapter, we consider only
% theories for which the satisfiability of conjunctions of literals is
% decidable and we call any decision procedure for conjunctions of
% $\mathcal{T}$-literals a $\mathcal{T}$-\emph{solver}.
% Using the same notation as in the propositional logic, a partial
% assignment is a set of literals and can be therefore seen as a
% conjunction of literals, i.e. a formula. If a partial assignment $M$
% is a propositional model of a given formula $\varphi$ and the partial
% assignment $M$ is $\mathcal{T}$-consistent, we say that $M$ is a
% $\mathcal{T}$-\emph{model} of $\varphi$. If $\varphi$ and $\psi$ are formulas
% such that $\varphi \wedge \neg \psi$ is $\mathcal{T}$-inconsistent, we say that
% \emph{$\varphi$ entails $\psi$ in $\mathcal{T}$} and write it as
% $\varphi \models_T \psi$.
% \subsection{First-order quantified formulas}
% As the first-order formulas containing quantifiers are concerned, we
% impose no restrictions on their form. We again suppose the knowledge
% and definitions from the standard first-order logic and model theory.
% A first-order formula $\varphi$ is in a \emph{negation normal form},
% if the only logical connectives in $\varphi$ are negations,
% conjunctions, and disjunctions and all negations in $\varphi$ occur in
% front of a literal. Every first-order formula can be transformed to a
% formula without existential quantifiers by introducing uninterpreted
% functions; this process is known as \emph{Skolemization}.
\subsection{Many-sorted logic}
For some theories, it can be convinient to distinguish several types
......@@ -225,6 +182,7 @@ entailment, and so on are also straightforward and can also be found
in Enderton~\cite{End01}.
\section{Propositional satisfiability}
\label{sec:sat}
A \emph{propositional satisfiability problem} (\sat) is, for a given
formula $\varphi$ in \cnf, to decide whether it is satisfiable. The
......@@ -245,7 +203,7 @@ the other hand, if after elimination of all variables no clauses
remain, the formula is satisfiable. The main problem of \dppr is its
space complexity, since the number of the clauses may grow
exponentially even for simple formulas. To alleviate this problem, the
refinement of \dppr algorithm was introduced in 1962 by Davis, Putnam,
refinement of \dppr algorithm was introduced in 1962 by Davis,
Logemann and Loveland~\cite{DPLL62}.
The Davis--Putnam--Logemann--Loveland \quotegraffito{If you don't know
......@@ -377,6 +335,7 @@ recently used to solve a long-standing open problem in the Ramsey
theory~\cite{HKM16}.
\section{Satisfiability modulo theories}
\label{sec:smt}
Similarly to \sat, the \emph{satisfiability modulo theories problem}
(\smt) is to decide for a given a \cnf formula $\varphi$ in a fixed
......@@ -764,6 +723,7 @@ the theory of integers, the function $f(x) = k \times x$ is invertible
in bit-vectors precisely if $k$ is odd.
\section{Satisfiability of quantified bit-vector formulas}
\label{sec:bv}
Although the bit-vector theory admits quantifier elimination by
expanding all quantifiers with all possible bit-vector values of the
......
......@@ -13,14 +13,16 @@ July 2016, Bordeaux, France.
\item TACAS 2016, April 2016, Eindhoven, The Netherlands
\end{itemize}
\section{Teaching}
I have tutored seminar groups for the following courses:
At my faculty, I have tutored seminar groups for the following
courses:
\begin{itemize}
\item Automata, Grammars, and Complexity (2014--now)
\item Formal Languages and Automata (2016--now)
\item Non-Imperative Programming (2015--now)
\end{itemize}
\smallskip
\noindent I have also been a reader of the following bachelor theses:
\noindent I have also been an official reader of the following
bachelor theses:
\begin{itemize}
\item Jan Mrázek -- Caching SMT Queries in SymDivine
\item Jakub Lédl -- Many-sorted equational logic
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment