Paper/Paper.thy
changeset 114 c5eb5f3065ae
parent 113 ec774952190c
child 115 c5f138b5fc88
--- a/Paper/Paper.thy	Fri Feb 18 12:14:07 2011 +0000
+++ b/Paper/Paper.thy	Fri Feb 18 14:26:23 2011 +0000
@@ -183,7 +183,9 @@
   to be no substantial formalisation of automata theory and regular languages 
   carried out in HOL-based theorem provers. Nipkow establishes in 
   \cite{Nipkow98} the link between regular expressions and automata in
-  the context of lexing. The only larger formalisations of automata theory 
+  the context of lexing. Berghofer and Reiter formalise automata working over 
+  bit strings in the context of Presburger arithmetic \cite{BerghoferReiter09}.
+  The only larger formalisations of automata theory 
   are carried out in Nuprl \cite{Constable00} and in Coq (for example 
   \cite{Filliatre97}).
   
@@ -846,33 +848,31 @@
 section {* Myhill-Nerode, Second Part *}
 
 text {*
-  TO BE DONE
-
 
   \begin{theorem}
   Given @{text "r"} is a regular expressions, then @{thm Myhill_Nerode2}.
   \end{theorem}  
 
-%  \begin{proof}
-%  By induction on the structure of @{text r}. The cases for @{const NULL}, @{const EMPTY}
-%  and @{const CHAR} are straightforward, because we can easily establish
+  \begin{proof}
+  By induction on the structure of @{text r}. The cases for @{const NULL}, @{const EMPTY}
+  and @{const CHAR} are straightforward, because we can easily establish
 
-%  \begin{center}
-%  \begin{tabular}{l}
-%  @{thm quot_null_eq}\\
-%  @{thm quot_empty_subset}\\
-%  @{thm quot_char_subset}
-%  \end{tabular}
-%  \end{center}
-%
-%  \end{proof}
+  \begin{center}
+  \begin{tabular}{l}
+  @{thm quot_null_eq}\\
+  @{thm quot_empty_subset}\\
+  @{thm quot_char_subset}
+  \end{tabular}
+  \end{center}
+
+  \end{proof}
 
 
-%  @{thm tag_str_ALT_def[where ?L1.0="A" and ?L2.0="B"]}
+  @{thm tag_str_ALT_def[where ?L1.0="A" and ?L2.0="B"]}
 
-%  @{thm tag_str_SEQ_def[where ?L1.0="A" and ?L2.0="B"]}
+  @{thm tag_str_SEQ_def[where ?L1.0="A" and ?L2.0="B"]}
  
-%  @{thm tag_str_STAR_def[where ?L1.0="A"]}
+  @{thm tag_str_STAR_def[where ?L1.0="A"]}
 *}
 
 
@@ -902,9 +902,9 @@
  
   \noindent
   holds for any strings @{text "s\<^isub>1"} and @{text
-  "s\<^isub>2"}. Therefore @{text A} and @{term "-A"} give rise to the same
-  partitions. 
-  Proving the same result via automata would be quite involved. It includes the
+  "s\<^isub>2"}. Therefore @{text A} and the complement language @{term "-A"} give rise to the same
+  partitions.  Proving the existence of such a regular expression via automata would 
+  be quite involved. It includes the
   steps: regular expression @{text "\<Rightarrow>"} non-deterministic automaton @{text
   "\<Rightarrow>"} deterministic automaton @{text "\<Rightarrow>"} complement automaton @{text "\<Rightarrow>"}
   regular expression.
@@ -913,13 +913,13 @@
   direction and ??? for the second. While this might be seen as too large to
   count as a concise proof pearl, this should be seen in the context of the
   work done by Constable at al \cite{Constable00} who formalised the
-  Myhill-Nerode theorem in Nuprl using automata. This is the most 
+  Myhill-Nerode theorem in Nuprl using automata. 
   They write that their
-  four-member team needed something on the magnitute of 18 months to formalise
-  the Myhill-Nerode theorem. The estimate for our formalisation is that we
+  four-member team needed something on the magnitute of 18 months for their
+  formalisation. The estimate for our formalisation is that we
   needed approximately 3 months and this included the time to find our proof
   arguments. Unlike Constable et al, who were able to follow the proofs from
-  \cite{???}, we had to find our own arguments.  So for us the formalisation
+  \cite{HopcroftUllman69}, we had to find our own arguments.  So for us the formalisation
   was not the bottleneck. It is hard to gauge the size of a formalisation in
   Nurpl, but from what is shown in the Nuprl Math Library about their
   development it seems substantially larger than ours. The code of
@@ -934,7 +934,7 @@
   algebraic mehod} used to convert a finite automaton to a regular
   expression \cite{Brzozowski64}. The close connection can be seen by considering the equivalence
   classes as the states of the minimal automaton for the regular language.
-  However there are some subtle differences. If we identify equivalence
+  However there are some subtle differences. Since we identify equivalence
   classes with the states of the automaton, then the most natural choice is to
   characterise each state with the set of strings starting from the initial
   state leading up to that state. Usually, however, the states are characterised as the
@@ -948,7 +948,7 @@
   of~\cite{Brzozowski64} in order to prove the second direction of the
   Myhill-Nerode theorem. There he calculates the derivatives for regular
   expressions and shows that there can be only finitely many of them. We could
-  use as the tag of a string @{text s} the derivative of a regular expression
+  have used as the tag of a string @{text s} the derivative of a regular expression
   generated with respect to @{text s}.  Using the fact that two strings are
   Myhill-Nerode related whenever their derivative is the same together with
   the fact that there are only finitely many derivatives for a regular