summaryrefslogtreecommitdiff
path: root/tex/presentation/main.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/presentation/main.tex')
-rw-r--r--tex/presentation/main.tex290
1 files changed, 290 insertions, 0 deletions
diff --git a/tex/presentation/main.tex b/tex/presentation/main.tex
new file mode 100644
index 0000000..286e4a7
--- /dev/null
+++ b/tex/presentation/main.tex
@@ -0,0 +1,290 @@
+\documentclass{beamer}
+
+\usetheme{Hannover}
+\usepackage{amsmath,stmaryrd,listings}
+
+\title{{\bf Static Analysis \\ through \\Abstract Interpretation, \\Convex Optimization, and\\ Strategy Iteration}}
+
+\author{
+ {\bf Thomas Martin Gawlitza}
+ \\[3pt]
+ joint work with
+ \\[3pt]
+ {\bf Helmut Seidl}
+}
+
+\newcommand\N{\mathbb{N}}
+\newcommand\Z{\mathbb{Z}}
+\newcommand\CZ{\overline{\Z}}
+
+\let\max\undefined
+\newcommand\max{\lor}
+\let\min\undefined
+\newcommand\min{\land}
+
+\begin{document}
+
+\begin{frame}
+ \maketitle
+\end{frame}
+
+\begin{frame}
+ \tableofcontents
+\end{frame}
+
+\section{Example}
+\begin{frame}{Example}
+ \begin{eqnarray*}
+ x_1 &=& 0 \max (-1 + x_1 \min x_2) \\
+ x_2 &=& 0 \max 5 + x_1 \max x_1 \\
+ x_3 &=& 0 \max 1 + x_3 \max 0 + x_1
+ \end{eqnarray*}
+
+\end{frame}
+
+\section{Definitions}
+\begin{frame}{Preliminary Definitions}
+ \begin{center}
+ Strange notation: \\
+ $x \max y = \text{max}(x, y)$ \\
+ $x \min y = \text{min}(x, y)$ \\
+ \uncover<2->{
+ \bigskip
+ {\bf Monotone:} $x \leq y \implies f(x) \leq f(y) ~~ \forall x,y$
+ }
+
+ \uncover<3->{
+ \bigskip
+ {\bf Assignment:} $\rho$ is always a variable assignment (from $X \rightarrow \CZ$)
+ }
+ \end{center}
+\end{frame}
+
+\begin{frame}{Systems of Equations}
+ \begin{align*}
+ \varepsilon = \{ x_1 = e_1, x_2 = e_2, ... x_n = e_n \}
+ \end{align*}
+ \uncover<2->{
+ \begin{align*}
+ \text{\bf Solutions: } & \rho = \llbracket \varepsilon \rrbracket \rho \\
+ \text{\bf Presolutions: } & \rho \leq \llbracket \varepsilon \rrbracket \rho \\
+ \text{\bf Fixpoint: } & f(x) = x \\
+ \text{\bf Least fixpoint: } & \mu f \\
+ \end{align*}
+ }
+ \uncover<3->{
+ {\bf Evaluation:}
+ $\text{with } \rho ~ \epsilon ~ Vars(\varepsilon) \rightarrow \CZ$ \\
+ \begin{align*}
+ (\llbracket \varepsilon \rrbracket \rho)(x) & := \llbracket e \rrbracket \rho \\
+ \llbracket x \rrbracket \rho & := \rho (x) \\
+ \llbracket f(e_1, ... e_k) \rrbracket & := f(\llbracket e_1 \rrbracket \rho,
+ ... \llbracket e_k \rrbracket \rho)
+ \end{align*}
+ }
+\end{frame}
+
+\begin{frame}{Operators on $\CZ$}
+ Working in $\CZ = \Z \cup \{\infty, -\infty\}$
+
+ \bigskip
+ \begin{displaymath}
+ x +^{-\infty} y = \left\{ \begin{array}{ll}
+ -\infty & \text{if } -\infty \in \{x,y\} \\
+ \infty & \text{if } -\infty \not\in \{x,y\} \text{ and } \infty \in \{x,y\} \\
+ x + y & \text{if } x,y \in \Z \\
+ \end{array} \right.
+ \end{displaymath}
+ \begin{displaymath}
+ x +^{\infty} y = \left\{ \begin{array}{ll}
+ \infty & \text{if } \infty \in \{x,y\} \\
+ -\infty & \text{if } \infty \not\in \{x,y\} \text{ and } -\infty \in \{x,y\} \\
+ x + y & \text{if } x,y \in \Z \\
+ \end{array} \right.
+ \end{displaymath}
+ \begin{displaymath}
+ \begin{array}{lr}
+ x \cdot \infty = \infty \cdot x = \infty,
+ x \cdot -\infty = -\infty \cdot x = -\infty
+ & \forall x > 0 \\
+ x \cdot \infty = \infty \cdot x = -\infty,
+ x \cdot -\infty = -\infty \cdot x = \infty
+ & \forall x < 0 \\
+ 0 \cdot \infty = \infty \cdot 0 =
+ 0 \cdot -\infty = -\infty \cdot 0 = 0 &
+ \end{array}
+ \end{displaymath}
+\end{frame}
+
+\begin{frame}{Expansivity}
+ $f$ is upward-expansive in $X'$ iff
+
+ \bigskip
+ \begin{center}
+ $f(\rho \oplus \{x \mapsto \rho(x) + \delta\}) \geq f(\rho) + \delta)$
+ ~~ $\forall x \in X', \rho \in X \rightarrow \CZ, \delta \in \N$
+ \end{center}
+\end{frame}
+
+\section{Max-strategies}
+\begin{frame}{Max-strategies}
+ Assume for every $x = e \in \varepsilon$, $e$ is of the
+ form $e_1 \max e_2 \max ... \max e_k$.
+
+ Then a $\max$-$strategy$ $\sigma$ maps each $e$ to one of its $e_k$.
+
+ \bigskip
+ For all $\max$ strategies $\sigma$ the expression $e\sigma$ is defined as:
+ \begin{align*}
+ (e_1 \max ... \max e_k)\sigma & = (\sigma(e_1 \max ... \max e_k))\sigma \\
+ (f(e_1,...e_k))\sigma & = f(e_1\sigma, ..., e_k\sigma)
+ \end{align*}
+ where $f \not = \max$
+\end{frame}
+
+\begin{frame}{Max-strategies}
+ We may need to change strategy throughout our evaluation.
+
+ Consider the system: $\varepsilon = \{x_1 = x_1 + 1 \max 0\}$.
+
+ Let:
+ \begin{align*}
+ \sigma_1 & = \{x_1 + 1 \max 0 \mapsto x_1 + 1\} \\
+ \sigma_2 & = \{x_1 + 1 \max 0 \mapsto 0\}
+ \end{align*}
+
+ \uncover<2->{
+ This gives us:
+ }
+ \begin{align*}
+ \uncover<2->{
+ \mu \llbracket \varepsilon (\sigma_1) \rrbracket & = \{x_1 \mapsto -\infty\} \\
+ \mu \llbracket \varepsilon (\sigma_2) \rrbracket & = \{x_1 \mapsto 0\} \\
+ }
+ \uncover<3->{
+ \mu \llbracket \varepsilon \rrbracket & = \{x_1 \mapsto \infty\}
+ }
+ \end{align*}
+\end{frame}
+
+\section{Bellman-Ford}
+\begin{frame}{BF-functions}
+ $X$ a set. A monotone $f: (X \rightarrow \CZ) \rightarrow CZ$ is called
+ a \emph{Bellman-Ford function} iff, $\forall \rho, \rho': X \rightarrow \CZ$
+ with $\rho' \geq \rho$ the following holds:
+
+ \bigskip
+ If $f(\rho') > f(\rho)$ then $\exists x \in X$ and some $\delta \in \CZ\setminus\{-\infty\}$ such that:
+ \begin{align*}
+ \rho'(x) & > \rho(x) \\
+ f(\rho') & = \rho'(x) + \delta \\
+ f(\rho'') & \geq \rho''(x) + \delta ~~ \forall \rho'' \geq \rho'
+ \end{align*}
+\end{frame}
+
+\begin{frame}{A quick lemma}
+ Let $\varepsilon$ be a system of \emph{BF-equations} with $n$ variables. \\
+ Let $\rho^{(i)} = \llbracket\varepsilon\rrbracket^i(\_ \mapsto -\infty) ~~ \forall i \in \N$. \\
+ The following holds for every $x \in Vars(\varepsilon)$: \\
+ If there exists some $k > n$ with $\rho^{(k)}(x) > \rho^{(n)}(x)$, then
+ $\mu\llbracket\varepsilon\rrbracket(x) = \infty$.
+\end{frame}
+
+\begin{frame}{The algorithm}
+ ~ \\
+ {\bf Input:} A system of BF-equations with $n$ variables \\
+ {\bf Output:} The least solution $\mu\llbracket\varepsilon\rrbracket$ of \varepsilon \\
+ \begin{displaymath}
+ ~ \\
+ \rho \leftarrow (\_ \mapsto -\infty) \\
+ {\bf for} i = 1 {\bf to} n {\bf do} \rho \leftarrow \llbracket\varepsilon\rrbracket\rho \\
+ \rho \leftarrow \rho' \text{ where } \rho'(x) = \left\{ \begin{array}{ll}
+ \rho(x) & \text{if } (\llbracket\varepsilon\rrbracket\rho)(x) \leq \rho(x) \\
+ \infty & \text{if } (\llbracket\varepsilon\rrbracket\rho)(x) > \rho(x)
+ \end{array} \right. \forall x \in X \\
+ {\bf for} i = 1 {\bf to} n-1 {\bf do} \rho \leftarrow \rho \max \llbracket\varepsilon\rrbracket\rho \\
+ {\bf return} \rho \\
+ ~
+ \end{displaymath}
+\end{frame}
+
+\begin{frame}{Example}
+ \begin{align*}
+ x & = 1 \\
+ y & = y + x \max -10 \\
+ z & = x \cdot^+ y
+ \end{align*}
+ Where $\cdot^+$ is defined by:
+ \begin{displaymath}
+ x \cdot^+ y = \left\{ \begin{array}{l l}
+ x \cdot y & \text{if } x, y > 0 \\
+ -\infty & \text{if } x \le 0 \text{ or } y \le 0
+ \end{array} \forall x,y \in \CZ
+ \end{displaymath}
+\end{frame}
+
+\section{Max-strategy improvement}
+\begin{frame}{Max-strategy improvement}
+ {\bf General idea:}
+ \begin{itemize}
+ \item Pick a max-strategy
+ \item Perform fixpoint iteration
+ \item Improve strategy
+ \item Repeat until we have a solution
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{What is an improvement?}
+ If we have $\varepsilon$ a system of equations, $\sigma$ a $\max$-strategy
+ for $\varepsilon$ and $\rho$ a presolution of $\varepsilon(\sigma)$, then we
+ call a $\max$-strategy $\sigma'$ is called an improvement of $\sigma$ with
+ respect to $\rho$ iff:
+ \begin{itemize}
+ \item if $\rho \not \in {\bf Sol}(\varepsilon)$, then $\llbracket\varepsilon(\sigma')\rrbracket\rho > \rho$
+ \item for all $\max$-expression $e \in S_{\max}(\varepsilon)$ the following holds: \\
+ If $\sigma'(e) \not = \sigma(e)$, then $\llbracket e\sigma'\rrbracket\rho > \llbracket e\sigma\rrbracket\rho$
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{Algorithm}
+ ~ \\
+ {\bf Input:}
+ \begin{itemize}
+ \item A system $\varepsilon$ of monotone equations over a complete linearly ordered set \\
+ \item A $\max$-strategy $\sigma_{init}$ for $\varepsilon$ \\
+ \item A pre-solution $\rho_{init}$ of $\varepsilon(\sigma_{init})$ with $\rho_{init} \le \mu\llbracket\varepsilon\rrbracket$
+ \end{itemize}
+ {\bf Output:} The least solution $\mu\llbracket\varepsilon\rrbracket$ of $\varepsilon$
+ \begin{displaymath}
+ ~ \\
+ \sigma \leftarrow \sigma_{init} \\
+ \rho \leftarrow \rho_{init} \\
+ \text{while }(\rho \not \in {\bf Sol}(\varepsilon)) \{ \\
+ ~~~~ \sigma \leftarrow P_{\max}(\sigma, \rho) \\
+ ~~~~ \rho \leftarrow \mu_{\ge\rho} \llbracket\varepsilon(\sigma)\rrbracket \\
+ \} \\
+ {\bf return} \rho
+ ~
+ \end{displaymath}
+\end{frame}
+
+\begin{frame}{Another related lemma}
+ Whenever the $\max$-strategy improvement algorithm terminates, it
+ returns the least solution $\mu\llbracket\varepsilon\rrbracket$.
+\end{frame}
+
+\begin{frame}{Example}
+ \begin{align*}
+ x_1 & = 0 \max x_1 + x_2 - 4 \\
+ x_2 & = -1 \max ((x_1 + 1 \max 2 \cdot x_2) \min 5)
+ \end{align*}
+\end{frame}
+
+\section{Feasibility}
+
+\section{Extended Integer Equations}
+
+\section{Abstract Interpretation over Zones}
+
+
+\end{document}