paper/src/paper.tex
changeset 2 eb8dd8159786
parent 1 f8e63d191537
child 3 3485ca276979
     1.1 --- a/paper/src/paper.tex	Fri May 27 22:52:44 2011 +0200
     1.2 +++ b/paper/src/paper.tex	Sat May 28 00:48:18 2011 +0200
     1.3 @@ -1,13 +1,25 @@
     1.4 -\documentclass{article}
     1.5 -\usepackage{amsmath}
     1.6 -\title{Verification of Reactive Systems}
     1.7 -\author{Eugen Sawin\\ 
     1.8 -  Foundations of Artificial Intelligence\\ 
     1.9 -  Department of Computer Science\\ 
    1.10 -  University of Freiburg}
    1.11 +\documentclass[10pt, a4paper, onecolumn]{article}
    1.12 +%\usepackage[top=0cm, bottom=0cm, left=0cm, right=0cm]{geometry}
    1.13 +%\usepackage[ngerman]{babel}
    1.14 +\usepackage{graphicx}
    1.15 +%\usepackage[latin1]{inputenc}
    1.16 +\usepackage{amsmath, amsthm, amssymb}
    1.17 +\usepackage{typearea}
    1.18 +\usepackage{algorithm}
    1.19 +\usepackage{algorithmic}
    1.20 +%\pagestyle{empty}
    1.21 +
    1.22 +\renewcommand{\familydefault}{\sfdefault}
    1.23 +\title{\textbf{Verification of Reactive Systems}}
    1.24 +\author{Eugen Sawin\\   
    1.25 +  University of Freiburg, Germany\\\\
    1.26 +  \texttt{sawine@informatik.uni-freiburg.de}}
    1.27  \date{May, 2011}
    1.28  \begin{document}
    1.29  \maketitle
    1.30 +
    1.31 +%\itshape
    1.32 +%\renewcommand\abstractname{Abstract} 
    1.33  \begin{abstract}
    1.34  Over the past two decades, temporal logic has become a very basic tool for spec-
    1.35  ifying properties of reactive systems. For finite-state systems, it is possible to use
    1.36 @@ -18,13 +30,53 @@
    1.37  techniques used for this automated verification. We also describe some recent space-
    1.38  efficient techniques which work on-the-fly.
    1.39  \end{abstract}
    1.40 +%\normalfont
    1.41 +
    1.42 +\section{Introduction}
    1.43 +Program verification is a fundamental area of study in computer science. The broad goal
    1.44 +is to verify whether a program is “correct”—i.e., whether the implementation of a program
    1.45 +meets its specification. This is, in general, too ambitious a goal and several assumptions
    1.46 +have to be made in order to render the problem tractable. In these lectures, we will focus
    1.47 +on the verification of finite-state reactive programs. For specifying properties of programs,
    1.48 +we use linear time temporal logic.
    1.49 +
    1.50 +What is a reactive program? The general pattern along which a conventional program
    1.51 +executes is the following: it accepts an input, performs some computation, and yields an
    1.52 +output. Thus, such a program can be viewed as an abstract function from an input domain
    1.53 +to an output domain whose behaviour consists of a transformation from initial states to
    1.54 +final states.
    1.55 +
    1.56 +In contrast, a reactive program is not expected to terminate. As the name suggests, such
    1.57 +systems “react” to their environment on a continuous basis, responding appropriately to
    1.58 +each input. Examples of such systems include operating systems, schedulers, discrete-event
    1.59 +controllers etc. (Often, reactive systems are complex distributed programs, so concurrency
    1.60 +also has to be taken into account. We will not stress on this aspect in these lectures—we
    1.61 +take the view that a run of a distributed system can be represented as a sequence, by
    1.62 +arbitrarily interleaving concurrent actions.)
    1.63 +
    1.64 +To specify the behaviour of a reactive system, we need a mechanism for talking about
    1.65 +the way the system evolves along potentially infinite computations. Temporal logic 
    1.66 +has become a well-established formalism for this purpose. Many varieties of temporal logic
    1.67 +have been defined in the past twenty years—we focus on propositional linear time temporal
    1.68 +logic (LTL).
    1.69 +
    1.70 +There is an intimate connection between models of LTL formulas and languages of
    1.71 +infinite words—the models of an LTL formula constitute an ω-regular language over an
    1.72 +appropriate alphabet. As a result, the satisfiability problem for LTL reduces to checking
    1.73 +for emptiness of ω-regular languages. This connection was first explicitly pointed out in.
    1.74 +
    1.75  \section{$\omega$-regular Languages}
    1.76  \section{Linear Temporal Logic}
    1.77  \section{B\"uchi Automata}
    1.78 +Automata are good.
    1.79  \section{Model Checking}
    1.80  \begin{thebibliography}{99}
    1.81 -\bibitem{ref:ltl&büchi} Madhavan Mukund {\em Linear-Time Temporal Logic and B\"uchi Automata}
    1.82 -\bibitem{ref:handbook} Patrick Blackburn, Frank Wolter and Johan Van Benthem {\em Handbook of Modal Logic (Studies in Logic and Practical Reasoning)}
    1.83 +\bibitem{ref:ltl&büchi} Madhavan Mukund: {\em Linear-Time Temporal Logic and B\"uchi Automata}.
    1.84 +Winter School on Logic and Computer Science, Indian Statistical Institute, Calcutta, 1997.
    1.85  
    1.86 +\bibitem{ref:handbook} 
    1.87 +Patrick Blackburn, Frank Wolter and Johan Van Benthem: 
    1.88 +{\em Handbook of Modal Logic (Studies in Logic and Practical Reasoning)}.
    1.89 +Elsevier, Amsterdam, 3rd Edition, 2007.
    1.90  \end{thebibliography}
    1.91  \end{document}