paper/src/paper.tex
author Eugen Sawin <sawine@me73.com>
Thu, 30 Jun 2011 20:45:45 +0200
changeset 25 636403068f28
parent 24 1d28f5f04efd
child 26 1fbb8602afee
permissions -rw-r--r--
Begin with model checking.
sawine@7
     1
\documentclass[a4paper, pagesize, DIV=calc, smallheadings]{article}  
sawine@2
     2
\usepackage{graphicx}
sawine@2
     3
%\usepackage[latin1]{inputenc}
sawine@14
     4
\usepackage{amsmath, amsthm, amssymb, amsfonts, verbatim}
sawine@2
     5
\usepackage{typearea}
sawine@2
     6
\usepackage{algorithm}
sawine@2
     7
\usepackage{algorithmic}
sawine@15
     8
\usepackage{multicol}
sawine@11
     9
%\usepackage{fullpage}
sawine@19
    10
%\usepackage{a4wide}
sawine@19
    11
\usepackage[left=3.9cm, right=3.9cm]{geometry}
sawine@5
    12
%\usepackage[T1]{fontenc}
sawine@5
    13
%\usepackage{arev}
sawine@7
    14
%\pagestyle{headings}
sawine@19
    15
sawine@2
    16
\renewcommand{\familydefault}{\sfdefault}
sawine@22
    17
\renewenvironment{proof}{{\bfseries Proof.}}{}
sawine@17
    18
\newcommand{\M}{\mathcal{M}}
sawine@17
    19
\newcommand{\N}{\mathbb{N}_0}
sawine@19
    20
\newcommand{\F}{\mathcal{F}}
sawine@19
    21
\newcommand{\Prop}{\mathcal{P}}
sawine@22
    22
\newcommand{\A}{\mathcal{A}}
sawine@19
    23
sawine@7
    24
\title{\uppercase{\textbf{\Large{A}\large{lgorithmic} \Large{V}\large{erification of} \Large{R}\large{eactive} \Large{S}\large{ystems}}\\
sawine@7
    25
\tiny{Draft}
sawine@7
    26
}}
sawine@7
    27
\author{
sawine@19
    28
\uppercase{{\small{E}\scriptsize{UGEN} \small{S}\scriptsize{AWIN}}\thanks{\lowercase{\scriptsize{\texttt{sawine@informatik.uni-freiburg.de}}}}\\
sawine@19
    29
{\em \small{U}\scriptsize{NIVERSITY OF} \small{F}\scriptsize{REIBURG}}\thanks{\tiny{Computer Science Department, Research Group for Foundations of Artificial Intelligence}}\\
sawine@7
    30
%{\em \small{C}\scriptsize{omputer} \small{S}\scriptsize{cience} \small{D}\scriptsize{epartment}}\\
sawine@7
    31
{\em \small{G}\scriptsize{ERMANY}}}\\
sawine@7
    32
%\texttt{\footnotesize{sawine@informatik.uni-freiburg.de}}
sawine@7
    33
}
sawine@5
    34
\date{\textsc{\hfill}}
sawine@7
    35
sawine@24
    36
\theoremstyle{definition} %plain, definition, remark, proof, corollary
sawine@7
    37
\newtheorem*{def:finite words}{Finite words}
sawine@7
    38
\newtheorem*{def:infinite words}{Infinite words}
sawine@8
    39
\newtheorem*{def:regular languages}{Regular languages}
sawine@8
    40
\newtheorem*{def:regular languages closure}{Regular closure}
sawine@7
    41
\newtheorem*{def:omega regular languages}{$\omega$-regular languages}
sawine@8
    42
\newtheorem*{def:omega regular languages closure}{$\omega$-regular closure}
sawine@11
    43
\newtheorem*{def:buechi automata}{Automata}
sawine@11
    44
\newtheorem*{def:automata runs}{Runs}
sawine@11
    45
\newtheorem*{def:automata acceptance}{Acceptance}
sawine@21
    46
\newtheorem*{def:general automata}{Generalised automata}
sawine@21
    47
\newtheorem*{def:general acceptance}{Acceptance}
sawine@14
    48
\newtheorem*{def:vocabulary}{Vocabulary}
sawine@19
    49
\newtheorem*{def:frames}{Frames}
sawine@18
    50
\newtheorem*{def:models}{Models}
sawine@18
    51
\newtheorem*{def:satisfiability}{Satisfiability}
sawine@22
    52
\newtheorem*{def:fs closure}{Fischer-Ladner closure}
sawine@22
    53
\newtheorem*{def:atoms}{Atoms}
sawine@14
    54
sawine@22
    55
\theoremstyle{plain}
sawine@21
    56
\newtheorem{prop:vocabulary sat}{Proposition}[section]
sawine@21
    57
\newtheorem{prop:general equiv}{Proposition}[section]
sawine@15
    58
sawine@22
    59
\theoremstyle{plain}
sawine@22
    60
\newtheorem{thm:model language}{Theorem}[section]
sawine@24
    61
\newtheorem{cor:mod=model language}{Corollary}[thm:model language]
sawine@22
    62
sawine@0
    63
\begin{document}
sawine@0
    64
\maketitle
sawine@4
    65
\thispagestyle{empty}
sawine@2
    66
%\itshape
sawine@2
    67
%\renewcommand\abstractname{Abstract} 
sawine@0
    68
\begin{abstract}
sawine@0
    69
Over the past two decades, temporal logic has become a very basic tool for spec-
sawine@0
    70
ifying properties of reactive systems. For finite-state systems, it is possible to use
sawine@0
    71
techniques based on B\"uchi automata to verify if a system meets its specifications.
sawine@0
    72
This is done by synthesizing an automaton which generates all possible models of
sawine@0
    73
the given specification and then verifying if the given system refines this most gen-
sawine@0
    74
eral automaton. In these notes, we present a self-contained introduction to the basic
sawine@0
    75
techniques used for this automated verification. We also describe some recent space-
sawine@0
    76
efficient techniques which work on-the-fly.
sawine@0
    77
\end{abstract}
sawine@2
    78
%\normalfont
sawine@4
    79
\newpage
sawine@2
    80
\section{Introduction}
sawine@2
    81
Program verification is a fundamental area of study in computer science. The broad goal
sawine@5
    82
is to verify whether a program is ``correct''--i.e., whether the implementation of a program
sawine@2
    83
meets its specification. This is, in general, too ambitious a goal and several assumptions
sawine@2
    84
have to be made in order to render the problem tractable. In these lectures, we will focus
sawine@2
    85
on the verification of finite-state reactive programs. For specifying properties of programs,
sawine@2
    86
we use linear time temporal logic.
sawine@2
    87
sawine@2
    88
What is a reactive program? The general pattern along which a conventional program
sawine@2
    89
executes is the following: it accepts an input, performs some computation, and yields an
sawine@2
    90
output. Thus, such a program can be viewed as an abstract function from an input domain
sawine@2
    91
to an output domain whose behaviour consists of a transformation from initial states to
sawine@2
    92
final states.
sawine@2
    93
sawine@2
    94
In contrast, a reactive program is not expected to terminate. As the name suggests, such
sawine@2
    95
systems “react” to their environment on a continuous basis, responding appropriately to
sawine@2
    96
each input. Examples of such systems include operating systems, schedulers, discrete-event
sawine@2
    97
controllers etc. (Often, reactive systems are complex distributed programs, so concurrency
sawine@2
    98
also has to be taken into account. We will not stress on this aspect in these lectures—we
sawine@2
    99
take the view that a run of a distributed system can be represented as a sequence, by
sawine@2
   100
arbitrarily interleaving concurrent actions.)
sawine@2
   101
sawine@2
   102
To specify the behaviour of a reactive system, we need a mechanism for talking about
sawine@2
   103
the way the system evolves along potentially infinite computations. Temporal logic 
sawine@2
   104
has become a well-established formalism for this purpose. Many varieties of temporal logic
sawine@2
   105
have been defined in the past twenty years—we focus on propositional linear time temporal
sawine@2
   106
logic (LTL).
sawine@2
   107
sawine@2
   108
There is an intimate connection between models of LTL formulas and languages of
sawine@2
   109
infinite words—the models of an LTL formula constitute an ω-regular language over an
sawine@2
   110
appropriate alphabet. As a result, the satisfiability problem for LTL reduces to checking
sawine@2
   111
for emptiness of ω-regular languages. This connection was first explicitly pointed out in.
sawine@2
   112
sawine@8
   113
\section{$\omega$-regular languages}
sawine@7
   114
\begin{def:finite words}
sawine@24
   115
Let $\Sigma$ be a non-empty set of symbols, called 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 $(v_0,...,v_{n-1})$ of symbols from alphabet $\Sigma$ with length $n = |w|$. $\varepsilon$ denotes the empty word with length $|\varepsilon| = 0$.
sawine@7
   116
\end{def:finite words}
sawine@7
   117
sawine@8
   118
\begin{def:regular languages}
sawine@8
   119
The class of regular languages is defined recursively over an alphabet $\Sigma$:
sawine@15
   120
\begin{multicols}{2}
sawine@8
   121
\begin{itemize}
sawine@8
   122
\item $\emptyset$ is regular
sawine@8
   123
\item $\{\varepsilon\}$ is regular
sawine@8
   124
\item $\forall_{a \in \Sigma}:\{a\}$ is regular
sawine@8
   125
\end{itemize}
sawine@15
   126
\end{multicols}
sawine@8
   127
\end{def:regular languages}
sawine@8
   128
sawine@8
   129
\begin{def:regular languages closure}
sawine@10
   130
Let $L_{R_1}, L_{R_2} \in \Sigma^*$ be regular. The class of regular languages is closed under following operations:
sawine@15
   131
\begin{multicols}{2}
sawine@8
   132
\begin{itemize}
sawine@8
   133
\item $L_{R_1}^*$
sawine@8
   134
\item $L_{R_1} \circ L_{R_2}$
sawine@8
   135
\item $L_{R_1} \cup L_{R_2}$
sawine@10
   136
\item $L_{R_1} \cap L_{R_2}$
sawine@10
   137
\item $\overline{L}_{R_1}$ and therefore $L_{R_1} - L_{R_2}$
sawine@8
   138
\end{itemize}
sawine@15
   139
\end{multicols}
sawine@8
   140
\end{def:regular languages closure}
sawine@8
   141
sawine@9
   142
\begin{def:infinite words}
sawine@24
   143
$\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 $(v_0,...,v_\infty)$ with length $\infty$. To address the elements of the infinite sequence $w$, we view the word as a function $w : \N \to \Sigma$ with $w(i) = v_i$; thus $w(i)$ denotes the symbol at sequence position $i$ of word $w$; another notation used for $w(i)$ is $w_i$.
sawine@9
   144
\end{def:infinite words}
sawine@9
   145
sawine@7
   146
\begin{def:omega regular languages}
sawine@8
   147
Set $L$ is an $\omega$-language over alphabet $\Sigma$ iff $L \subseteq \Sigma^\omega$. Let $L_R \subseteq \Sigma^*$ be a non-empty regular finite language and $\varepsilon \notin L_R$. A set $L$ is $\omega$-regular iff $L$ is an $\omega$-language and $L = L_R^\omega$.
sawine@7
   148
\end{def:omega regular languages}
sawine@7
   149
sawine@8
   150
\begin{def:omega regular languages closure}
sawine@8
   151
Let $L_{\omega_1}, L_{\omega_2} \subseteq \Sigma^\omega$ be $\omega$-regular languages. The class of $\omega$-regular languages is closed under following operations:
sawine@8
   152
\begin{itemize}
sawine@8
   153
\item $L_R \circ L_{\omega_1}$, but \emph{not} $L_{\omega_1} \circ L_R$
sawine@8
   154
\item $L_{\omega_1} \cup L_{\omega_2}$, but only \emph{finitely} many times
sawine@8
   155
\end{itemize}
sawine@8
   156
\end{def:omega regular languages closure}
sawine@7
   157
sawine@8
   158
\section{B\"uchi automata}
sawine@11
   159
\begin{def:buechi automata}
sawine@22
   160
A non-deterministic B\"uchi automaton is a tuple $\A = (\Sigma, S, S_0, \Delta, F)$, where $\Sigma$ is a finite non-empty \emph{alphabet}, $S$ is a finite non-empty set of \emph{states}, $S_0 \subseteq S$ is the set of \emph{initial states}, $F \subseteq S$ is the set of \emph{accepting states} and $\Delta: S \times \Sigma \times S$ is a \emph{transition relation}. When suitable we will use the arrow notation for the transitions, where $s \xrightarrow{a} s'$ iff $(s, a, s') \in \Delta$.
sawine@11
   161
sawine@22
   162
A \emph{deterministic B\"uchi automaton} is a specialisation, where the \emph{transition relation} $\Delta$ is a \emph{transition function} $\delta: S \times \Sigma \to S$ and the set $S_0$ of \emph{initial states} contains only a single state $s_0$.
sawine@11
   163
sawine@19
   164
Within this text \emph{automaton} will refer to the non-deterministic B\"uchi automaton, unless otherwise noted. 
sawine@11
   165
\end{def:buechi automata}
sawine@11
   166
sawine@11
   167
\begin{def:automata runs}
sawine@24
   168
Let $\A = (\Sigma, S, S_0, \Delta, F)$ be an automaton, a run $\rho$ of $\A$ on an infinite word $w = (a_0,a_1,...)$ over alphabet $\Sigma$ is a sequence $\rho = (s_0,s_1,...)$, where $s_0 \in S_0$ and $(s_i, a_i, s_{i+1}) \in \Delta$, for all $i \geq 0$. Again we may view the run sequence as a function $\rho : \N \to S$, where $\rho(i) = s_i$ denotes the state at the $i^{th}$ sequence position.
sawine@11
   169
\end{def:automata runs}
sawine@11
   170
sawine@11
   171
\begin{def:automata acceptance}
sawine@22
   172
Let $\A = (\Sigma, S, S_0, \Delta, F)$ be an automaton and let $\rho$ be a run of $\A$, we define $inf(\rho) = \{s \in S \mid \exists^\omega{n \in \N}: \rho(n) = s\}$, where $\exists^\omega$ denotes the existential quantifier for infinitely many occurances, i.e., $s$ occurs infinitely often in $\rho$.
sawine@11
   173
sawine@22
   174
The run $\rho$ is \emph{accepting} iff $inf(\rho) \cap F \neq \emptyset$, i.e., there exists an \emph{accepting state} which occurs infinitely often in the run $\rho$. The automaton $\A$ \emph{accepts} an input word $w$, iff there exists a run $\rho$ of $\A$ on $w$, such that $\rho$ is \emph{accepting}. 
sawine@21
   175
sawine@22
   176
The language $L_\omega(\A)$ recognised by automaton $\A$ is the set of all infinite words accepted by $\A$. A language $L$ is \emph{B\"uchi-recognisable} iff there is an automaton $\A$ with $L = L_\omega(\A)$.
sawine@11
   177
\end{def:automata acceptance}
sawine@11
   178
sawine@21
   179
\subsection{Generalised B\"uchi automata}
sawine@21
   180
\begin{def:general automata}
sawine@22
   181
A \emph{generalised B\"uchi automaton} is a tuple $\A = (\Sigma, S, S_0, \Delta, \{F_i\}_{i < k})$ for $i, k \in \N$, where the \emph{acceppting states} $F_i$ are composed within a finite set with $F_i \subseteq S$.
sawine@21
   182
\end{def:general automata}
sawine@21
   183
sawine@21
   184
\begin{def:general acceptance}
sawine@22
   185
The acceptance condition is adjusted accordingly. A run $\rho$ of $\A$ is \emph{accepting} iff $\forall{i < k}: inf(\rho) \cap F_i \neq \emptyset$. 
sawine@21
   186
\end{def:general acceptance}
sawine@21
   187
sawine@21
   188
\begin{prop:general equiv}
sawine@22
   189
Let $\A = (\Sigma, S, S_0, \Delta, \{F_i\}_{i < k})$ be a \emph{generalised automaton} and let $\A_i = (\Sigma, S, S_0, \Delta, F_i)$ be \emph{non-deterministic automata}, then following equivalance condition holds:
sawine@22
   190
\[L(\A) = \bigcap_{i < k} L(\A_i)\]
sawine@21
   191
\end{prop:general equiv}
sawine@21
   192
\noindent Intuitively follows the equivalance of the language recognition abilities of general and non-deterministic B\"uchi automata.
sawine@21
   193
sawine@8
   194
\section{Linear temporal logic}
sawine@19
   195
\subsection{Syntax}
sawine@19
   196
Let $\Prop$ be the countable set of \emph{atomic propositions}. The \emph{alphabet} of the language $L_{LTL}(\Prop)$ is $\Prop \cup \{\neg, \lor, X, U\}$. We define the $L_{LTL}(\Prop)$-\emph{formulae} $\varphi$ using following productions:
sawine@19
   197
\[\varphi ::= p \in \Prop \,|\, \neg \varphi \,|\, \varphi \lor \varphi \,|\, X \varphi \,|\, \varphi U \varphi\]
sawine@13
   198
sawine@18
   199
\subsection{Interpretation}
sawine@13
   200
The intuition should go as follows: $\neg$ and $\lor$ correspond to the Boolean \emph{negation} and \emph{disjunction}, the unary temporal operator $X$ reads as \emph{next} and the binary temporal operator $U$ reads as \emph{until}.
sawine@13
   201
sawine@13
   202
LTL is interpreted over \emph{computation paths}, where a computation corrensponds to a model over a \emph{Kripke-frame} constructed by the order of natural numbers.
sawine@13
   203
sawine@18
   204
\subsection{Semantics}
sawine@19
   205
\begin{def:frames}
sawine@22
   206
An LTL-\emph{frame} is a tuple $\F = (S, R)$, where $S = \{s_i \mid i \in \N\}$ is the set of states and $R = \{(s_i, s_{i+1}) \mid i \in \N\}$ the set of accessibility relations. Hence $S$ is an isomorphism of $\N$ and $R$ an isomorphism of the strict linear order $(\N, <)$, which corresponds to the linear progression of discrete time. 
sawine@19
   207
\end{def:frames}
sawine@19
   208
sawine@18
   209
\begin{def:models}
sawine@22
   210
An LTL-\emph{model} is a tuple $\M = (\F, V)$, where $\F$ is a \emph{frame} and $V: S \to 2^\Prop$ a \emph{valuation function}. Intuitively we say $p \in \Prop$ is \emph{true} at time instant $i$ iff $p \in V(i)$. 
sawine@19
   211
%A \emph{model} is a function $\M: \N \to 2^\Prop$ over \emph{frame} $\F$. The frame constitutes a linear order over $\N$, which corresponds to the linear progression of time from the \emph{present/past} into the \emph{future}. Therefore $\M(i)$ assigns a set of \emph{positive atomic propositions} to each state of time instant $i$. Intuitively we say $p \in \Prop$ is \emph{true} at time instant $i$ iff $p \in \M(i)$.
sawine@18
   212
\end{def:models}
sawine@13
   213
sawine@18
   214
\begin{def:satisfiability}
sawine@19
   215
A model $\M = (\F, V)$ \emph{satisfies} a formula $\varphi$ at time instant $i$ is denoted by $\M,i \models \varphi$. Satisfiability of a formula $\varphi$ is defined inductively over the structure of $\varphi$:
sawine@13
   216
\begin{itemize}
sawine@22
   217
\item $\M,i \models p$ for $p \in \Prop \iff p \in V(i)$
sawine@22
   218
\item $\M,i \models \neg \varphi \iff$ not $\M,i \models \varphi$
sawine@22
   219
\item $\M,i \models \varphi \lor \psi \iff \M,i \models \varphi$ or $\M,i \models \psi$
sawine@22
   220
\item $\M,i \models X \varphi \iff \M,i+1 \models \varphi$
sawine@22
   221
\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$
sawine@13
   222
\end{itemize}
sawine@22
   223
sawine@18
   224
\end{def:satisfiability}
sawine@18
   225
sawine@14
   226
\begin{def:vocabulary}
sawine@22
   227
Let $\varphi$ be an LTL-formula over atomic propositions $\Prop$, we define the \emph{vocabulary} $Voc(\varphi)$ of $\varphi$ inductively:
sawine@15
   228
\begin{multicols}{2}
sawine@14
   229
\begin{itemize}
sawine@19
   230
\item $Voc(p) = \{p\}$ for $p \in \Prop$
sawine@14
   231
\item $Voc(\neg \varphi) = Voc(\varphi)$
sawine@14
   232
\item $Voc(\varphi \lor \psi) = Voc(\varphi) \cup Voc(\psi)$
sawine@14
   233
\item $Voc(X \varphi) = Voc(\varphi)$
sawine@14
   234
\item $Voc(\varphi U \psi) = Voc(\varphi) \cup Voc(\psi)$
sawine@14
   235
\end{itemize}
sawine@15
   236
\end{multicols}
sawine@17
   237
%
sawine@22
   238
\noindent Let $\M = (\F, V)$ be a model and $\varphi$ an LTL-formula, we define model $\M_{Voc(\varphi)} = (\F, V_{Voc(\varphi)})$ with:
sawine@21
   239
\[\forall{i \in \N}: V_{Voc(\varphi)}(i) = V(i) \cap Voc(\varphi)\]
sawine@21
   240
Henceforth, we will abbreviate $\M_{Voc(\varphi)}$ and $V_{Voc(\varphi)}$ with $\M_\varphi$ and $V_\varphi$ accordingly. 
sawine@22
   241
%\noindent Let $\M$ be a model and $\varphi$ an LTL-formula, we define model $\M_{Voc(\varphi)}$:
sawine@21
   242
%\[\forall{i \in \N}: \M_{Voc(\varphi)} = \M(i) \cap Voc(\varphi)\]
sawine@17
   243
\end{def:vocabulary}
sawine@17
   244
%
sawine@17
   245
\begin{prop:vocabulary sat}
sawine@22
   246
Let $\M$ be a model and $\varphi$ an LTL-formula, then following holds:
sawine@21
   247
\[\forall{i \in \N}: \M,i \models \varphi \iff \M_\varphi,i \models \varphi\] 
sawine@17
   248
\end{prop:vocabulary sat}
sawine@17
   249
%
sawine@19
   250
\subsection{Derived connectives}
sawine@17
   251
For a more convenient description of system specifications we present some derived symbols to be used in LTL-formulae. At first we introduce the notion of \emph{truth} and \emph{falsity} using constants $\top$ and $\bot$. Then we expand our set of connectives with the Boolean \emph{and}, \emph{implication} and \emph{equivalence}. And at last we derive the commonly used modal operators \emph{eventually} and \emph{henceforth}. 
sawine@15
   252
sawine@19
   253
Let $\varphi$ and $\psi$ be $L_{LTL}(\Prop)$-formulae:
sawine@15
   254
\begin{multicols}{2}
sawine@15
   255
\begin{itemize}
sawine@19
   256
\item $\top \equiv p \lor \neg p$ for $p \in \Prop$
sawine@15
   257
\item $\bot \equiv \neg \top$
sawine@15
   258
\item $\varphi \land \psi \equiv \neg (\neg \varphi \lor \neg \psi)$
sawine@15
   259
\item $\varphi \rightarrow \psi \equiv \neg \varphi \lor \psi$
sawine@15
   260
\item $\varphi \leftrightarrow \psi \equiv (\varphi \rightarrow \psi) \land (\psi \rightarrow \varphi)$
sawine@15
   261
\item $\Diamond \varphi \equiv \top U \varphi$
sawine@15
   262
\item $\Box \varphi \equiv \neg \Diamond \neg \varphi$
sawine@15
   263
\end{itemize}
sawine@15
   264
\end{multicols}
sawine@16
   265
From the derivations for operators $\Diamond$, \emph{read diamond}, and $\Box$, \emph{read box}, it follows:
sawine@17
   266
\begin{multicols}{2}
sawine@16
   267
\begin{itemize}
sawine@17
   268
\item $\M,i \models \Diamond \varphi$ iff $\exists{k \geq i}: \M,k \models \varphi$
sawine@17
   269
\item $\M,i \models \Box \varphi$ iff $\forall{k \geq i}: \M,k \models \varphi$
sawine@16
   270
\end{itemize}
sawine@17
   271
\end{multicols}
sawine@19
   272
sawine@19
   273
With the additional derived connectives we get the following $L_{LTL}(\Prop)$-formulae productions:
sawine@19
   274
\[\varphi ::= p \in \Prop \,|\, \neg \varphi \,|\, \varphi \lor \varphi \,|\, \varphi \land \varphi \,|\, X \varphi \,|\, \varphi U \varphi \,|\, \varphi \rightarrow \varphi \,|\, \varphi \leftrightarrow \varphi \,|\, \Diamond \varphi \,|\, \Box \varphi\]
sawine@19
   275
sawine@21
   276
\section{Automata construction}
sawine@24
   277
Before applying the automata-theoretic verification methods, we need to construct an automaton for a given specification formula $\varphi$. For that, we treat the model $\M = (\F, V)$ for an LTL-formula $\varphi$ as an infinite word over the finite alphabet $2^{Voc(\varphi)}$. 
sawine@24
   278
sawine@24
   279
We define the \emph{representation function} $rep: \M \to 2^\Prop$, which returns an infinite word representing the model $\M_\varphi = (\F, V_\varphi)$ over the ordered image $V_\varphi^\rightarrow(\N)$ of its validation function, i.e., $rep(\M_\varphi) = (V_\varphi(0), V_\varphi(1), ...)$. Additionaly, we provide the \emph{inverted representation function} $rep^{-1}: 2^\Prop \to \M$, which compiles an infinite word to the corresponding model, i.e., $rep^{-1}(V_\varphi^\rightarrow(\N)) = \M_\varphi$.
sawine@22
   280
\[Mod(\varphi) = \{rep(\M_\varphi) \mid \M_\varphi = (\F, V_\varphi) \land \M_\varphi,0 \models \varphi\}\]
sawine@21
   281
$Mod(\varphi)$ is the set of all infinite words, which represent models for $\varphi$.
sawine@21
   282
sawine@22
   283
\begin{def:fs closure}
sawine@22
   284
Let $\varphi$ be an LTL-formula, then the \emph{Fischer-Ladner closure} $FL(\varphi)$ of $\varphi$ is the smallest set of formulae such that following holds:
sawine@22
   285
%\begin{multicols}{2}
sawine@22
   286
\begin{itemize}
sawine@22
   287
\item $\varphi \in FL(\varphi)$
sawine@22
   288
\item $\neg \psi \in FL(\varphi) \implies \psi \in FL(\varphi)$
sawine@22
   289
\item $\psi \in FL(\varphi) \implies \neg \psi \in FL(\varphi)$
sawine@22
   290
\item $\psi \lor \chi \in FL(\varphi) \implies \psi, \chi \in FL(\varphi)$
sawine@22
   291
\item $X \psi \in FL(\varphi) \implies \psi \in FL(\varphi)$
sawine@22
   292
\item $\psi U \chi \in FL(\varphi) \implies \psi, \chi, X(\psi U \chi) \in FL(\varphi)$
sawine@22
   293
\end{itemize}
sawine@22
   294
%\end{multicols}
sawine@22
   295
\end{def:fs closure}
sawine@22
   296
sawine@22
   297
\noindent Let $FL(\varphi)$ be the closure of formula $\varphi$, we define a subset with the \emph{until}-formulae of the closure $\mathbb{U}_\varphi \subseteq FL(\varphi)$ where:
sawine@22
   298
\[\mathbb{U}_\varphi = \{\psi U \chi \in FL(\varphi)\} \text{ and } \mathbb{U}_{\varphi_i} \text{ denotes the $i^{th}$ element of } \mathbb{U_\varphi}\]
sawine@22
   299
sawine@22
   300
\begin{def:atoms}
sawine@23
   301
Let $\varphi$ be a formula and $FL(\varphi)$ its closure. $A \subseteq FL(\varphi)$ is an \emph{atom} if following holds:
sawine@22
   302
\begin{itemize}
sawine@23
   303
\item $\forall{\psi \in FL(\varphi)}: \psi \in A \iff \neg \psi \notin A$
sawine@23
   304
\item $\forall{\psi \lor \chi \in FL(\varphi)}: \psi \lor \chi \in A \iff \psi \in A$ or $\chi \in A$ 
sawine@23
   305
\item $\forall{\psi U \chi \in FL(\varphi)}: \psi U \chi \in A \iff \chi \in A$ or $\psi, X(\psi U \chi) \in A$ 
sawine@22
   306
\end{itemize}
sawine@23
   307
We define the set of all atoms of formula $\varphi$ with $\mathbb{AT}_\varphi = \{A \subseteq FL({\varphi}) \mid A \text{ is an atom}\}$.
sawine@22
   308
\end{def:atoms}
sawine@22
   309
sawine@22
   310
\noindent Now that we have the required ingredients, we begin with the construction of automaton $\A_\varphi$ for formula $\varphi$. Let $\A_\varphi = (\Sigma, S, S_0, \Delta, \{F_i\}_{i < k})$ with:
sawine@22
   311
\begin{itemize}
sawine@22
   312
\item $\Sigma = 2^{Voc(\varphi)}$
sawine@22
   313
\item $S = \mathbb{AT_\varphi}$
sawine@23
   314
\item $S_0 = \{A \in \mathbb{AT_\varphi} \mid \varphi \in A\}$
sawine@22
   315
%\item $(A, P, B) \in \Delta$ for $A, B \in \mathbb{AT_\varphi}$ and $P = A \cap Voc(\varphi) \iff (X \psi \in A \iff \psi \in B)$
sawine@23
   316
\item $\Delta = \{(A, P, \mathbb{B}) \mid A, \mathbb{B} \in \mathbb{AT_\varphi}, P = A \cap Voc(\varphi), X \psi \in A \iff \psi \in \mathbb{B}\}$
sawine@25
   317
%\item $\forall{i \in \N, i < k = |\mathbb{U}_{FL(\varphi)}|}: F_i = \{A \in \mathbb{AT}_\varphi \mid \psi U \chi \notin A$ or $\chi \in A\}$
sawine@23
   318
\item $F_i = \{A \in \mathbb{AT}_\varphi \mid \psi U \chi = \mathbb{U}_{\varphi_i}, \psi U \chi \notin A$ or $\chi \in A\}$ and therefore $k = |\mathbb{U}_{\varphi}|$
sawine@22
   319
%Let $A, B \in \mathbb{AT}$ and $P \subseteq Voc(\varphi)$. Then $(A, P, B) \in \Delta$ iff the following holds:
sawine@22
   320
%$P = A \cap Voc(\varphi)$ and For all $X \psi \in CL(\varphi): X \psi \in A$ iff $\psi \in B$.
sawine@22
   321
\end{itemize}
sawine@22
   322
sawine@22
   323
\begin{thm:model language}
sawine@24
   324
\label{thm:model language}
sawine@22
   325
Let $\M_\varphi = (\F, V_\varphi)$ be a model and $rep(\M_\varphi)$ its infinite representation word, then following holds:
sawine@23
   326
\[rep(\M_\varphi) \in L(\A_\varphi) \iff \M_\varphi,0 \models \varphi\]
sawine@22
   327
\end{thm:model language}
sawine@22
   328
\noindent
sawine@22
   329
\begin{proof}
sawine@22
   330
For the eloberate proof, consult \cite{ref:ltl&büchi}.
sawine@22
   331
\end{proof}
sawine@24
   332
\begin{cor:mod=model language}
sawine@24
   333
\label{cor:mod=model language}
sawine@24
   334
From theorem \ref{thm:model language} follows $Mod(\varphi) = L(\A_\varphi)$
sawine@24
   335
\end{cor:mod=model language}
sawine@21
   336
sawine@8
   337
\section{Model checking}
sawine@24
   338
For effective automata-theoretic verification of a reactive program we model the program as a non-deterministic B\"uchi automaton $P = (\Sigma, S, S_0, \Delta, F)$. Let $\rho$ be a run of $P$, we define:
sawine@24
   339
\[Mod(P) = \{rep^{-1}(\rho) \mid \rho \text{ is a run of } P\}\]
sawine@24
   340
The essence of model checking lies within the test for emptyness of the intersection between the recognised language of the automaton for the program in test and the recognised language of the automaton for its negated specification:
sawine@24
   341
\[L(\A_P) \cap L(\A_{\neg \varphi}) = \emptyset\]
sawine@24
   342
From corollary \ref{cor:mod=model language} follows:
sawine@24
   343
\[L(\A_P) \cap L(\A_{\neg \varphi}) = \emptyset \iff Mod(P) \cap Mod(\neg \varphi) = \emptyset\]
sawine@19
   344
sawine@19
   345
\section{On-the-fly methods}
sawine@19
   346
sawine@0
   347
\begin{thebibliography}{99}
sawine@5
   348
\bibitem{ref:ltl&büchi} 
sawine@6
   349
\uppercase{M{\footnotesize adhavan} M{\footnotesize ukund}.}
sawine@5
   350
{\em Linear-Time Temporal Logic and B\"uchi Automata}.
sawine@2
   351
Winter School on Logic and Computer Science, Indian Statistical Institute, Calcutta, 1997.
sawine@0
   352
sawine@2
   353
\bibitem{ref:handbook} 
sawine@6
   354
\uppercase{P{\footnotesize atrick} B{\footnotesize lackburn}, 
sawine@6
   355
F{\footnotesize rank} W{\footnotesize olter and} J{\footnotesize ohan van} B{\footnotesize enthem}.}
sawine@2
   356
{\em Handbook of Modal Logic (Studies in Logic and Practical Reasoning)}.
sawine@3
   357
3rd Edition, Elsevier, Amsterdam, 2007.
sawine@7
   358
sawine@19
   359
\bibitem{ref:alternating verification} 
sawine@19
   360
\uppercase{M{\footnotesize oshe} Y. V{\footnotesize ardi}.}
sawine@19
   361
{\em Alternating Automata and Program Verification}.
sawine@19
   362
Computer Science Today, Volume 1000 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, 1995.
sawine@19
   363
sawine@7
   364
\bibitem{ref:infpaths}
sawine@7
   365
\uppercase{P{\footnotesize ierre} W{\footnotesize olper}, 
sawine@7
   366
M{\footnotesize oshe} Y. V{\footnotesize ardi and}
sawine@7
   367
A. P{\footnotesize rasad} S{\footnotesize istla}.}
sawine@7
   368
{\em Reasoning about Infinite Computation Paths}.
sawine@7
   369
In Proceedings of the 24th IEEE FOCS, 1983.
sawine@7
   370
sawine@0
   371
\end{thebibliography}
sawine@0
   372
\end{document}