Final.
1 \documentclass[9pt]{beamer}
5 \usecolortheme{dolphin}
6 %\usecolortheme{seagull}
8 \usepackage{amsmath, amsthm, amssymb, amsfonts, verbatim}
15 \usetikzlibrary{automata}
16 \usepackage{subfigure}
18 \renewcommand{\emph}{\textit}
19 \renewcommand{\em}{\it}
21 \newcommand{\cross}{\ding{55}}
22 \newcommand{\M}{\mathcal{M}}
23 \newcommand{\N}{\mathbb{N}_0}
24 \newcommand{\F}{\mathcal{F}}
25 \newcommand{\Fs}{\mathbb{F}}
26 \newcommand{\Prop}{\mathcal{P}}
27 \newcommand{\A}{\mathcal{A}}
28 \newcommand{\X}{\mathcal{X}}
29 \newcommand{\U}{\mathcal{U}}
30 \newcommand{\V}{\mathcal{V}}
31 \newcommand{\dnf}{\mathsf{dnf}}
32 \newcommand{\consq}{\mathsf{consq}}
34 \theoremstyle{definition} %plain, definition, remark, proof, corollary
35 \newtheorem*{def:finite words}{Finite words}
36 \newtheorem*{def:infinite words}{Infinite words}
37 \newtheorem*{def:regular languages}{Regular languages}
38 \newtheorem*{def:regular languages closure}{Regular closure}
39 \newtheorem*{def:omega regular languages}{$\omega$-regular languages}
40 \newtheorem*{def:omega regular languages closure}{$\omega$-regular closure}
41 \newtheorem*{def:buechi automata}{Automaton}
42 \newtheorem*{def:automata runs}{Run}
43 \newtheorem*{def:inf}{Infinite occurrences}
44 \newtheorem*{def:automata acceptance}{Acceptance}
45 \newtheorem*{def:automata language}{Recognised language}
46 \newtheorem*{def:general automata}{Generalised automaton}
47 \newtheorem*{def:general acceptance}{Acceptance}
48 \newtheorem*{def:syntax}{Syntax}
49 \newtheorem*{def:derived syntax}{Derived connectives}
50 \newtheorem*{def:program}{Program}
51 \newtheorem*{def:program automaton}{System automaton}
53 \newtheorem*{def:vocabulary}{Vocabulary}
54 \newtheorem*{def:frames}{Frame}
55 \newtheorem*{def:models}{Model}
56 \newtheorem*{def:satisfiability}{Satisfiability}
57 \newtheorem*{def:fs closure}{Closure}
58 \newtheorem*{def:atoms}{Atoms}
59 \newtheorem*{def:rep function}{Representation function}
60 \newtheorem*{def:next}{Next function}
61 \newtheorem*{def:dnf}{Disjunctive normal form}
62 \newtheorem*{def:positive formulae}{Positive formulae}
63 \newtheorem*{def:consq}{Logical consequences}
64 \newtheorem*{def:partial automata}{Partial automata}
67 \newtheorem{prop:vocabulary sat}{Proposition}[section]
68 \newtheorem{prop:general equiv}{Proposition}[section]
69 \newtheorem{prop:computation set=language}{Proposition}[section]
72 \newtheorem{thm:model language}{Theorem}[section]
73 \newtheorem{cor:mod=model language}{Corollary}[thm:model language]
74 \newtheorem{cor:mod=program language}[cor:mod=model language]{Corollary}
75 \newtheorem{thm:model checking}{Theorem}[section]
76 \newtheorem{lem:dnf}{Lemma}[section]
77 \newtheorem{lem:consq}[lem:dnf]{Lemma}
79 \title[Algorithmic Verification]{Algorithmic Verification of Reactive Systems}
81 \institute[University of Freiburg]
83 Research Group for Foundations in Artificial Intelligence\\
84 Computer Science Department\\
85 University of Freiburg
87 \date[SS 2011]{Seminar: Automata Constructions in Model Checking}
88 \subject{Model Checking}
94 \frametitle{Motivation}
95 \framesubtitle{Model Checking 1/2}
97 %\only<1>{\colorbox{black}{\makebox(35,10){\color{white} $\M \models \varphi$}}}
98 \[\M \models \varphi\]
103 \frametitle{Motivation}
104 \framesubtitle{Model Checking 2/2}
106 Given a program $P$ and specification $\varphi$:\\
107 \colorbox{black}{\makebox(150,10){\color{white} does every run of $P$ satisfy $\varphi$?}}
112 \frametitle{Motivation}
113 \framesubtitle{Industry}
117 \subfigure{\includegraphics[width=70pt,height=50pt]{images/intel.jpg}}
118 \subfigure{\includegraphics[width=70pt,height=50pt]{images/airbag.jpg}}
119 \subfigure{\includegraphics[width=70pt,height=50pt]{images/atc.jpg}}
122 \subfigure{\includegraphics[width=35pt,height=20pt]{images/sun.jpg}}
123 \subfigure{\includegraphics[width=20pt,height=20pt]{images/hp.jpg}}
124 \subfigure{\includegraphics[width=40pt,height=20pt]{images/siemens.jpg}}
125 \subfigure{\includegraphics[width=15pt,height=20pt]{images/att.jpg}}
126 %\subfigure{\includegraphics[width=20pt,height=20pt]{images/motorola.jpg}}
127 \subfigure{\includegraphics[width=20pt,height=20pt]{images/sgi.jpg}}
128 \subfigure{\includegraphics[width=25pt,height=20pt]{images/fujitsu.jpg}}
129 \subfigure{\includegraphics[width=20pt,height=18pt]{images/nec.jpg}}
130 \subfigure{\includegraphics[width=20pt,height=20pt]{images/intel2.jpg}}
131 \subfigure{\includegraphics[width=25pt,height=20pt]{images/ibm.jpg}}
137 \setbeamercolor{normal text}{bg=black, fg=white}
138 \setbeamercolor{frametitle}{fg=white!30!black}
139 \usebeamercolor*{normal text}
140 \usebeamercolor*{frametitle}
142 \frametitle{Linear Temporal Logic}
143 \framesubtitle{Natural language 1/2}
146 \visible<2->{``It is \emph{always} dark.''\\}
147 \visible<3->{``It is \emph{currently} dark.''\\}
148 \visible<4->{``It will \emph{necessarily} be dark.''\\}
149 \visible<5->{``It is dark \emph{until} someone puts the light on.''}
155 \frametitle{Linear Temporal Logic}
156 \framesubtitle{Natural language 2/2}
160 \colorbox{black}{\makebox(50,10){It is dark}} \colorbox{orange}{\makebox(30,10){until}} \colorbox{black!30}{\makebox(50,10){there is light}}\\
162 \colorbox{black}{\makebox(50,10){$p_0$}} \colorbox{orange}{\makebox(30,10){$\U$}} \colorbox{black!30}{\makebox(50,10){$p_1$}}}
168 \frametitle{Linear Temporal Logic}
169 \framesubtitle{Syntax}
171 Let $\Prop$ be the countable set of \emph{atomic propositions}, LTL-formulae $\varphi$ are defined using following productions:
172 \[\varphi ::= p \in \Prop \,|\, \neg \varphi \,|\, \varphi \lor \varphi \,|\, \X \varphi \,|\, \varphi \U \varphi\]
174 \item $\neg, \lor$ corresponds to the Boolean \emph{negation} and \emph{disjunction}.
175 \item $\X$ reads \emph{next}.
176 \item $\U$ reads \emph{until}.
181 \begin{def:derived syntax}
182 Let $\varphi$ and $\psi$ be formulae:
185 \item $\top \equiv p \lor \neg p$ for $p \in \Prop$
186 \item $\bot \equiv \neg \top$
187 \item $\varphi \land \psi \equiv \neg (\neg \varphi \lor \neg \psi)$
188 \item $\varphi \rightarrow \psi \equiv \neg \varphi \lor \psi$
189 \item $\varphi \leftrightarrow \psi \equiv (\varphi \rightarrow \psi) \land (\psi \rightarrow \varphi)$
190 \item $\Diamond \varphi \equiv \top \U \varphi$
191 \item $\Box \varphi \equiv \neg \Diamond \neg \varphi$
194 \end{def:derived syntax}
199 \frametitle{Linear Temporal Logic}
200 \framesubtitle{Semantics}
202 An LTL-\emph{frame} is a tuple $\F = (S, R)$:
204 \item $S = \{s_i \mid i \in \N\}$ is the set of states.
205 \item $R = \{(s_i, s_{i+1}) \mid i \in \N\}$ is the accessibility relation.
210 An LTL-\emph{model} is a tuple $\M = (\F, V)$:
212 \item $\F$ is a \emph{frame}.
213 \item $V: S \to 2^\Prop$ is a \emph{valuation function}.
214 \item Intuitively we say $p \in \Prop$ is \emph{true} at time instant $i$ iff $p \in V(i)$.
220 \frametitle{Linear Temporal Logic}
221 \framesubtitle{Model Example}
224 \begin{tikzpicture}[shorten >=1pt, node distance=2.5cm, auto, semithick, >=stealth
225 ,accepting/.style={fill, gray!50!black, text=white}]
226 \node[state, initial, initial text=] (s_0) {$\{p_0\}$};
227 \path (s_0) [late options={label=below:$s_0$}];
228 \node[state] (s_1) [right of= s_0] {$\{p_0, p_2\}$};
229 \path (s_1) [late options={label=below:$s_1$}];
230 \node[state] (s_2) [right of= s_1] {$\{p_1\}$};
231 \path (s_2) [late options={label=below:$s_2$}];
232 \node[state] (s_i) [right of= s_2] {$\{p_1\}$};
233 \path (s_i) [late options={label=below:$s_i$}];
235 (s_0) edge node {$R$} (s_1)
236 (s_1) edge node {$R$} (s_2);
238 (s_2) edge node {$R$} (s_i);
244 \frametitle{Linear Temporal Logic}
245 \framesubtitle{Satisfiability}
246 \begin{def:satisfiability}
247 A model $\M = (\F, V)$ \emph{satisfies} a formula $\varphi$ at time instant $i$ is denoted by $\M,i \models \varphi$:
249 \item $\M,i \models p$ for $p \in \Prop \iff p \in V(i)$
250 \item $\M,i \models \neg \varphi \iff$ not $\M,i \models \varphi$
251 \item $\M,i \models \varphi \lor \psi \iff \M,i \models \varphi$ or $\M,i \models \psi$
252 \item $\M,i \models \X \varphi \iff \M,i+1 \models \varphi$
253 \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$
255 \end{def:satisfiability}
259 \frametitle{Reactive Systems}
260 \framesubtitle{Infinite inputs}
263 \setcounter{subfigure}{0}
264 \subfigure[Terminating program]{
265 \begin{tikzpicture}[shorten >=1pt, node distance=1.5cm, semithick, >=stealth
266 ,accepting/.style={fill, gray!50!black, text=white}]
267 \node[state, initial, initial text=$input$] (p) {$P$};
268 \coordinate (b) at (1,0);
269 %\coordinate (b) at ($(a)+1/2*(3,3)$);
270 \draw (p) edge[->] node[right] {$\hspace{8pt}output$} (b);
271 %\draw[->] (p) -- (b);
275 \visible<2>{\subfigure[Reactive program]{
276 \begin{tikzpicture}[shorten >=1pt, node distance=1.5cm, semithick, >=stealth
277 ,accepting/.style={fill, gray!50!black, text=white}]
278 \node[state, initial, initial text=$event$] (p) {$RP$};
279 \coordinate (b) at (1.1,0);
280 %\coordinate (b) at ($(a)+1/2*(3,3)$);
282 (p) edge [loop right] node {$action$} ();
290 \frametitle{Automata}
291 \framesubtitle{Example 1/2}
295 \begin{tikzpicture}[shorten >=1pt, node distance=2cm, auto, semithick, >=stealth
296 %every state/.style={fill, draw=none, gray, text=white},
297 ,accepting/.style={fill, gray!50!black, text=white}
298 %initial/.style ={gray, text=white}]%, thick]
300 \node[state,initial, initial text=] (q_0) {$q_0$};
301 \node[state] (q_1) [above right of= q_0] {$q_1$};
302 \node[state,accepting](q_2) [below right of= q_1] {$q_2$};
304 (q_0) edge node {$a$} (q_1)
305 edge [loop above] node {$b$} ()
306 (q_1) edge node {$b$} (q_2)
307 edge [loop above] node {$a$} ()
308 (q_2) %edge node {$a$} (q_1)
309 edge node {$b$} (q_0);
310 \draw[->] (q_2) .. controls +(up:1cm) and +(right:1cm) .. node[above] {$a$} (q_1);
313 \visible<2-3>{$w_1 = \overline{bbaa} \implies \rho_1 = q_0q_0\overline{q_0q_1q_1q_2}$}\\
314 \visible<3>{$w_2 = bb\overline{ab} \implies \rho_2 = q_0q_0\overline{q_1q_2}$}\\
316 \visible<4>{Accepts all inputs with infinite occurrences of $ab$.}
320 \begin{tikzpicture}[shorten >=1pt, node distance=2cm, auto, semithick, >=stealth
321 %every state/.style={fill, draw=none, gray, text=white},
322 ,accepting/.style={fill, gray!50!black, text=white}
323 %initial/.style ={gray, text=white}]%, thick]
325 \node[state,initial, initial text=] (q_0) {$q_0$};
326 \node[state] (q_1) [above right of= q_0] {$q_1$};
327 \node[state,accepting](q_2) [below right of= q_1] {$q_2$};
330 edge [loop above] node {$b$} ()
332 edge [loop above] node {$a$} ()
333 (q_2) %edge node {$a$} (q_1)
334 edge node {$b$} (q_0);
337 (q_0) edge node {$a$} (q_1)
338 (q_1) edge node {$b$} (q_2);
339 \draw[->] (q_2) .. controls +(up:1cm) and +(right:1cm) .. node[above] {$a$} (q_1);
343 \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}}$}\\
344 \visible<3->{$w_2 = bb\overline{\textcolor{green}{ab}} \implies \rho_2 = q_0q_0\overline{q_1\textcolor{green}{q_2}}$}\\
346 \visible<4>{Accepts all inputs with infinite occurrences of $ab$.}
353 \frametitle{Automata}
354 \framesubtitle{Example 2/2 (Complement)}
360 \begin{tikzpicture}[shorten >=1pt, node distance=2cm, auto, semithick, >=stealth
361 %every state/.style={fill, draw=none, gray, text=white},
362 ,accepting/.style={fill, gray!50!black, text=white}
363 %initial/.style ={gray, text=white}]%, thick]
365 \node[state,initial, initial text=, accepting] (q_0) {$q_0$};
366 \node[state, accepting] (q_1) [above right of= q_0] {$q_1$};
367 \node[state](q_2) [below right of= q_1] {$q_2$};
369 (q_0) edge node {$a$} (q_1)
370 edge [loop above] node {$b$} ()
371 (q_1) edge node {$b$} (q_2)
372 edge [loop above] node {$a$} ()
373 (q_2) %edge node {$a$} (q_1)
374 edge node {$b$} (q_0);
375 \draw[->] (q_2) .. controls +(up:1cm) and +(right:1cm) .. node[above] {$a$} (q_1);
382 \begin{tikzpicture}[shorten >=1pt, node distance=2cm, auto, semithick, >=stealth
383 %every state/.style={fill, draw=none, gray, text=white},
384 ,accepting/.style={fill, gray!50!black, text=white}
385 %initial/.style ={gray, text=white}]%, thick]
387 \node[state,initial, initial text=, accepting] (q_0) {$q_0$};
388 \node[state, accepting] (q_1) [above right of= q_0] {$q_1$};
389 \node[state](q_2) [below right of= q_1] {$q_2$};
392 edge [loop above] node {$b$} ()
394 edge [loop above] node {$a$} ();
397 (q_0) edge node {$a$} (q_1)
398 (q_1) edge node {$b$} (q_2)
399 (q_2) edge node {$b$} (q_0);
400 \draw[->] (q_2) .. controls +(up:1cm) and +(right:1cm) .. node[above] {$a$} (q_1);
401 \end{tikzpicture} \color{red}
405 \only<3->{ \setcounter{subfigure}{0}
406 \subfigure[Complement automaton \cross]
408 \begin{tikzpicture}[shorten >=1pt, node distance=2cm, auto, semithick, >=stealth
409 %every state/.style={fill, draw=none, gray, text=white},
410 ,accepting/.style={fill, gray!50!black, text=white}
411 %initial/.style ={gray, text=white}]%, thick]
413 \node[state,initial, initial text=, accepting] (q_0) {$q_0$};
414 \node[state, accepting] (q_1) [above right of= q_0] {$q_1$};
415 \node[state](q_2) [below right of= q_1] {$q_2$};
418 edge [loop above] node {$b$} ()
420 edge [loop above] node {$a$} ();
422 (q_0) edge node {$a$} (q_1)
423 (q_1) edge node {$b$} (q_2)
424 (q_2) edge node {$b$} (q_0);
425 \draw[->] (q_2) .. controls +(up:1cm) and +(right:1cm) .. node[above] {$a$} (q_1);
426 \end{tikzpicture} \color{red}
432 \subfigure[Complement automaton \checkmark]
434 \label{fig:complement automaton}
435 \begin{tikzpicture}[shorten >=1pt, node distance=2cm, auto, semithick, >=stealth
436 ,accepting/.style={fill, gray!50!black, text=white}]
437 \node[state, initial, initial text=] (q_0) {$q_0$};
438 \node[state, accepting] (q_1) [above right of= q_0] {$q_1$};
439 \node[state, accepting](q_2) [below right of= q_1] {$q_2$};
441 (q_0) edge node {$a$} (q_1)
442 edge node {$b$} (q_2)
443 edge [loop above] node {$a, b$} ()
444 (q_1) edge [loop above] node {$a$} ()
446 edge [loop above] node {$b$} ();
447 \end{tikzpicture}\color{green}
451 Accepts all inputs with finite many $ab$.
453 %\caption{Automata from Example \ref{ex:automaton}}
459 \frametitle{Automata}
460 \framesubtitle{Definition}
461 \begin{def:buechi automata}
462 A non-deterministic B\"uchi automaton is a tuple $\A = (\Sigma, S, S_0, \Delta, F)$ with:
464 \item $\Sigma$ is a finite \emph{alphabet}.
465 \item $S$ is a finite set of \emph{states}.
466 \item $S_0 \subseteq S$ is the set of \emph{initial states}.
467 \item $\Delta: S \times \Sigma \times S$ is a \emph{transition relation}.
468 \item $F \subseteq S$ is the set of \emph{accepting states}.
470 \end{def:buechi automata}
474 \frametitle{Automata}
476 \begin{def:automata runs}
477 Let $\A = (\Sigma, S, S_0, \Delta, F)$ be an automaton:
479 \item A run $\rho$ of $\A$ on an infinite word $w = a_0,a_1,...$ is a sequence $\rho = s_0,s_1,...$:
482 \item $(s_i, a_i, s_{i+1}) \in \Delta$, for all $i \geq 0$.
484 \item Alternative view of a run $\rho$ as a function $\rho : \N \to S$, with $\rho(i) = s_i$.
486 \end{def:automata runs}
487 \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}}\]
488 \[w_2 = bb\overline{\textcolor{green}{ab}} \implies \rho_2 = q_0q_0\overline{q_1\textcolor{green}{q_2}}\]}
492 \frametitle{Automata}
493 \framesubtitle{Acceptance}
495 Let $\A = (\Sigma, S, S_0, \Delta, F)$ be an automaton and let $\rho$ be a run of $\A$:
497 \item $\exists^\omega$ denotes the existential quantifier for \emph{infinitely} many occurrences.
498 \item $inf(\rho) = \{s \in S \mid \exists^\omega{n \in \N}: \rho(n) = s\}$.
502 \begin{def:automata acceptance}
503 Let $\A = (\Sigma, S, S_0, \Delta, F)$ be an automaton and let $\rho$ be a run of $\A$:
505 \item $\rho$ is \emph{accepting} iff $inf(\rho) \cap F \neq \emptyset$.
506 \item $\A$ \emph{accepts} an input word $w$ iff there exists a run $\rho$ of $\A$ on $w$, such that $\rho$ is accepting.
508 \end{def:automata acceptance}
512 \frametitle{Automata}
513 \framesubtitle{Language}
514 \begin{def:automata language}
515 Let $\A = (\Sigma, S, S_0, \Delta, F)$ be an automaton:
517 \item $L_\omega(\A) = \{w \in \Sigma^\omega \mid \A \text{ accepts } w\}$, we say $\A$ recognises language $L_\omega(\A)$.
518 \item Language $L$ is \emph{B\"uchi-recognisable} iff there is an automaton $\A$ with $L = L_\omega(\A)$.
520 \end{def:automata language}
524 \frametitle{Generalised Automata}
525 \begin{def:general automata}
526 A \emph{generalised B\"uchi automaton} is a tuple $\A_G = (\Sigma, S, S_0, \Delta, \{F_i\}_{i<k})$:
528 \item $\{F_i\}$ is a finite set of sets for a given $k$.
529 \item Each $F_i \subseteq S$ is a finite set of accepting states.
531 \end{def:general automata}
533 \begin{def:general acceptance}
534 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$:
536 \item $\rho$ is \emph{accepting} iff $\forall{i < k}: inf(\rho) \cap F_i \neq \emptyset$.
537 \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.
539 \end{def:general acceptance}
541 \begin{prop:general equiv}
542 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:
543 \[L_\omega(\A_G) = \bigcap_{i < k} L_\omega(\A_i)\]
544 \end{prop:general equiv}
548 \frametitle{Automata Construction}
549 \framesubtitle{Formula automata}
551 Model $\M_\varphi$ for formula $\varphi$\\
553 Closure $CL(\varphi)$ of $\varphi$\\
555 Automaton $\A_\varphi$ for $\varphi$\\
557 \visible<2>{\textcolor{red}{On-the-fly method} \`a la Gerth et al.}
562 \frametitle{Automata Construction}
563 \framesubtitle{System automata 1/2}
565 Given a program $P = (S_P, s_0, R, V)$:
568 \item $S$ is the set of possible states.
569 \item $s_0$ is the initial state.
570 \item $R : S \times \Prop \times S$ is the transition relation.
571 \item $V : S \to 2^\Prop$ is a valuation function.
574 A \emph{computation} of $P$ is a run $\rho = (V(s_0), V(s_1), ...)$.
577 \begin{def:program automaton}
578 We construct automaton $\A_P = (\Sigma, S, S_0, \Delta, F)$ for program $P$:
581 \item $\Sigma = 2^\Prop$
583 \item $S_0 = \{s_0\}$
587 \item $\Delta = \{(s, V(s), s') \mid \exists{a \in \Prop}: (s, a, s') \in R\}$
589 \end{def:program automaton}
593 \frametitle{Automata Construction}
594 \framesubtitle{System automata 2/2}
595 \begin{prop:computation set=language}
596 Let $\A_P = (\Sigma, S, S_0, \Delta, F)$, note that $F = S$, it follows:
597 \[L_\omega(\A_P) = \{\rho \mid \rho \text{ is a run of } \A_P\}\]
598 \end{prop:computation set=language}
602 \frametitle{Verification}
604 Given a program $P$ and specification $\varphi$:\\
605 \colorbox{black}{\makebox(150,10){\color{white}
606 \only<1>{does every run of $P$ satisfy $\varphi$?}
607 \only<2>{$L_\omega(\A_P) \subseteq L_\omega(\A_\varphi)$}
608 \only<3>{$L_\omega(\A_P) \cap L_\omega(\A_{\neg \varphi}) = \emptyset$}}}
612 \begin{frame}[allowframebreaks]
613 \frametitle<presentation>{Literature}
614 \begin{thebibliography}{10}
616 %\beamertemplatearticlebibitems
617 \bibitem{ref:ltl&büchi}
619 \newblock {\em Linear-Time Temporal Logic and B\"uchi Automata}.
620 \newblock Winter School on Logic and Computer Science, Indian Statistical Institute, Calcutta, 1997.
622 %\beamertemplatearticlebibitems
623 \bibitem{ref:alternating verification}
625 \newblock {\em Alternating Automata and Program Verification}.
626 \newblock Computer Science Today, Volume 1000 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, 1995.
628 \bibitem{ref:on-the-fly verification}
629 Rob Gerth, Doron Peled, Moshe Y. Vardi and Pierre Wolper.
630 \newblock {\em Simple On-the-fly Automatic Verification of Linear Temporal Logic}.
631 \newblock Proceeding IFIO/WG6.1 Symposium on Protocol Specification, Testing and Verification, Warsaw, 1995.
633 \beamertemplatebookbibitems
634 \bibitem{ref:handbook}
635 Patrick Blackburn, Frank Wolter and Johan van Benthem.
636 \newblock {\em Handbook of Modal Logic}.
637 \newblock 3rd Edition, Elsevier, Amsterdam, Chapter 11 P. 655-720 and Chapter 17 P. 975-989, 2007.
639 \beamertemplatearticlebibitems
640 \bibitem{ref:automated verification}
642 \newblock {\em Automated Verification: Graphs, Logic and Automata}.
643 \newblock Proceeding of the International Joint Conference on Artificial Intelligence, Acapulco, 2003.
645 \end{thebibliography}