next up previous contents
Next: Converting a NFA to Up: Non-Deterministic Finite-State Automata Previous: Converting a regular expression   Contents

Kleene's Theorem

We have shown how to convert a regular expression to an NFA; the proof that these represent the same language is straightforward (by induction). However, we have asserted that there is a correspondence in both directions; this is formalised in Kleene's Theorem:

KLEENE'S THEOREM, PART 1: To each regular expression there corresponds a NFA
Strategy: The corresponding NFA is the one constructed by Thompson's Algorithm; proof that it is equivalent is by induction over regular expressions.
Proof: Boring!

KLEENE'S THEOREM, PART 2: To each NFA there corresponds a regular expression
Strategy: Proof by induction over the states of the NFA (sort of).
The language represented by a NFA can be partitioned into the union of a number of smaller languages, each defined as follows:

Let the states of the NFA be numbered from 1 to $N$.
Let $p$ and $q$ be states, and let $J$ be a number such that $0 \leq J \leq N$.
Then:

\begin{displaymath}L(p,q,J) =
\left\{
\begin{array}{c} x \in \, \Sigma^* \, \mi...
...through no state numbered as high as $J$}\end{array}
\right\} \end{displaymath}

Note that if $S$ is the start state, then the union of all $L(S,F,N+1)$ for all finish states $F$ is the language accepted by the NFA.

Equally, if we can show that $L(p,q,J)$ has a corresponding regular expression for all $p$, $q$ and $J$, we will have proved the theorem. The proof of this will proceed by induction over $J$.

Proof: (Kleene's Theorem, part 2)

${\cal QED.}$


next up previous contents
Next: Converting a NFA to Up: Non-Deterministic Finite-State Automata Previous: Converting a regular expression   Contents
James Power 2002-11-29