Myhill.thy
author urbanc
Mon, 07 Feb 2011 20:30:10 +0000
changeset 75 d63baacbdb16
parent 73 79de7de104c8
child 78 77583805123d
permissions -rw-r--r--
parts of the 3 section
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
b6815473ee2e 1. Myhill.thy is proved to correct some typos. 2. Some sections are added to the first direction. 3. The small theory of list difference is now separated into Prefix_subtract.thy and the ROOT.ML
zhang
parents: 30
diff changeset
     1
theory Myhill
62
d94209ad2880 Copy Myhill.thy into Myhill_2.thyand put Myhill_2.thy into logic ListP. Myhill.thy is now almost empty ready to be extended by new manuscripts.
zhang
parents: 57
diff changeset
     2
  imports Myhill_2
31
b6815473ee2e 1. Myhill.thy is proved to correct some typos. 2. Some sections are added to the first direction. 3. The small theory of list difference is now separated into Prefix_subtract.thy and the ROOT.ML
zhang
parents: 30
diff changeset
     3
begin
b6815473ee2e 1. Myhill.thy is proved to correct some typos. 2. Some sections are added to the first direction. 3. The small theory of list difference is now separated into Prefix_subtract.thy and the ROOT.ML
zhang
parents: 30
diff changeset
     4
73
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
     5
section {* Preliminaries *}
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
     6
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
     7
subsection {* Finite automata and \mht  \label{sec_fa_mh} *}
31
b6815473ee2e 1. Myhill.thy is proved to correct some typos. 2. Some sections are added to the first direction. 3. The small theory of list difference is now separated into Prefix_subtract.thy and the ROOT.ML
zhang
parents: 30
diff changeset
     8
b6815473ee2e 1. Myhill.thy is proved to correct some typos. 2. Some sections are added to the first direction. 3. The small theory of list difference is now separated into Prefix_subtract.thy and the ROOT.ML
zhang
parents: 30
diff changeset
     9
text {*
64
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
    10
69
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    11
A {\em determinisitc finite automata (DFA)} $M$ is a 5-tuple 
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    12
$(Q, \Sigma, \delta, s, F)$, where:
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    13
\begin{enumerate}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    14
  \item $Q$ is a finite set of {\em states}, also denoted $Q_M$.
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    15
  \item $\Sigma$ is a finite set of {\em alphabets}, also denoted $\Sigma_M$.
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    16
  \item $\delta$ is a {\em transition function} of type @{text "Q \<times> \<Sigma> \<Rightarrow> Q"} (a total function),
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    17
           also denoted $\delta_M$.
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    18
  \item @{text "s \<in> Q"} is a state called {\em initial state}, also denoted $s_M$.
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    19
  \item @{text "F \<subseteq> Q"} is a set of states named {\em accepting states}, also denoted $F_M$.
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    20
\end{enumerate}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    21
Therefore, we have $M = (Q_M, \Sigma_M, \delta_M, s_M, F_M)$. Every DFA $M$ can be interpreted as 
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    22
a function assigning states to strings, denoted $\dfa{M}$, the  definition of which is as the following:
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    23
\begin{equation}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    24
\begin{aligned}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    25
  \dfa{M}([]) &\equiv s_M \\
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    26
   \dfa{M}(xa) &\equiv  \delta_M(\dfa{M}(x), a)
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    27
\end{aligned}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    28
\end{equation}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    29
A string @{text "x"} is said to be {\em accepted} (or {\em recognized}) by a DFA $M$ if 
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    30
$\dfa{M}(x) \in F_M$. The language recoginzed by DFA $M$, denoted
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    31
$L(M)$, is defined as:
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    32
\begin{equation}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    33
  L(M) \equiv \{x~|~\dfa{M}(x) \in F_M\}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    34
\end{equation}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    35
The standard way of specifying a laugage $\Lang$ as {\em regular} is by stipulating that:
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    36
$\Lang = L(M)$ for some DFA $M$.
64
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
    37
69
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    38
For any DFA $M$, the DFA obtained by changing initial state to another $p \in Q_M$ is denoted $M_p$, 
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    39
which is defined as:
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    40
\begin{equation}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    41
    M_p \ \equiv\ (Q_M, \Sigma_M, \delta_M, p, F_M) 
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    42
\end{equation}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    43
Two states $p, q \in Q_M$ are said to be {\em equivalent}, denoted $p \approx_M q$, iff.
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    44
\begin{equation}\label{m_eq_def}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    45
  L(M_p) = L(M_q)
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    46
\end{equation}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    47
It is obvious that $\approx_M$ is an equivalent relation over $Q_M$. and 
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    48
the partition induced by $\approx_M$ has $|Q_M|$ equivalent classes.
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    49
By overloading $\approx_M$,  an equivalent relation over strings can be defined:
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    50
\begin{equation}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    51
  x \approx_M y ~ ~ \equiv ~ ~ \dfa{M}(x) \approx_M \dfa{M}(y)
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    52
\end{equation}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    53
It can be proved that the the partition induced by $\approx_M$ also has $|Q_M|$ equivalent classes.
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    54
It is also easy to show that: if $x \approx_M y$, then $x \approx_{L(M)} y$, and this means
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    55
$\approx_M$ is a more refined equivalent relation than $\approx_{L(M)}$. Since partition induced by
73
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    56
$\approx_M$ is finite, the one induced by $\approx_{L(M)}$ must also be finite, and this is 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    57
one of the two directions of \mht:
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    58
\begin{Lem}[\mht , Direction two]
69
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    59
  If a language $\Lang$ is regular (i.e. $\Lang = L(M)$ for some DFA $M$), then 
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    60
  the partition induced by $\approx_\Lang$ is finite.
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    61
\end{Lem}
68
dceb84acdee8 Check in Myhill.thy before trying another way to explain DFA
zhang
parents: 64
diff changeset
    62
69
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    63
The other direction is:
73
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    64
\begin{Lem}[\mht , Direction one]\label{auto_mh_d1}
69
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    65
  If  the partition induced by $\approx_\Lang$ is finite, then
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    66
  $\Lang$ is regular (i.e. $\Lang = L(M)$ for some DFA $M$).
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    67
\end{Lem}
73
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    68
The $M$ we are seeking when prove lemma \ref{auto_mh_d2} can be constructed out of $\approx_\Lang$,
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    69
denoted $M_\Lang$ and defined as the following:
69
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    70
\begin{subequations}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    71
\begin{eqnarray}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    72
  Q_{M_\Lang} ~ & \equiv & ~ \{ \cls{x}{\approx_\Lang}~|~ x \in \Sigma^* \}\\
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    73
  \Sigma_{M_\Lang} ~ & \equiv & ~ \Sigma_M \\
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    74
  \delta_{M_\Lang} ~ & \equiv & ~ \left (\lambda (\cls{x}{\approx_\Lang}, a).  \cls{xa}{\approx_\Lang} \right) \\
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    75
  s_{M_\Lang} ~ & \equiv & ~ \cls{[]}{\approx_\Lang} \\
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    76
  F_{M_\Lang} ~ & \equiv & ~ \{ \cls{x}{\approx_\Lang}~|~ x \in \Lang \}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    77
\end{eqnarray}
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    78
\end{subequations}
73
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    79
It can be proved that $Q_{M_\Lang}$ is indeed finite and $\Lang = L(M_\Lang)$, so lemma \ref{auto_mh_d1} holds.
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    80
It can also be proved that $M_\Lang$ is the minimal DFA (therefore unique) which recoginzes $\Lang$.
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    81
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    82
68
dceb84acdee8 Check in Myhill.thy before trying another way to explain DFA
zhang
parents: 64
diff changeset
    83
69
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    84
*}
68
dceb84acdee8 Check in Myhill.thy before trying another way to explain DFA
zhang
parents: 64
diff changeset
    85
73
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    86
subsection {* The objective and the underlying intuition *}
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    87
69
ecf6c61a4541 A formal presentation of automaton and Myhill-Nerrode theorem added to serve as a basis for further discussion
zhang
parents: 68
diff changeset
    88
text {*
73
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    89
  It is now obvious from section \ref{sec_fa_mh} that \mht\ can be established easily when
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    90
  {\em reglar languages} are defined as ones recognized by finite automata. 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    91
  Under the context where the use of finite automata is forbiden, the situation is quite different.
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    92
  The theorem now has to be expressed as:
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    93
  \begin{Thm}[\mht , Regular expression version]
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    94
      A language $\Lang$ is regular (i.e. $\Lang = L(\re)$ for some {\em regular expression} $\re$)
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    95
      iff. the partition induced by $\approx_\Lang$ is finite.
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    96
  \end{Thm}
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    97
  The proof of this version consists of two directions (if the use of automata are not allowed):
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    98
  \begin{description}
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
    99
    \item [Direction one:] 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   100
      generating a regular expression $\re$ out of the finite partition induced by $\approx_\Lang$,
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   101
      such that $\Lang = L(\re)$.
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   102
    \item [Direction two:]
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   103
          showing the finiteness of the partition induced by $\approx_\Lang$, under the assmption
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   104
          that $\Lang$ is recognized by some regular expression $\re$ (i.e. $\Lang = L(\re)$).
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   105
  \end{description}
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   106
  The development of these two directions consititutes the body of this paper.
64
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   107
73
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   108
*}
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   109
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   110
section {* Direction @{text "regular language \<Rightarrow>finite partition"} *}
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   111
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   112
text {*
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   113
  Although not used explicitly, the notion of finite autotmata and its relationship with 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   114
  language partition, as outlined in section \ref{sec_fa_mh}, still servers as important intuitive 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   115
  guides in the development of this paper.
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   116
  For example, {\em Direction one} follows the {\em Brzozowski algebraic method}
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   117
  used to convert finite autotmata to regular expressions, under the intuition that every 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   118
  partition member $\cls{x}{\approx_\Lang}$ is a state in the DFA $M_\Lang$  constructed to prove 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   119
  lemma \ref{auto_mh_d1} of section \ref{sec_fa_mh}.
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   120
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   121
  The basic idea of Brzozowski method is to set aside an unknown for every DFA state and 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   122
  describe the state-trasition relationship by charateristic equations. 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   123
  By solving the equational system such obtained, regular expressions 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   124
  characterizing DFA states are obtained. There are choices of 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   125
  how DFA states can be characterized.  The first is to characterize a DFA state by the set of 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   126
  striings leading from the state in question into accepting states. 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   127
  The other choice is to characterize a DFA state by the set of strings leading from initial state 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   128
  into the state in question. For the first choice, the lauguage recognized by a DFA can 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   129
  be characterized by the regular expression characterizing initial state, while 
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   130
  in the second choice, the languaged of the DFA can be characterized by the summation of
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   131
  regular expressions of all accepting states.
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   132
*}
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   133
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   134
text {*
64
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   135
\begin{figure}[h!]
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   136
\centering
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   137
\begin{minipage}{0.5\textwidth}
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   138
\scalebox{0.8}{
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   139
\begin{tikzpicture}[ultra thick,>=latex]
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   140
  \node[draw,circle,initial] (start) {$X_0$};
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   141
  \node[draw,circle,accepting] at ($(start) + (3.5cm,2cm)$) (ac1) {$X_1$};
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   142
  \node[draw,circle,accepting] at ($(start) + (3.5cm,-2cm)$) (ac2) {$X_2$};
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   143
  \node[draw,circle] at ($(start) + (6.5cm,0cm)$) (ab) {$X_3$};
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   144
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   145
  \path[->] (start) edge [bend left] node [midway, above] {$a$} (ac1);
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   146
  \path[->] (start) edge [bend right] node [midway, below] {$b$} (ac2);
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   147
  \path[->] (ac1) edge [loop above] node [midway, above] {$b$} (ac1);
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   148
  \path[->] (ac2) edge [loop below] node [midway, below] {$a$} (ac2);
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   149
  \path[->] (ac1) edge [bend right] node [midway, left] {$c$} (ac2);
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   150
  \path[->] (ac2) edge [bend right] node [midway, right] {$c$} (ac1);
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   151
  \path[->] (ac1) edge node [midway, sloped, above] {$d$} (start);
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   152
  \path[->] (ac2) edge node [midway, sloped, above] {$d$} (start);
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   153
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   154
  \path [draw, rounded corners,->,dashed] (start) -- ($(start) + (0cm, 3.7cm)$)
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   155
         -- ($(ab) + (0cm, 3.7cm)$)  node[midway,above,sloped]{$\Sigma - \{a, b\}$} -- (ab);
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   156
  \path[->,dashed] (ac1) edge node [midway, above, sloped] {$\Sigma - \{b,c,d\}$} (ab);
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   157
  \path[->,dashed] (ac2) edge node [midway, below, sloped] {$\Sigma - \{a,c,d\}$} (ab);
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   158
  \path[->,dashed] (ab) edge [loop right] node [midway, right] {$\Sigma$} (ab);
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   159
\end{tikzpicture}}
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   160
\end{minipage}
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   161
\caption{The relationship between automata and finite partition}\label{fig_auto_part_rel}
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   162
\end{figure}
b69d4e04e64a Added something to Myhill.thy, trying to explain the relationship between finite automata and language partition.
zhang
parents: 62
diff changeset
   163
55
d71424eb5d0c Myhill.thy IsabelleMakefile modified
zhang
parents: 49
diff changeset
   164
  *}
d71424eb5d0c Myhill.thy IsabelleMakefile modified
zhang
parents: 49
diff changeset
   165
73
79de7de104c8 More into first direction
zhang
parents: 69
diff changeset
   166
31
b6815473ee2e 1. Myhill.thy is proved to correct some typos. 2. Some sections are added to the first direction. 3. The small theory of list difference is now separated into Prefix_subtract.thy and the ROOT.ML
zhang
parents: 30
diff changeset
   167
end