
diff -r 05da74214979 -r 28e98ede8599 Journal/Paper.thy
--- a/Journal/Paper.thy	Thu Aug 25 19:33:41 2011 +0000
+++ b/Journal/Paper.thy	Fri Aug 26 17:23:46 2011 +0000
@@ -359,7 +359,7 @@
   lexing. Berghofer and Reiter \cite{BerghoferReiter09} formalise automata
   working over bit strings in the context of Presburger arithmetic.  The only
   larger formalisations of automata theory are carried out in Nuprl
-  \cite{Constable00} and in Coq \cite{Filliatre97}.
+  \cite{Constable00} and in Coq, e.g.~\cite{Filliatre97,Almeidaetal10}.
 
   Also one might consider automata theory and regular languages as a meticulously
   researched subject where everything is crystal clear. However, paper proofs about
@@ -474,7 +474,9 @@
   always be split up into a non-empty prefix belonging to @{text "A"} and the
   rest being in @{term "A\<star>"}. We omit
   the proofs for these properties, but invite the reader to consult our
-  formalisation.\footnote{Available at \url{http://www4.in.tum.de/~urbanc/regexp.html}}
+  formalisation.\footnote{Available in the Archive of Formal Proofs at 
+  \url{http://afp.sf.net/entries/Myhill-Nerode.shtml} 
+  \cite{myhillnerodeafp11}.}
 
   The notation in Isabelle/HOL for the quotient of a language @{text A}
   according to an equivalence relation @{term REL} is @{term "A // REL"}. We
@@ -1759,7 +1761,8 @@
   ensuring that there are only finitely many equivalence
   classes. Unfortunately, this is not true in general. Sakarovitch gives an
   example where a regular expression has infinitely many derivatives
-  w.r.t.~the language \mbox{@{term "({a} \<cdot> {b})\<star> \<union> ({a} \<cdot> {b})\<star> \<cdot> {a}"}}
+  w.r.t.~the language @{text "(ab)\<^isup>\<star> \<union> (ab)\<^isup>\<star>a"}, which is formally 
+  written in our notation as \mbox{@{text "{[a,b]}\<^isup>\<star> \<union> ({[a,b]}\<^isup>\<star> \<cdot> {[a]})"}}
   (see \cite[Page~141]{Sakarovitch09}).
 
 
@@ -2116,7 +2119,7 @@
   us to use the standard operation for disjoint union whenever we need to compose two
   automata. Unfortunately, we cannot use such a polymorphic definition
   in HOL as part of the definition for regularity of a language (a predicate
-  over set of strings).  Consider the following attempt:
+  over set of strings).  Consider for example the following attempt:
 
   \begin{center}
   @{text "is_regular A \<equiv> \<exists>M(\<alpha>). is_dfa (M) \<and> \<calL>(M) = A"}
@@ -2220,15 +2223,24 @@
   in the context of the work done by Constable at al \cite{Constable00} who
   formalised the Myhill-Nerode theorem in Nuprl using automata. They write
   that their four-member team needed something on the magnitude of 18 months
-  for their formalisation. The estimate for our formalisation is that we
+  for their formalisation. Also, Filli\^atre reports that his formalisation in 
+  Coq of automata theory and Kleene's theorem is ``rather big''. 
+  \cite{Filliatre97} More recently, Almeida et al reported about another 
+  formalisation of regular languages in Coq \cite{Almeidaetal10}. Their 
+  main result is the
+  correctness of Mirkin's construction of an automaton from a regular
+  expression using partial derivatives. This took approximately 10600 lines
+  of code.  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{HopcroftUllman69}, we had to find our own arguments.  So for us the
+  arguments. Unlike Constable et al, who were able to follow the Myhill-Nerode 
+  proof from \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
-  ours can be found in the Mercurial Repository at
-  \mbox{\url{http://www4.in.tum.de/~urbanc/regexp.html}}.\medskip
+  about their development it seems substantially larger than ours. We attribute
+  this to our use of regular expressions, which meant we did not need to `fight' 
+  the theorem prover. The code of
+  our formalisation can be found in the Archive of Formal Proofs at
+  \mbox{\url{http://afp.sf.net/entries/Myhill-Nerode.shtml}} \cite{myhillnerodeafp11}.\medskip
   
   \noindent
   {\bf Acknowledgements:}




