author | Christian Urban <christian dot urban at kcl dot ac dot uk> |
Sun, 10 Nov 2013 17:07:19 +0000 | |
changeset 392 | 87d3306acca8 |
parent 374 | 01d223421ba0 |
permissions | -rw-r--r-- |
374
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
1 |
\documentclass[12pt]{article} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
2 |
\usepackage{times} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
3 |
\usepackage{a4} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
4 |
\usepackage{hyperref} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
5 |
\usepackage[comma,square]{natbib} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
6 |
\usepackage{tikz} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
7 |
\usetikzlibrary{automata} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
8 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
9 |
\begin{document} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
10 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
11 |
\noindent |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
12 |
{\bf Dear Dale, dear Reviewers,}\bigskip |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
13 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
14 |
\noindent |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
15 |
Thank you very much for your time and effort in reviewing this paper. We really appreciate |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
16 |
this. However we passionately believe that the most important aspect of the paper has \underline{\bf no}t been taken into account |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
17 |
when reaching your decision, and that Referee No 3, who we assume has extensive expertise in |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
18 |
regular languages, has proved our point in his review. He brilliantly writes: |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
19 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
20 |
\begin{quote}\it |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
21 |
``the Myhill-Nerode theorem admits a 15-20 lines fairly detailed proof |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
22 |
(e.g., see the one given on wikipedia) ; being able to formalise it |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
23 |
is not a real challenge from my point of view.'' |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
24 |
\end{quote} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
25 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
26 |
\noindent |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
27 |
The problem is it \underline{\bf is} a challenge in theorem provers! And the |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
28 |
real value of the paper and its novelty is that this is a surprising fact, even for experts |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
29 |
in regular languages, as the report of Referee No 3 shows. Because it is |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
30 |
surprising, we really think the paper should appear in a more general journal than one |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
31 |
specialised on theorem provers (after all, many theorem prover people already |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
32 |
appreciate the difficulties; they |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
33 |
just did not know of a way how to overcome them elegantly). |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
34 |
We hope you share with us the belief that theorem prover proofs might not actually |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
35 |
be used in all subjects, but they are |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
36 |
the gold standard of proofs and all researchers should be aware of them.\medskip |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
37 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
38 |
We therefore kindly ask you to reconsider the decision from this |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
39 |
point of view and also ask you to consider the supporting |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
40 |
numbers, which we provided in the paper in order to prove that formalising automata theory \underline{\bf is} a challenge. |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
41 |
We list them below again for quick reference. |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
42 |
We are also happy to implement every improvement you suggest that make our general point |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
43 |
and proofs clearer.\medskip |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
44 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
45 |
We can also give one \underline{\bf new} datapoint: \citet{LammichTuerk12} took up the challenge and have formalised a library for NFAs and DFAs |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
46 |
in approximately 7000 of lines of Isabelle code---this just sets up the framework. For proving the correctness of |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
47 |
Hopcroft's algorithm they need an additional 7000 lines of Isabelle code. In contrast, our |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
48 |
paper describes a formalised proof of the most central property in regular language |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
49 |
theory taking only 1500(!) lines in Isabelle including all definitions and supporting |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
50 |
lemmas. However, the difficulties with formalising automata theory are \underline{\bf not} restricted |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
51 |
to Isabelle, as the Reviewers assert, and that you do not have to take |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
52 |
our word for it, we list below numbers and comments |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
53 |
made by researchers from \underline{\bf Coq}, \underline{\bf Isabelle} and \underline{\bf Nuprl}. We think similar comments would apply to |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
54 |
\underline{\bf Matita}, for example, and therefore our paper is written to be as much as possible |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
55 |
agnostic with respect to a single theorem prover. \medskip |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
56 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
57 |
We answer below the specific points the Reviewers raised. We also hope to surprise again |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
58 |
Referee No 3 |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
59 |
in that automata complementation is more tricky than it first might appear and |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
60 |
most textbooks would suggest.\bigskip |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
61 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
62 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
63 |
\newpage |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
64 |
\noindent |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
65 |
\underline{\bf Reviewer 1}\medskip |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
66 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
67 |
\begin{itemize} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
68 |
\item additions with respect to ITP: section 4 gives now a more detailed proof; section 5 and 6 are |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
69 |
new; the introduction and conclusion are extended with more numbers and comments, which should prove |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
70 |
beyond doubt our general point that automata are difficult to reason about and regular expressions are |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
71 |
a better substitute |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
72 |
\item we did {\bf not} cite \citet{OwensReppyTuron09} for the comment that derivatives ``went lost in the sands of time'' |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
73 |
but that they proved with numbers and an actual implementation that in the context of lexing, derivatives are |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
74 |
good enough in practice; we believe that this statement is still accurate and it is the only paper that we could |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
75 |
cite for this |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
76 |
\item we would be grateful to receive a concrete pointer to the literature: ``{\it The technique is folklore, and can be found in traditional textbooks (possibly passing through left linear |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
77 |
grammars)}'' |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
78 |
\end{itemize}\bigskip |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
79 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
80 |
\noindent |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
81 |
\underline{\bf Reviewer 2}\medskip |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
82 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
83 |
\begin{itemize} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
84 |
\item we hope the Reviewer agrees with us that an actual deep analysis of the technical |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
85 |
details and a comparison with Coq/Sreflect would be a major distraction from the main |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
86 |
point that the paper wants to convey; |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
87 |
such an analysis would also be in violation with the editor's guidelines for ToCL |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
88 |
\end{itemize}\bigskip |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
89 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
90 |
\noindent |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
91 |
\underline{\bf Reviewer 3}\medskip |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
92 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
93 |
\noindent |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
94 |
We honestly enjoyed the comments by Reviewer 3 very much, since they pretty much |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
95 |
agreed with our view we helt before we started this work---automata theory is |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
96 |
more than 50 years old, surely nothing can be challenging there. We hope, however, the |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
97 |
following comments by independent Coq/Nuprl/Isabelle-researchers destroy this view: |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
98 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
99 |
\begin{itemize} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
100 |
\item[] {\bf Numbers and comments from the literature that reasoning about automata is challenging in theorem provers |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
101 |
(our formalisation is 1500 loc):}\medskip |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
102 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
103 |
\item[{\bf Coq:}] \citet{Braibant12} formalises automata theory including |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
104 |
Myhill-Nerode: he writes that our formalisation based on |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
105 |
regular expressions ``{\it is more concise}'' than his; he also writes |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
106 |
there are no problems with standard textbook proofs, |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
107 |
except for the ``{\it {\bf intrinsic} difficulties of working with |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
108 |
rectangular matrices}'' in Coq ($>$10k loc) |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
109 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
110 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
111 |
\item [{\bf Coq:}] \citet{Filliatre97} formalised automata theory using matrices |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
112 |
leading only to Kleene's theorem, but not |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
113 |
Myhill-Nerode nor closure under complementation: he |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
114 |
writes his formalisation based on matrices is |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
115 |
``{\it rather big}'' ($>$4.5k loc) |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
116 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
117 |
\item[{\bf Coq:}] \citet{Almeidaetal10} verify Mirkin's partial derivatives |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
118 |
automata ($>$10k lines of code using matrices) |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
119 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
120 |
\item [{\bf Nuprl:}] \citet{Constable00} estimate their 4-member team needs |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
121 |
11 months with Nuprl for chapters 1 - 11 from Hopcroft |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
122 |
\& Ullman, which includes Myhill-Nerode ($>$100k lines |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
123 |
of code) |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
124 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
125 |
\item[{\bf Isabelle:}] \citet{LammichTuerk12} have in Isabelle formalised an automata |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
126 |
library (7k loc) and verified Hopcroft's algorithm |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
127 |
(additional 7k loc) |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
128 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
129 |
\item[{\bf Isabelle:}] |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
130 |
\citet{Nipkow98} formalises automata with functions but writes |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
131 |
``{\it proofs require a painful amount of detail}'' |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
132 |
\end{itemize} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
133 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
134 |
\noindent |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
135 |
These numbers and comments should |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
136 |
convincingly negate the premises of the following comments from the judgement |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
137 |
by Reviewer No 3: |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
138 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
139 |
\begin{itemize} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
140 |
\item ``{\it all formalised mathematical results are well known and established |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
141 |
since more than fifty years''} ({\bf we do not contest this nor claim otherwise; we talk about |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
142 |
theorem prover proofs - there issues are interesting and we have not seen |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
143 |
any previous work that took our view of starting with a definition for regular expressions only}) |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
144 |
\item ``{\it the Myhill-Nerode theorem admits a 15-20 lines fairly detailed proof |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
145 |
(e.g., see the one given on wikipedia) ; being able to formalise it |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
146 |
is not a real challenge from my point of view.}'' {(\bf not true)} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
147 |
\item ``{\it the followed approach is highly specific to Isabelle/HOL: it is |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
148 |
driven by the postulate that it's hard to manipulate automata or |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
149 |
matrices.}'' ({\bf not true}) |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
150 |
\item ``{\it despite what the authors claim, I'm certain that a mechanised proof |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
151 |
of this Theorem could be straightforward in other theorem provers, |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
152 |
using automata for the right-to-left direction and partial |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
153 |
derivatives for the left-to-right direction''} {\bf (not true)} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
154 |
\end{itemize} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
155 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
156 |
\noindent |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
157 |
Reviewer 3 also raised the following criticisms in his judgement: |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
158 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
159 |
\begin{itemize} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
160 |
\item ``{\it Moreover, the authors insist on the fact that they don't want to use |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
161 |
automata, while they actually just rephrase automata-based proofs, |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
162 |
without using the word `automaton'}'' |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
163 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
164 |
We did not deliberately avoid the word ``automaton'', but the {\bf definition} of what an automaton |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
165 |
is. As soon as we start with such a definition, be it in terms of functions, matrices or graphs, we would be in trouble |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
166 |
with formalised proofs as the loc-numbers above show in comparison to ours. |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
167 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
168 |
\item ``{\it All in all, the paper should be presented as `here is a way of doing |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
169 |
automata in HOL'. I'm sure this would make it much clearer and more |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
170 |
interesting, notably since doing automata is supposed to be difficult |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
171 |
in HOL.}'' |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
172 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
173 |
The fundamental difference is that it is easier in {\bf every} theorem prover to |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
174 |
reason about inductive datatypes in comparison with non-inductively defined structures |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
175 |
(graphs, functions, matrices). The specific problem the paper addresses is that |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
176 |
all textbook proofs of Myhill-Nerode start with a definition of automata leading |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
177 |
to cumbersome theorem prover proofs in {\bf all} theorem provers we are aware of. |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
178 |
\end{itemize}\bigskip |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
179 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
180 |
\subsection*{Complementation of Automata} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
181 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
182 |
Finally, we like to comment on the difficulty about complementation of automata, which |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
183 |
on {\bf paper} looks trivial and which highlights the differences between pencil-and-paper textbook |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
184 |
reasoning and formal proofs in a theorem prover: |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
185 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
186 |
\begin{quote}\it |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
187 |
``if we take the definition `a language is regular if recognised by |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
188 |
a finite deterministic automaton (DFA)' then closure under |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
189 |
complementation is **trivial** (revert the accepting status of |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
190 |
states, that's it)'' |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
191 |
\end{quote} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
192 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
193 |
\noindent |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
194 |
Given a representation of automata as graphs or |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
195 |
matrices, then the following |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
196 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
197 |
\begin{center} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
198 |
\begin{tikzpicture}[scale=3, line width=0.7mm] |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
199 |
\node[state, initial] (q0) at ( 0,1) {$q_0$}; |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
200 |
\node[state, accepting] (q1) at ( 1,1) {$q_1$}; |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
201 |
\path[->] (q0) edge node[above] {$a$} (q1) |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
202 |
(q1) edge [loop right] node {$b$} () |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
203 |
; |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
204 |
\end{tikzpicture} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
205 |
\end{center} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
206 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
207 |
\noindent |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
208 |
fits the definition as a graph or matrix of nodes. However interchanging the terminal and |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
209 |
non-terminal states gives the {\bf incorrect} result. What is needed is the |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
210 |
notion of a {\bf completed} automaton, such as |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
211 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
212 |
\begin{center} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
213 |
\begin{tikzpicture}[scale=3, line width=0.7mm] |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
214 |
\node[state, initial] (q0) at ( 0,1) {$q_0$}; |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
215 |
\node[state, accepting] (q1) at ( 1,1) {$q_1$}; |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
216 |
\node[state] (q3) at (0.5, 1.5) {$q_{sink}$}; |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
217 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
218 |
\path[->] (q0) edge node[above] {$a$} (q1) |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
219 |
(q1) edge [loop right] node {$b$} () |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
220 |
(q0) edge node[above] {$b$} (q3) |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
221 |
(q1) edge node[above] {$a$} (q3) |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
222 |
(q3) edge [loop above] node {$a, b$} () |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
223 |
; |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
224 |
\end{tikzpicture} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
225 |
\end{center} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
226 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
227 |
\noindent |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
228 |
This additional restriction unfortunately percolates through formalised proofs. In the work by |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
229 |
\citet{LammichTuerk12}, for example, this completeness constrain is mentioned in 160 places |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
230 |
out of almost 600 lemmas. Since, their representation is based on graphs (sets of nodes and edges), the restriction |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
231 |
about finitely many nodes is mentioned in another 108 places. Similarly, badly fare the definitions |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
232 |
based on matrices in Coq: they need to formalise the shape of matrices and carry around |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
233 |
this baggage in their proofs and operations (which {\bf all} authors of formalised automata theory in |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
234 |
Coq point out as clunky). Also, attempting to imitate the textbook definition of a finite |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
235 |
function of type state $\times$ letter $\rightarrow$ state, which by the way has not been |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
236 |
used by anybody who formalised automata theory in Coq, does not solve the difficulties: since |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
237 |
no theorem prover has a finite-function type built in, the additional constraint about finite |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
238 |
domains need to be carried around, again making proofs clunky. |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
239 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
240 |
Regular expressions really solve all the problems mentioned above: they are inductive |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
241 |
datatypes in all theorem provers, they come with simple structural induction principles |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
242 |
for free and operations can be easily defined without any restrictions. The concrete question |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
243 |
the paper answers is whether regular expressions are enough to obtain the central result in |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
244 |
regular language theory side-stepping the definition of automata which, according to |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
245 |
all previous work, leads to cumbersome reasoning in all theorem provers. The answer we give is yes: |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
246 |
If you are in the business of verifying Hopcroft's algorithm there is no way around automata. |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
247 |
But for Myhill-Nerode there is, and the work involved is reduced by roughly a {\bf factor of 5}. |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
248 |
We have not found this answer in any of the textbooks or papers available to us. We are happy to |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
249 |
be proved otherwise. |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
250 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
251 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
252 |
\bibliographystyle{apa} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
253 |
\bibliography{root} |
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
254 |
|
01d223421ba0
slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
255 |
\end{document} |