Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Martin Jonáš
DTEDI
Commits
21401a14
Commit
21401a14
authored
Oct 10, 2016
by
Martin Jonáš
Browse files
First version of defense
parent
dd110059
Changes
1
Hide whitespace changes
Inline
Side-by-side
Obhajoba/slides.tex
View file @
21401a14
\documentclass
{
beamer
}
\documentclass
[aspectratio=169]
{
beamer
}
%\usepackage[czech]{babel}
\usepackage
[utf8]
{
inputenc
}
%balíček na A4
...
...
@@ -13,7 +13,7 @@
%\usepackage[mathlf]{MinionPro}
\usepackage
{
sansmathfonts
}
\usepackage
[mathlf,textlf]
{
MyriadPro
}
%
\usepackage[mathlf,textlf]{MyriadPro}
%\usepackage{mathpazo}
\usepackage
[small]
{
eulervm
}
%\usepackage{newtxmath}
...
...
@@ -28,6 +28,18 @@
\usepackage
{
tabularx
}
\usepackage
{
pbox
}
\usepackage
{
tikz
}
\tikzset
{
invisible/.style=
{
opacity=0
}
,
visible on/.style=
{
alt=#1
{}{
invisible
}}
,
blank/.style=
{}
,
red on/.style=
{
alt=
{
#1
{
fill=red!10
}{
blank
}}}
,
alt/.code args=
{
<#1>#2#3
}{
%
\alt
<#1>
{
\pgfkeysalso
{
#2
}}{
\pgfkeysalso
{
#3
}}
% \pgfkeysalso doesn't change the path
}
,
}
\captionsetup
{
compatibility=false
}
%\renewcommand{\arraystretch}{1}
%\hypersetup{pdfpagemode={FullScreen}}
...
...
@@ -111,9 +123,261 @@
\frame
{
\titlepage
}
\section
{
Pr
eliminaries
}
\section
{
Pr
opositional Satisfiability
}
\begin{frame}
Test
\frametitle
{
Propositional Satisfiability
}
Propositional satisfiability problem (SAT) -- decide whether a
propositional formula is satisfiable.
\bigskip
For example
$
\varphi
=
(
y
\vee
z
)
~
\wedge
~
(
\neg
y
\vee
z
)
~
\wedge
~
(
y
\vee
x
\vee
z
)
~
\wedge
~
(
y
\vee
\neg
x
\vee
\neg
z
)
$
is satisfiable.
\bigskip
Usually solved by a
\alert
{
conflict driven clause learning
}
algorithm (CDCL), which relies on:
\begin{itemize}
\item
preprocessing,
\item
variable assignment (with heuristics),
\item
unit propagation,
\item
conflict analysis,
\item
clause learning,
\item
backtracking,
\item
restarts.
\end{itemize}
% \begin{example}
% $\varphi = (\neg y \vee z)~\wedge~(\neg y \vee z)~\wedge~(y \vee x \vee z)~\wedge~(y \vee \neg x \vee \neg z)$.
% \bigskip
% \begin{tikzpicture}[every node/.style={draw}]
% \node (e) at (5,4) {decide};
% \node [visible on=<2->] (x) at (2,3) {decide};
% \node [visible on=<3->] (xy) at (0,2) {propagate};
% \node [visible on=<4->] (xyz) at (0,0.5) {conflict (learn $\neg y$)};
% \node [visible on=<5->] (-y) at (9,3) {decide};
% \node [visible on=<6->] (-yz) at (7,2) {propagate};
% \node [visible on=<7->] (-yz-x) at (7,0.5) {sat};
% \path[auto, every node/.style={}, above]
% (e) edge [visible on=<2->] node {$x$} (x)
% (x) edge [visible on=<3->] node {$y$} (xy)
% (xy) edge [visible on=<4->, left] node {$z$} (xyz)
% (e) edge [visible on=<5->] node {$\neg y$} (-y)
% (-y) edge [visible on=<6->] node {$z$} (-yz)
% (-yz) edge [visible on=<7->, left] node {$\neg x$} (-yz-x);
% \end{tikzpicture}
% \end{example}
\end{frame}
\section
{
Satisfiability Modulo Theories
}
\begin{frame}
\frametitle
{
Satisfiability Modulo Theories
}
Decide the satisfiability of a first-order formula in a given
theory.
\smallskip
Function symbols are given interpretations by the theory.
\bigskip
Traditionally solved by the
\alert
{
CDCL modulo theories
}
-- combination of
CDCL and a specialized theory solver.
\begin{example}
Let
$
\varphi
=
(
x
+
y
=
3
)
\wedge
(
x >
1
)
\wedge
(
y
=
2
\vee
y
=
1
)
$
.
\begin{enumerate}
[<+->]
\item
Propositional model
$
\{
x
+
y
=
3
,~x >
1
,~y
=
2
\}
$
.
\item
This model
\textbf
{
is not
}
consistent with the theory of integers.
\item
Conjoin
$
\neg
(
x
+
y
=
3
)
\vee
\neg
(
x >
1
)
\vee
\neg
(
y
=
2
)
$
to
$
\varphi
$
.
\item
Propositional model
$
\{
x
+
y
=
3
,~x >
1
,~y
=
1
\}
$
.
\item
This model
\textbf
{
is
}
consistent with the theory of integers.
\item
$
\varphi
$
is satisfiable.
\end{enumerate}
\end{example}
\end{frame}
\section
{
Theory of Bit-Vectors
}
\begin{frame}
\frametitle
{
Theory of Bit-Vectors
}
Theory of bit-vectors describes bounded integers (or vectors of
bits) with:
\begin{itemize}
\item
arithmetic operations,
\item
bitwise operations,
\item
comparison.
\end{itemize}
Often used in modelling of software.
\bigskip
Different from mathematical integers -- for example the formula
\[
\varphi
=
(
x
^{
[
32
]
}
>
_
s
0
)
~
\wedge
~
(
y
^{
[
32
]
}
>
_
s
0
)
~
\wedge
~
(
x
^{
[
32
]
}
+
y
^{
[
32
]
}
=
0
)
\]
is
\alert
{
satisfiable
}
.
\end{frame}
\section
{
Quantifier-free Bit-Vector Logic
}
\begin{frame}
\frametitle
{
Quantifier-free Bit-Vector Logic
}
Quantifier-free
bit-vector formulas usually solved by reduction to a propositional
formula (
\emph
{
bit-blasting
}
) and using a SAT solver.
\smallskip
Approach taken by Z3, CVC4, Boolector, UCLID, Yices,
\ldots
.
\bigskip
Alternative approaches exist:
\begin{itemize}
\item
model-constructing satisfiability calculus,
\item
abstract CDCL,
\item
stochastic local search.
\end{itemize}
\end{frame}
\section
{
Quantified Bit-Vector Logic
}
\begin{frame}
\frametitle
{
Quantified Bit-Vector Logic
}
In many software verification applications, quantifiers are
necessary.
\bigskip
Quantifier bit-vector formulas traditionally solved by
\alert
{
quantifier instantiation
}
.
\begin{example}
Let
$
\varphi
=
3
< a ~
\wedge
~
\forall
x
\,
(
a
\not
=
2
\times
x
)
$
\pause
\begin{itemize}
[<+->]
\item
$
3
< a
$
is satisfiable with model
$
a
=
4
$
.
\item
$
a
=
4
$
not a model of
$
\forall
x
\,
(
a
\not
=
2
\times
x
)
$
(corresponding counter-example is
$
x
=
2
$
).
\item
Add instance of the quantifier for
$
x
=
2
$
.
\item
$
3
< a ~
\wedge
~
(
a
\not
=
2
\times
2
)
$
is satisfiable with model
$
a
=
5
$
.
\item
$
a
=
5
$
is a model of
$
\forall
x
\,
(
a
\not
=
2
\times
x
)
$
.
\item
$
\varphi
$
is satisfiable
\end{itemize}
\end{example}
\end{frame}
\section
{
Symbolic Approach to Quantified Bit-Vectors
}
\begin{frame}
\frametitle
{
Symbolic Approach to Quantified Bit-Vectors
}
Bit-vector formulas can be represented by
\alert
{
binary decision diagrams
}
(BDD).
\bigskip
Assuming that
$
x
^{
[
4
]
}
=
x
_
3
x
_
2
x
_
1
x
_
0
$
, formula
\[
x
^{
[
4
]
}
>
_
u
0
\]
is represented by
\begin{center}
\begin{tikzpicture}
[every node/.style=
{
draw, circle
}
]
\node
(x0) at (2,4)
{$
x
_
0
$}
;
\node
(x1) at (3,3)
{$
x
_
1
$}
;
\node
(x2) at (4,2)
{$
x
_
2
$}
;
\node
(x3) at (5,1)
{$
x
_
3
$}
;
\node
[rectangle] (true) at (0,0)
{
true
}
;
\node
[rectangle] (false) at (6,0)
{
false
}
;
\path
[auto, every node/.style={}, above, dashed]
(x0) edge [above right] node
{$
0
$}
(x1)
(x1) edge [above right] node
{$
0
$}
(x2)
(x2) edge [above right] node
{$
0
$}
(x3)
(x3) edge [above right] node
{$
0
$}
(false);
\path
[auto, every node/.style={}, above left]
(x0) edge [] node
{$
1
$}
(true)
(x1) edge [] node
{$
1
$}
(true)
(x2) edge [] node
{$
1
$}
(true)
(x3) edge [] node
{$
1
$}
(true);
\end{tikzpicture}
\end{center}
\end{frame}
\begin{frame}
\frametitle
{
Symbolic Approach to Quantified Bit-Vectors
}
Efficient algorithm are known for operations with BDDs (conjunction,
disjunction, quantifiers).
\smallskip
Quantification usually reduces the size of the BDD -- useful for
quantified bit-vectors.
\bigskip
We have implemented the solver Q3B, which
\begin{itemize}
\item
simplifies the formula,
\item
converts the formula to the BDD,
\item
tries to use approximations if the precise BDD computation is
too expensive.
\end{itemize}
Results show that Q3B is
\alert
{
more efficient
}
than standard SMT solvers.
\end{frame}
\section
{
Aims of the Work
}
\begin{frame}
\frametitle
{
Aims of the Work
}
\textbf
{
Major aims
}
\begin{itemize}
\item
Further development of the symbolic solver for quantified-bit
vectors.
\item
Hybrid approach to quantified bit-vectors.
\end{itemize}
\bigskip
\textbf
{
Minor aims
}
\begin{itemize}
\item
Determining a computational complexity of quantified bit-vector logic with
bit-widths represented in binary.
\item
Extending simplifications using unconstrained variables
\end{itemize}
\end{frame}
\section
{
Publications
}
\begin{frame}
\frametitle
{
Publications
}
\begin{itemize}
\item
\textsc
{
Jonáš
}
, M. and J.
\textsc
{
Strejček
}
.
\emph
{
``Solving
Quantified Bit-Vector Formulas Using Binary Decision Diagrams.''
}
In: SAT 2016, Bordeaux, France, July 5-8, 2016, Proceedings. 2016,
pp. 267-283
\bigskip
Main author of the text of the paper, implemented the SMT solver and conducted all the experiments.
\item
\textsc
{
Chalupa
}
M., M.
\textsc
{
Jonáš
}
, J.
\textsc
{
Slabý
}
,
J.
\textsc
{
Strejček
}
, and M.
\textsc
{
Vitovská
}
.
\emph
{
``Symbiotic 3:
New Slicer and Error-Witness Generation -- (Competition
Contribution).''
}
In: TACAS 2016, Eindhoven, The Netherlands, April
2-8, 2016, Proceedings, pp. 946-949
\bigskip
Wrote parts of the paper and prepared the environment that was used
to run experiments with the implemented tool Symbiotic.
\end{itemize}
\end{frame}
\end{document}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment