Added some omega-languages definitions.
1 \documentclass[a4paper, pagesize, DIV=calc, smallheadings]{article}
3 %\usepackage[latin1]{inputenc}
4 \usepackage{amsmath, amsthm, amssymb}
7 \usepackage{algorithmic}
8 %\usepackage[T1]{fontenc}
12 \renewcommand{\familydefault}{\sfdefault}
13 \title{\uppercase{\textbf{\Large{A}\large{lgorithmic} \Large{V}\large{erification of} \Large{R}\large{eactive} \Large{S}\large{ystems}}\\
17 \uppercase{{\small{E}\scriptsize{UGEN} \small{S}\scriptsize{AWIN}}\\
18 {\em \small{U}\scriptsize{NIVERSITY OF} \small{F}\scriptsize{REIBURG}}\\
19 %{\em \small{C}\scriptsize{omputer} \small{S}\scriptsize{cience} \small{D}\scriptsize{epartment}}\\
20 {\em \small{G}\scriptsize{ERMANY}}}\\
21 %\texttt{\footnotesize{sawine@informatik.uni-freiburg.de}}
23 \date{\textsc{\hfill}}
25 \theoremstyle{definition} %plain, definition, remark
26 \newtheorem*{def:finite words}{Finite words}
27 \newtheorem*{def:infinite words}{Infinite words}
28 \newtheorem*{def:omega regular languages}{$\omega$-regular languages}
35 %\renewcommand\abstractname{Abstract}
37 Over the past two decades, temporal logic has become a very basic tool for spec-
38 ifying properties of reactive systems. For finite-state systems, it is possible to use
39 techniques based on B\"uchi automata to verify if a system meets its specifications.
40 This is done by synthesizing an automaton which generates all possible models of
41 the given specification and then verifying if the given system refines this most gen-
42 eral automaton. In these notes, we present a self-contained introduction to the basic
43 techniques used for this automated verification. We also describe some recent space-
44 efficient techniques which work on-the-fly.
48 \section{Introduction}
49 Program verification is a fundamental area of study in computer science. The broad goal
50 is to verify whether a program is ``correct''--i.e., whether the implementation of a program
51 meets its specification. This is, in general, too ambitious a goal and several assumptions
52 have to be made in order to render the problem tractable. In these lectures, we will focus
53 on the verification of finite-state reactive programs. For specifying properties of programs,
54 we use linear time temporal logic.
56 What is a reactive program? The general pattern along which a conventional program
57 executes is the following: it accepts an input, performs some computation, and yields an
58 output. Thus, such a program can be viewed as an abstract function from an input domain
59 to an output domain whose behaviour consists of a transformation from initial states to
62 In contrast, a reactive program is not expected to terminate. As the name suggests, such
63 systems “react” to their environment on a continuous basis, responding appropriately to
64 each input. Examples of such systems include operating systems, schedulers, discrete-event
65 controllers etc. (Often, reactive systems are complex distributed programs, so concurrency
66 also has to be taken into account. We will not stress on this aspect in these lectures—we
67 take the view that a run of a distributed system can be represented as a sequence, by
68 arbitrarily interleaving concurrent actions.)
70 To specify the behaviour of a reactive system, we need a mechanism for talking about
71 the way the system evolves along potentially infinite computations. Temporal logic
72 has become a well-established formalism for this purpose. Many varieties of temporal logic
73 have been defined in the past twenty years—we focus on propositional linear time temporal
76 There is an intimate connection between models of LTL formulas and languages of
77 infinite words—the models of an LTL formula constitute an ω-regular language over an
78 appropriate alphabet. As a result, the satisfiability problem for LTL reduces to checking
79 for emptiness of ω-regular languages. This connection was first explicitly pointed out in.
81 \section{$\omega$-regular Languages}
82 \begin{def:finite words}
83 Let $\Sigma$ be a non-empty set of symbols, the alphabet. $\Sigma^*$ is the set of all \emph{finite} words over $\Sigma$. A \emph{finite} word $w \in \Sigma^*$ is a \emph{finite} sequence $a_0,...,a_{n-1}$ of symbols from alphabet $\Sigma$ with length $n = |w|$. $\varepsilon$ denotes the empty word with length $|\varepsilon| = 0$.
84 \end{def:finite words}
86 \begin{def:infinite words}
87 $\Sigma^\omega$ is the set of all \emph{infinite} words over $\Sigma$. An \emph{infinite} word $w \in \Sigma^\omega$ is an \emph{infinite} sequence $a_0,...,a_\infty$ with length $\infty$. To address the elements of the infinite sequence $w$, view the word as a function $w : \mathbb{N}_0 \to \Sigma$ with $w(i) = a_i$, thus $w(i)$ denotes the symbol at sequence position $i$ of word $w$.
88 \end{def:infinite words}
90 \begin{def:omega regular languages}
91 Set $L$ is an $\omega$-language over alphabet $\Sigma$ iff $L \subseteq \Sigma^\omega$. Let $L_R \subseteq \Sigma^*$ be a regular finite language and $L_{\omega_1}, L_{\omega_2} \subseteq \Sigma^\omega$ be $\omega$-regular languages. Set $L$ is an $\omega$-regular language iff $L$ is an $\omega$-language and any of the following conditions hold:
93 \item $L = L_R^\omega$
94 \item $L = L_R \circ L_{\omega_1}$
95 \item $L = L_{\omega_1} \cup L_{\omega_2}$
97 \end{def:omega regular languages}
100 \section{B\"uchi Automata}
102 \section{Linear Temporal Logic}
104 \section{Model Checking}
105 \begin{thebibliography}{99}
106 \bibitem{ref:ltl&büchi}
107 \uppercase{M{\footnotesize adhavan} M{\footnotesize ukund}.}
108 {\em Linear-Time Temporal Logic and B\"uchi Automata}.
109 Winter School on Logic and Computer Science, Indian Statistical Institute, Calcutta, 1997.
111 \bibitem{ref:handbook}
112 \uppercase{P{\footnotesize atrick} B{\footnotesize lackburn},
113 F{\footnotesize rank} W{\footnotesize olter and} J{\footnotesize ohan van} B{\footnotesize enthem}.}
114 {\em Handbook of Modal Logic (Studies in Logic and Practical Reasoning)}.
115 3rd Edition, Elsevier, Amsterdam, 2007.
117 \bibitem{ref:infpaths}
118 \uppercase{P{\footnotesize ierre} W{\footnotesize olper},
119 M{\footnotesize oshe} Y. V{\footnotesize ardi and}
120 A. P{\footnotesize rasad} S{\footnotesize istla}.}
121 {\em Reasoning about Infinite Computation Paths}.
122 In Proceedings of the 24th IEEE FOCS, 1983.
124 \end{thebibliography}