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
beacfd2d
Commit
beacfd2d
authored
Jan 11, 2017
by
Martin Jonas
Browse files
Few changes to slides.
parent
beff0d37
Changes
1
Hide whitespace changes
Inline
Side-by-side
Obhajoba/slides.tex
View file @
beacfd2d
\documentclass
[aspectratio=169]
{
beamer
}
%\documentclass[aspectratio=169]{beamer}
\documentclass
{
beamer
}
%\usepackage[czech]{babel}
\usepackage
[utf8]
{
inputenc
}
%balíček na A4
...
...
@@ -128,58 +129,6 @@
\titlepage
\end{frame}
\section
{
Propositional Satisfiability
}
\begin{frame}
\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
}
...
...
@@ -189,33 +138,32 @@
\smallskip
Function symbols are given interpretations by the theory.
Function
and relation
symbols are given interpretations by the theory.
\bigskip
Traditionally solved by
\alert
{
CDCL modulo theories
}
-- combination of
CDCL and a specialized theory solver.
\pause
\
begin{example}
Let
$
\varphi
=
(
x
+
y
=
3
)
\wedge
(
x >
1
)
\wedge
(
y
=
2
\vee
y
=
1
)
$
.
For example
\begin{itemize}
\item
$
x
+
y
=
3
~
\wedge
~x >
1
~
\wedge
~y > x
$
is satisfiable over the
integers,
\item
$
3
=
x
+
x
$
is unsatisfiable over the integers,
\
item
$
3
=
x
+
x
$
is satisfiable over the rationals.
\end{itemize}
\begin{enumerate}
[<+->]
\item
Propositional model
$
\{
x
+
y
=
3
,~x >
1
,~y
=
2
,~
\neg
(
y
=
1
)
\}
$
.
\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
)
\vee
(
y
=
1
)
$
to
$
\varphi
$
.
\item
Propositional model
$
\{
x
+
y
=
3
,~x >
1
,~
\neg
(
y
=
2
)
,~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
}
Hardware and programming languages do not work over integers.
The formula
\[
(
x >
0
)
~
\wedge
~
(
y >
0
)
~
\wedge
~
(
x
+
y <
0
)
\]
should be satisfiable due to overflows.
Theory of bit-vectors describes bounded integers (or vectors of
bits) with:
\begin{itemize}
...
...
@@ -224,16 +172,9 @@
\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
)
\]
\smallskip
is
\alert
{
satisfiable
}
.
Often used in modelling of software
.
\end{frame}
\section
{
Quantifier-free Bit-Vector Logic
}
...
...
@@ -267,21 +208,6 @@
Quantifier bit-vector formulas traditionally solved by
\alert
{
quantifier instantiation
}
.
\pause
\begin{example}
Let
$
\varphi
=
a >
3
~
\wedge
~
\forall
x
\,
(
a
\not
=
2
\cdot
x
)
$
\pause
\begin{itemize}
[<+->]
\item
$
a >
3
$
is satisfiable with model
$
a
=
4
$
.
\item
$
a
=
4
$
not a model of
$
\forall
x
\,
(
a
\not
=
2
\cdot
x
)
$
-- consider
$
x
=
2
$
.
\item
Add instance of the quantifier for
$
x
=
2
$
.
\item
$
a >
3
~
\wedge
~
(
a
\not
=
2
\cdot
2
)
$
is satisfiable with model
$
a
=
5
$
.
\item
$
a
=
5
$
is a model of
$
\forall
x
\,
(
a
\not
=
2
\cdot
x
)
$
.
\item
$
\varphi
$
is satisfiable
\end{itemize}
\end{example}
\end{frame}
\section
{
Symbolic Approach to Quantified Bit-Vectors
}
...
...
@@ -341,7 +267,9 @@
\end{frame}
\begin{frame}
We have implemented the solver Q3B, which
\frametitle
{
Symbolic Approach to Quantified Bit-Vectors
}
I have implemented the solver Q3B, which
\begin{itemize}
\item
simplifies the formula,
\item
converts the formula to the BDD,
...
...
@@ -351,8 +279,7 @@
\bigskip
Our results and results of SMT-COMP 2016 show that Q3B is
\alert
{
more efficient
}
than standard SMT solvers.
Q3B is the
\alert
{
winner
}
of SMT Competition 2016 in the category of quantified bit-vectors.
\end{frame}
\section
{
Aims of the Work
}
...
...
@@ -371,7 +298,8 @@
\begin{itemize}
\item
Determining a computational complexity of quantified bit-vector logic with
bit-widths represented in binary.
\item
Extending simplifications using unconstrained variables
\item
Extending known syntactic simplifications of quantified
bit-vector formulas.
\end{itemize}
\end{frame}
...
...
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