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