slides/src/slides.tex
author Eugen Sawin <sawine@me73.com>
Fri, 22 Jul 2011 01:22:59 +0200
changeset 66 c03845978e24
parent 65 befbd30f5d21
child 67 46709047b260
permissions -rw-r--r--
Notes.
     1 \documentclass[9pt]{beamer}
     2 \usetheme{Boadilla}
     3 \usecolortheme{dove}
     4 \usecolortheme{orchid}
     5 \usecolortheme{dolphin}
     6 %\usecolortheme{seagull}
     7 
     8 \usepackage{amsmath, amsthm, amssymb, amsfonts, verbatim}
     9 \usepackage{pifont}
    10 \usepackage{xcolor}
    11 \usepackage{ulem}
    12 \usepackage{graphics}
    13 \usepackage{tikz}
    14 \usetikzlibrary{automata}
    15 \usepackage{subfigure}
    16 
    17 \renewcommand{\emph}{\textit}
    18 \renewcommand{\em}{\it}
    19 
    20 \newcommand{\cross}{\ding{55}}
    21 \newcommand{\M}{\mathcal{M}}
    22 \newcommand{\N}{\mathbb{N}_0}
    23 \newcommand{\F}{\mathcal{F}}
    24 \newcommand{\Fs}{\mathbb{F}}
    25 \newcommand{\Prop}{\mathcal{P}}
    26 \newcommand{\A}{\mathcal{A}}
    27 \newcommand{\X}{\mathcal{X}}
    28 \newcommand{\U}{\mathcal{U}}
    29 \newcommand{\V}{\mathcal{V}}
    30 \newcommand{\dnf}{\mathsf{dnf}}
    31 \newcommand{\consq}{\mathsf{consq}}
    32 
    33 \theoremstyle{definition} %plain, definition, remark, proof, corollary
    34 \newtheorem*{def:finite words}{Finite words}
    35 \newtheorem*{def:infinite words}{Infinite words}
    36 \newtheorem*{def:regular languages}{Regular languages}
    37 \newtheorem*{def:regular languages closure}{Regular closure}
    38 \newtheorem*{def:omega regular languages}{$\omega$-regular languages}
    39 \newtheorem*{def:omega regular languages closure}{$\omega$-regular closure}
    40 \newtheorem*{def:buechi automata}{Automaton}
    41 \newtheorem*{def:automata runs}{Run}
    42 \newtheorem*{def:inf}{Infinite occurrences}
    43 \newtheorem*{def:automata acceptance}{Acceptance}
    44 \newtheorem*{def:automata language}{Recognised language}
    45 \newtheorem*{def:general automata}{Generalised automaton}
    46 \newtheorem*{def:general acceptance}{Acceptance}
    47 \newtheorem*{def:syntax}{Syntax}
    48 
    49 
    50 \newtheorem*{def:vocabulary}{Vocabulary}
    51 \newtheorem*{def:frames}{Frame}
    52 \newtheorem*{def:models}{Model}
    53 \newtheorem*{def:satisfiability}{Satisfiability}
    54 \newtheorem*{def:fs closure}{Closure}
    55 \newtheorem*{def:atoms}{Atoms}
    56 \newtheorem*{def:rep function}{Representation function}
    57 \newtheorem*{def:next}{Next function}
    58 \newtheorem*{def:dnf}{Disjunctive normal form}
    59 \newtheorem*{def:positive formulae}{Positive formulae}
    60 \newtheorem*{def:consq}{Logical consequences}
    61 \newtheorem*{def:partial automata}{Partial automata}
    62 
    63 \theoremstyle{plain}
    64 \newtheorem{prop:vocabulary sat}{Proposition}[section]
    65 \newtheorem{prop:general equiv}{Proposition}[section]
    66 \newtheorem{prop:computation set=language}{Proposition}[section]
    67 
    68 \theoremstyle{plain}
    69 \newtheorem{thm:model language}{Theorem}[section]
    70 \newtheorem{cor:mod=model language}{Corollary}[thm:model language]
    71 \newtheorem{cor:mod=program language}[cor:mod=model language]{Corollary}
    72 \newtheorem{thm:model checking}{Theorem}[section]
    73 \newtheorem{lem:dnf}{Lemma}[section]
    74 \newtheorem{lem:consq}[lem:dnf]{Lemma}
    75 
    76 \title[Algorithmic Verification]{Algorithmic Verification of Reactive Systems}
    77 \author{Eugen Sawin}
    78 \institute[University of Freiburg]
    79 { 
    80   Research Group for Foundations in Artificial Intelligence\\
    81   Computer Science Department\\
    82   University of Freiburg
    83 }
    84 \date[SS 2011]{Seminar: Automata Constructions in Model Checking}
    85 \subject{Model Checking}
    86 
    87 \begin{document}
    88 \frame{\titlepage}
    89 
    90 \begin{frame}
    91 \frametitle{Motivation}
    92 \framesubtitle{Model Checking}
    93 \begin{center}
    94 %\only<1>{\colorbox{black}{\makebox(35,10){\color{white} $\M \models \varphi$}}}
    95 \only<1>{\[\M \models \varphi\]}
    96 \only<2->{Given a program $P$ and specification $\varphi$:\\
    97 \colorbox{black}{\makebox(150,10){\color{white} does every run of $P$ satisfy $\varphi$?}}}
    98 \end{center}
    99 \end{frame}
   100 
   101 \begin{frame}
   102 \frametitle{Motivation}
   103 \begin{figure}
   104 \centering
   105 \subfigure{\includegraphics[width=100pt,height=70pt]{images/intel.jpg}}
   106 \subfigure{\includegraphics[width=100pt,height=70pt]{images/airbag.jpg}}
   107 \subfigure{\includegraphics[width=100pt,height=70pt]{images/atc.jpg}}
   108 \end{figure}
   109 \end{frame}
   110 
   111 \begin{frame}
   112 \frametitle{Infinity}
   113 \framesubtitle{Word as function}
   114 \begin{figure}
   115 \centering
   116 \begin{tikzpicture}[shorten >=1pt, node distance=1.5cm, semithick, >=stealth   
   117     ,accepting/.style={fill, gray!50!black, text=white}]
   118 \node[state, initial, initial text=] (s_0) {$a$};
   119 \node[state] (s_1) [right of= s_0] {$b$};
   120 \node[state] (s_2) [right of= s_1] {$a$};
   121 \node[state] (s_i) [right of= s_2] {$a$};
   122 \path[->] 
   123 (s_0) edge node {} (s_1) 
   124 (s_1) edge node {} (s_2);
   125 \path[dashed,->] 
   126 (s_2) edge node {} (s_i); 
   127 \end{tikzpicture}
   128 \end{figure}
   129 \end{frame}
   130 
   131 \begin{frame}
   132 \frametitle{Automata}
   133 \framesubtitle{Example 1/2}
   134 \begin{figure}
   135 \centering
   136 \only<-3>{
   137 \begin{tikzpicture}[shorten >=1pt, node distance=2cm, auto, semithick, >=stealth
   138     %every state/.style={fill, draw=none, gray, text=white},
   139     ,accepting/.style={fill, gray!50!black, text=white}
   140     %initial/.style ={gray, text=white}]%,  thick]
   141     ]
   142 \node[state,initial, initial text=] (q_0) {$q_0$};
   143 \node[state] (q_1) [above right of= q_0] {$q_1$};
   144 \node[state,accepting](q_2) [below right of= q_1] {$q_2$};
   145 \path[->] 
   146 (q_0) edge node {$a$} (q_1)
   147   edge [loop above] node {$b$} ()
   148 (q_1) edge node {$b$} (q_2)
   149   edge [loop above] node {$a$} ()
   150 (q_2) %edge node {$a$} (q_1)
   151   edge node {$b$} (q_0);
   152 \draw[->] (q_2) .. controls +(up:1cm) and +(right:1cm) .. node[above] {$a$} (q_1);
   153 \end{tikzpicture}\\
   154 \vspace{10pt}
   155 \visible<2-3>{$w_1 = \overline{bbaa} \implies \rho_1 = q_0q_0\overline{q_0q_1q_1q_2}$}\\
   156 \visible<3>{$w_2 = bb\overline{ab} \implies \rho_2 = q_0q_0\overline{q_1q_2}$}\\
   157 \vspace{10pt}
   158 \visible<4>{Accepts all inputs with infinite occurrences of $ab$.}
   159 }
   160 
   161 \only<4>{
   162 \begin{tikzpicture}[shorten >=1pt, node distance=2cm, auto, semithick, >=stealth
   163     %every state/.style={fill, draw=none, gray, text=white},
   164     ,accepting/.style={fill, gray!50!black, text=white}
   165     %initial/.style ={gray, text=white}]%,  thick]
   166     ]
   167 \node[state,initial, initial text=] (q_0) {$q_0$};
   168 \node[state] (q_1) [above right of= q_0] {$q_1$};
   169 \node[state,accepting](q_2) [below right of= q_1] {$q_2$};
   170 \path[->] 
   171 (q_0) 
   172   edge [loop above] node {$b$} ()
   173 (q_1) 
   174   edge [loop above] node {$a$} ()
   175 (q_2) %edge node {$a$} (q_1)
   176   edge node {$b$} (q_0);
   177 \color{green}
   178 \path[->] 
   179 (q_0) edge node {$a$} (q_1) 
   180 (q_1) edge node {$b$} (q_2);
   181 \draw[->] (q_2) .. controls +(up:1cm) and +(right:1cm) .. node[above] {$a$} (q_1);
   182 \end{tikzpicture}\\
   183 \color{black}
   184 \vspace{10pt}
   185 \visible<2->{$w_1 = \overline{\textcolor{green}{b}ba\textcolor{green}{a}} \implies \rho_1 = q_0q_0\overline{q_0q_1q_1\textcolor{green}{q_2}}$}\\
   186 \visible<3->{$w_2 = bb\overline{\textcolor{green}{ab}} \implies \rho_2 = q_0q_0\overline{q_1\textcolor{green}{q_2}}$}\\
   187 \vspace{10pt}
   188 \visible<4>{Accepts all inputs with infinite occurrences of $ab$.}
   189 }
   190 %Automaton $\A_1$
   191 \end{figure}
   192 \end{frame}
   193 
   194 \begin{frame}
   195 \frametitle{Automata}
   196 \framesubtitle{Example 2/2 (Complement)}
   197 \begin{figure}
   198 \centering
   199 \only<1>{
   200   \subfigure
   201             {
   202               \begin{tikzpicture}[shorten >=1pt, node distance=2cm, auto, semithick, >=stealth
   203                   %every state/.style={fill, draw=none, gray, text=white},
   204                   ,accepting/.style={fill, gray!50!black, text=white}
   205                   %initial/.style ={gray, text=white}]%,  thick]
   206                 ]
   207                 \node[state,initial, initial text=, accepting] (q_0) {$q_0$};
   208                 \node[state, accepting] (q_1) [above right of= q_0] {$q_1$};
   209                 \node[state](q_2) [below right of= q_1] {$q_2$};
   210                 \path[->] 
   211                 (q_0) edge node {$a$} (q_1)
   212                 edge [loop above] node {$b$} ()
   213                 (q_1) edge node {$b$} (q_2)
   214                 edge [loop above] node {$a$} ()
   215                 (q_2) %edge node {$a$} (q_1)
   216                 edge node {$b$} (q_0);
   217                 \draw[->] (q_2) .. controls +(up:1cm) and +(right:1cm) .. node[above] {$a$} (q_1);
   218               \end{tikzpicture}
   219             }
   220 }
   221 \only<2>{ 
   222   \subfigure
   223             {
   224               \begin{tikzpicture}[shorten >=1pt, node distance=2cm, auto, semithick, >=stealth
   225                   %every state/.style={fill, draw=none, gray, text=white},
   226                   ,accepting/.style={fill, gray!50!black, text=white}
   227                   %initial/.style ={gray, text=white}]%,  thick]
   228                 ]
   229                 \node[state,initial, initial text=, accepting] (q_0) {$q_0$};
   230                 \node[state, accepting] (q_1) [above right of= q_0] {$q_1$};
   231                 \node[state](q_2) [below right of= q_1] {$q_2$};
   232                 \path[->] 
   233                 (q_0) 
   234                 edge [loop above] node {$b$} ()
   235                 (q_1) 
   236                 edge [loop above] node {$a$} ();                
   237                 \color{red}  
   238                 \path[->] 
   239                 (q_0) edge node {$a$} (q_1)
   240                 (q_1) edge node {$b$} (q_2)
   241                 (q_2) edge node {$b$} (q_0);  
   242                 \draw[->] (q_2) .. controls +(up:1cm) and +(right:1cm) .. node[above] {$a$} (q_1);              
   243               \end{tikzpicture}  \color{red}  
   244             }
   245  \color{black}
   246 }
   247 \only<3->{ \setcounter{subfigure}{0} 
   248   \subfigure[Complement automaton \cross]
   249             {
   250               \begin{tikzpicture}[shorten >=1pt, node distance=2cm, auto, semithick, >=stealth
   251                   %every state/.style={fill, draw=none, gray, text=white},
   252                   ,accepting/.style={fill, gray!50!black, text=white}
   253                   %initial/.style ={gray, text=white}]%,  thick]
   254                 ]
   255                 \node[state,initial, initial text=, accepting] (q_0) {$q_0$};
   256                 \node[state, accepting] (q_1) [above right of= q_0] {$q_1$};
   257                 \node[state](q_2) [below right of= q_1] {$q_2$};
   258                 \path[->] 
   259                 (q_0) 
   260                 edge [loop above] node {$b$} ()
   261                 (q_1) 
   262                 edge [loop above] node {$a$} ();                
   263                 \path[->] 
   264                 (q_0) edge node {$a$} (q_1)
   265                 (q_1) edge node {$b$} (q_2)
   266                 (q_2) edge node {$b$} (q_0);  
   267                 \draw[->] (q_2) .. controls +(up:1cm) and +(right:1cm) .. node[above] {$a$} (q_1);              
   268               \end{tikzpicture}  \color{red}  
   269             }
   270  \color{black}
   271 }
   272 %\hspace{10pt}
   273 \visible<3->{
   274   \subfigure[Complement automaton \checkmark]
   275             {
   276               \label{fig:complement automaton}
   277               \begin{tikzpicture}[shorten >=1pt, node distance=2cm, auto, semithick, >=stealth   
   278                   ,accepting/.style={fill, gray!50!black, text=white}]
   279                 \node[state, initial, initial text=] (q_0) {$q_0$};
   280                 \node[state, accepting] (q_1) [above right of= q_0] {$q_1$};
   281                 \node[state, accepting](q_2) [below right of= q_1] {$q_2$};
   282                 \path[->] 
   283                 (q_0) edge node {$a$} (q_1)
   284                 edge node {$b$} (q_2)
   285                 edge [loop above] node {$a, b$} ()
   286                 (q_1) edge [loop above] node {$a$} ()
   287                 (q_2) 
   288                 edge [loop above] node {$b$} ();
   289               \end{tikzpicture}\color{green}  
   290             }\\
   291 \color{black}  
   292 \vspace{20pt}
   293 Accepts all inputs with finite many $ab$.
   294 }
   295 %\caption{Automata from Example \ref{ex:automaton}}
   296 \end{figure}
   297 \end{frame}
   298 \color{black}  
   299 
   300 \begin{frame}
   301 \frametitle{Automata}
   302 \framesubtitle{Definition}
   303 \begin{def:buechi automata}
   304 A non-deterministic B\"uchi automaton is a tuple $\A = (\Sigma, S, S_0, \Delta, F)$ with:
   305 \begin{itemize}
   306 \item $\Sigma$ is a finite \emph{alphabet}.
   307 \item $S$ is a finite set of \emph{states}.
   308 \item $S_0 \subseteq S$ is the set of \emph{initial states}.
   309 \item $\Delta: S \times \Sigma \times S$ is a \emph{transition relation}.
   310 \item $F \subseteq S$ is the set of \emph{accepting states}.
   311 \end{itemize}
   312 \end{def:buechi automata}
   313 \end{frame}
   314 
   315 \begin{frame}
   316 \frametitle{Automata}
   317 \framesubtitle{Runs}
   318 \begin{def:automata runs}
   319 Let $\A = (\Sigma, S, S_0, \Delta, F)$ be an automaton:
   320 \begin{itemize}
   321 \item A run $\rho$ of $\A$ on an infinite word $w = a_0,a_1,...$ is a sequence $\rho = s_0,s_1,...$:
   322 \begin{itemize}
   323 \item $s_0 \in S_0$.
   324 \item $(s_i, a_i, s_{i+1}) \in \Delta$, for all $i \geq 0$.
   325 \end{itemize}
   326 \item Alternative view of a run $\rho$ as a function $\rho : \N \to S$, with $\rho(i) = s_i$.
   327 \end{itemize}
   328 \end{def:automata runs}
   329 \visible<2->{\[w_1 = \overline{\textcolor{green}{b}ba\textcolor{green}{a}} \implies \rho_1 = q_0q_0\overline{q_0q_1q_1\textcolor{green}{q_2}}\]
   330 \[w_2 = bb\overline{\textcolor{green}{ab}} \implies \rho_2 = q_0q_0\overline{q_1\textcolor{green}{q_2}}\]}
   331 \end{frame}
   332 
   333 \begin{frame}
   334 \frametitle{Automata}
   335 \framesubtitle{Acceptance}
   336 \begin{def:inf}
   337 Let $\A = (\Sigma, S, S_0, \Delta, F)$ be an automaton and let $\rho$ be a run of $\A$:
   338 \begin{itemize}
   339 \item $\exists^\omega$ denotes the existential quantifier for \emph{infinitely} many occurrences.
   340 \item $inf(\rho) = \{s \in S \mid \exists^\omega{n \in \N}: \rho(n) = s\}$.
   341 \end{itemize}
   342 \end{def:inf}
   343 
   344 \begin{def:automata acceptance}
   345 Let $\A = (\Sigma, S, S_0, \Delta, F)$ be an automaton and let $\rho$ be a run of $\A$:
   346 \begin{itemize}
   347 \item $\rho$ is \emph{accepting} iff $inf(\rho) \cap F \neq \emptyset$.
   348 \item $\A$ \emph{accepts} an input word $w$ iff there exists a run $\rho$ of $\A$ on $w$, such that $\rho$ is accepting. 
   349 \end{itemize}
   350 \end{def:automata acceptance}
   351 \end{frame}
   352 
   353 \begin{frame}
   354 \frametitle{Automata}
   355 \framesubtitle{Language}
   356 \begin{def:automata language}
   357 Let $\A = (\Sigma, S, S_0, \Delta, F)$ be an automaton:
   358 \begin{itemize}
   359 \item $L_\omega(\A) = \{w \in \Sigma^\omega \mid \A \text{ accepts } w\}$, we say $\A$ recognises language $L_\omega(\A)$.
   360 \item Language $L$ is \emph{B\"uchi-recognisable} iff there is an automaton $\A$ with $L = L_\omega(\A)$.
   361 \end{itemize}
   362 \end{def:automata language}
   363 \end{frame}
   364 
   365 \begin{frame}
   366 \frametitle{Generalised Automata}
   367 \begin{def:general automata}
   368 A \emph{generalised B\"uchi automaton} is a tuple $\A_G = (\Sigma, S, S_0, \Delta, \{F_i\}_{i<k})$:
   369 \begin{itemize}
   370 \item $\{F_i\}$ is a finite set of sets for a given $k$.
   371 \item Each $F_i \subseteq S$ is a finite set of accepting states.
   372 \end{itemize}
   373 \end{def:general automata}
   374 
   375 \begin{def:general acceptance}
   376 Let $\A_G = (\Sigma, S, S_0, \Delta, \{F_i\}_{i<k})$ be a generalised automaton and let $\rho$ be a run of $\A_G$:
   377 \begin{itemize}
   378 \item $\rho$ is \emph{accepting} iff $\forall{i < k}: inf(\rho) \cap F_i \neq \emptyset$.
   379 \item $\A_G$ \emph{accepts} an input word $w$ iff there exists a run $\rho$ of $\A_G$ on $w$, such that $\rho$ is accepting. 
   380 \end{itemize} 
   381 \end{def:general acceptance}
   382 
   383 \begin{prop:general equiv}
   384 Let $\A_G = (\Sigma, S, S_0, \Delta, \{F_i\}_{i < k})$ be a generalised automaton and let $\A_i = (\Sigma, S, S_0, \Delta, F_i)$ be non-deterministic automata:
   385 \[L_\omega(\A_G) = \bigcap_{i < k} L_\omega(\A_i)\]
   386 \end{prop:general equiv}
   387 \end{frame}
   388 
   389 {
   390 \setbeamercolor{normal text}{bg=black, fg=white}
   391 \setbeamercolor{frametitle}{fg=white!30!black}
   392 \usebeamercolor*{normal text} 
   393 \usebeamercolor*{frametitle} 
   394 \begin{frame}
   395 \frametitle{Linear Temporal Logic}
   396 \framesubtitle{Motivation 1/2}
   397 \begin{center}
   398 ``It is dark.''\\
   399 \visible<2->{``It is \emph{always} dark.''\\}
   400 \visible<3->{``It is \emph{currently} dark.''\\}
   401 \visible<4->{``It will \emph{eventually} be dark.''\\}
   402 \visible<5->{``It is dark \emph{until} someone puts the light on.''}
   403 \end{center}
   404 \end{frame}
   405 }
   406 
   407 \begin{frame}
   408 \frametitle{Linear Temporal Logic}
   409 \framesubtitle{Motivation 2/2}
   410 \begin{center}
   411 \only<1->{
   412 \color{white}
   413 \colorbox{black}{\makebox(50,10){It is dark}} \colorbox{orange}{\makebox(30,10){until}} \colorbox{black!30}{\makebox(50,10){there is light}}\\
   414 \visible<2->{
   415 \colorbox{black}{\makebox(50,10){$p_0$}} \colorbox{orange}{\makebox(30,10){$\U$}} \colorbox{black!30}{\makebox(50,10){$p_1$}}}
   416 }
   417 \end{center}
   418 \end{frame}
   419 
   420 \begin{frame}
   421 \frametitle{Linear Temporal Logic}
   422 \framesubtitle{Syntax}
   423 \begin{def:syntax}
   424 Let $\Prop$ be the countable set of \emph{atomic propositions}, LTL-formulae $\varphi$ are defined using following productions:
   425 \[\varphi ::= p \in \Prop \,|\, \neg \varphi \,|\, \varphi \lor \varphi \,|\, \X \varphi \,|\, \varphi \U \varphi\]
   426 \begin{itemize}
   427 \item $\neg, \lor$ corresponds to the Boolean \emph{negation} and \emph{disjunction}.
   428 \item $\X$ reads \emph{next}.
   429 \item $\U$ reads \emph{until}.
   430 \end{itemize}
   431 \end{def:syntax}
   432 \end{frame}
   433 
   434 \begin{frame}
   435 \frametitle{Linear Temporal Logic}
   436 \framesubtitle{Semantics}
   437 \begin{def:frames}
   438 An LTL-\emph{frame} is a tuple $\F = (S, R)$:
   439 \begin{itemize}
   440 \item $S = \{s_i \mid i \in \N\}$ is the set of states.
   441 \item $R = \{(s_i, s_{i+1}) \mid i \in \N\}$ is the accessibility relation.
   442 \end{itemize} 
   443 \end{def:frames}
   444 
   445 \begin{def:models}
   446 An LTL-\emph{model} is a tuple $\M = (\F, V)$:
   447 \begin{itemize}
   448 \item $\F$ is a \emph{frame}.
   449 \item $V: S \to 2^\Prop$ is a \emph{valuation function}.
   450 \item Intuitively we say $p \in \Prop$ is \emph{true} at time instant $i$ iff $p \in V(i)$. 
   451 \end{itemize}
   452 \end{def:models}
   453 \end{frame}
   454 
   455 \begin{frame}
   456 \frametitle{Linear Temporal Logic}
   457 \framesubtitle{Model Example}
   458 \begin{figure}
   459 \centering
   460 \begin{tikzpicture}[shorten >=1pt, node distance=2.5cm, auto, semithick, >=stealth   
   461     ,accepting/.style={fill, gray!50!black, text=white}]
   462 \node[state, initial, initial text=] (s_0) {$\{p_0\}$};
   463 \path (s_0) [late options={label=below:$s_0$}];
   464 \node[state] (s_1) [right of= s_0] {$\{p_0, p_2\}$};
   465 \path (s_1) [late options={label=below:$s_1$}];
   466 \node[state] (s_2) [right of= s_1] {$\{p_1\}$};
   467 \path (s_2) [late options={label=below:$s_2$}];
   468 \node[state] (s_i) [right of= s_2] {$\{p_1\}$};
   469 \path (s_i) [late options={label=below:$s_i$}];
   470 \path[->] 
   471 (s_0) edge node {$R$} (s_1) 
   472 (s_1) edge node {$R$} (s_2);
   473 \path[dashed,->] 
   474 (s_2) edge node {$R$} (s_i); 
   475 \end{tikzpicture}
   476 \end{figure}
   477 \end{frame}
   478 
   479 \begin{frame}
   480 \frametitle{Linear Temporal Logic}
   481 \framesubtitle{Satisfiability}
   482 \begin{def:satisfiability}
   483 A model $\M = (\F, V)$ \emph{satisfies} a formula $\varphi$ at time instant $i$ is denoted by $\M,i \models \varphi$:
   484 \begin{itemize}
   485 \item $\M,i \models p$ for $p \in \Prop \iff p \in V(i)$
   486 \item $\M,i \models \neg \varphi \iff$ not $\M,i \models \varphi$
   487 \item $\M,i \models \varphi \lor \psi \iff \M,i \models \varphi$ or $\M,i \models \psi$
   488 \item $\M,i \models \X \varphi \iff \M,i+1 \models \varphi$
   489 \item $\M,i \models \varphi \U \psi \iff \exists{k \geq i}: \M,k \models \psi$ and $\forall{i \leq j < k}: \M,j \models\varphi$
   490 \end{itemize}
   491 \end{def:satisfiability}
   492 \end{frame}
   493 
   494 \begin{frame}
   495 \frametitle{Model Checking}
   496 \framesubtitle{Definition 1/2}
   497 \begin{center}
   498 %\only<1>{\colorbox{black}{\makebox(35,10){\color{white} $\M \models \varphi$}}}
   499 \only<1>{\[\M \models \varphi\]}
   500 \only<2->{Given a program $P$ and specification $\varphi$:\\
   501 \colorbox{black}{\makebox(150,10){\color{white} does every run of $P$ satisfy $\varphi$?}}}
   502 \end{center}
   503 \end{frame}
   504 
   505 \begin{frame}
   506 \frametitle{Model Checking}
   507 \framesubtitle{Definition 2/2}
   508 \begin{thm:model checking}
   509 \label{thm:model checking}
   510 Let $\A_P$ be the automaton for program $P$ and let $\A_\varphi$ be the automaton for formula $\varphi$.\\
   511 P satisfies $\varphi$ iff:
   512 \begin{itemize}
   513 \item $L_\omega(\A_P) \subseteq L_\omega(\A_\varphi)$.
   514 \item $L_\omega(\A_P) \cap L_\omega(\A_{\neg \varphi}) = \emptyset$.
   515 \end{itemize}
   516 \end{thm:model checking}
   517 \end{frame}
   518 
   519 \begin{frame}
   520 \frametitle{On-the-fly Methods}
   521 \framesubtitle{A bit more information about this}
   522 
   523 \end{frame}
   524 
   525 \begin{frame}[allowframebreaks]
   526 \frametitle<presentation>{Literature}    
   527 \begin{thebibliography}{10}    
   528 
   529 \beamertemplatearticlebibitems
   530 \bibitem{ref:ltl&büchi}
   531 Madhavan Mukund.
   532 \newblock {\em Linear-Time Temporal Logic and B\"uchi Automata}.
   533 \newblock Winter School on Logic and Computer Science, Indian Statistical Institute, Calcutta, 1997.
   534   
   535 \beamertemplatearticlebibitems
   536 \bibitem{ref:alternating verification}
   537 Moshe Y. Vardi.
   538 \newblock {\em Alternating Automata and Program Verification}.
   539 \newblock Computer Science Today, Volume 1000 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, 1995.
   540 
   541 \beamertemplatebookbibitems
   542 \bibitem{ref:handbook}
   543 Patrick Blackburn and Frank Wolter and Johan van Benthem.
   544 \newblock {\em Handbook of Modal Logic}.
   545 \newblock 3rd Edition, Elsevier, Amsterdam, Chapter 11 P. 655-720 and Chapter 17 P. 975-989, 2007.
   546 
   547 \end{thebibliography}
   548 \end{frame}
   549 
   550 \end{document}