merged
authorChristian Urban <urbanc@in.tum.de>
Sun, 22 Aug 2010 12:36:53 +0800
changeset 2429 b29eb13d3f9d
parent 2428 58e60df1ff79 (current diff)
parent 2423 f5cbf74d4ec5 (diff)
child 2430 a746d49b0240
merged
--- a/Quotient-Paper/Paper.thy	Sun Aug 22 11:00:53 2010 +0800
+++ b/Quotient-Paper/Paper.thy	Sun Aug 22 12:36:53 2010 +0800
@@ -152,6 +152,9 @@
 %%% Secondly, isn't the _set of_ equivalence classes mapped to and from the new type?
 %%% Thirdly, what do the words "non-empty subset" refer to ?
 
+%%% Cezary: I like the diagram, maybe 'new type' could be outside, but otherwise
+%%% I wouldn't change it.
+
   \begin{center}
   \mbox{}\hspace{20mm}\begin{tikzpicture}
   %%\draw[step=2mm] (-4,-1) grid (4,1);
@@ -596,6 +599,16 @@
   In this case @{text MAP} generates  the 
   aggregate map-function:
 
+%%% FIXME: Reviewer 2 asks: last two lines defining ABS and REP for
+%%% unequal type constructors: How are the $\varrho$s defined? The
+%%% following paragraph mentions them, but this paragraph is unclear,
+%%% since it then mentions $\alpha$s, which do not seem to be defined
+%%% either. As a result, I do not understand the first two sentences
+%%% in this paragraph. I can imagine roughly what the following
+%%% sentence `The $\sigma$s' are given by the matchers for the
+%%% $\alpha$s$ when matching $\varrho$s $\kappa$ against $\sigma$s
+%%% $\kappa$.' means, but also think that it is too vague.
+
   @{text [display, indent=10] "\<lambda>a b. map_prod (map_list a) b"}
   
   \noindent
@@ -693,6 +706,9 @@
   to slightly extend Homeier's definitions in order to deal with quotient
   compositions. 
 
+%%% FIXME: Reviewer 3 asks why are the definitions that follow enough to deal
+%%% with quotient composition.
+
   To formally define what respectfulness is, we have to first define 
   the notion of \emph{aggregate equivalence relations} using the function @{text "REL(\<sigma>, \<tau>)"}
   The idea behind this function is to simultaneously descend into the raw types
@@ -777,6 +793,13 @@
   and a corresponding quotient constant @{text "c\<^isub>q :: \<tau>"}, then a
   preservation property is as follows
 
+%%% FIXME: Reviewer 2 asks: You say what a preservation theorem is,
+%%% but not which preservation theorems you assume. Do you generate a
+%%% proof obligation for a preservation theorem for each raw constant
+%%% and its corresponding lifted constant?
+
+%%% Cezary: I think this would be a nice thing to do but we have not
+%%% done it, the theorems need to be 'guessed' from the remaining obligations
 
   @{text [display, indent=10] "Quotient R\<^bsub>\<alpha>s\<^esub> Abs\<^bsub>\<alpha>s\<^esub> Rep\<^bsub>\<alpha>s\<^esub> implies  ABS (\<sigma>, \<tau>) c\<^isub>r = c\<^isub>r"}
 
@@ -826,6 +849,12 @@
 
 text {*
 
+%%% FIXME Reviewer 3 asks: Section 5 shows the technicalities of
+%%% lifting theorems. But there is no clarification about the
+%%% correctness. A reader would also be interested in seeing some
+%%% discussions about the generality and limitation of the approach
+%%% proposed there
+
   The main benefit of a quotient package is to lift automatically theorems over raw
   types to theorems over quotient types. We will perform this lifting in
   three phases, called \emph{regularization},
@@ -840,6 +869,10 @@
   first two phases into the form the user has specified. Abstractly, our
   package establishes the following three proof steps:
 
+%%% FIXME: Reviewer 1 complains that the reader needs to guess the
+%%% meaning of reg_thm and inj_thm, as well as the arguments of REG
+%%% which are given above. I wouldn't change it.
+
   \begin{center}
   \begin{tabular}{l@ {\hspace{4mm}}l}
   1.) Regularization & @{text "raw_thm \<longrightarrow> reg_thm"}\\
@@ -951,6 +984,15 @@
   In this definition we again omitted the cases for existential and unique existential
   quantifiers. 
 
+%%% FIXME: Reviewer2 citing following sentence: You mention earlier
+%%% that this implication may fail to be true. Does that meant that
+%%% the `first proof step' is a heuristic that proves the implication
+%%% raw_thm \implies reg_thm in some instances, but fails in others?
+%%% You should clarify under which circumstances the implication is
+%%% being proved here.
+%%% Cezary: It would be nice to cite Homeiers discussions in the
+%%% Quotient Package manual from HOL (the longer paper), do you agree?
+
   In the first proof step, establishing @{text "raw_thm \<longrightarrow> reg_thm"}, we always 
   start with an implication. Isabelle provides \emph{mono} rules that can split up 
   the implications into simpler implicational subgoals. This succeeds for every
@@ -971,6 +1013,9 @@
   \noindent
   If @{term R\<^isub>2} is an equivalence relation, we can prove that for any predicate @{term P}
 
+%%% FIXME Reviewer 1 claims the theorem is obviously false so maybe we
+%%% should include a proof sketch?
+
   @{thm [display, indent=10] (concl) ball_reg_eqv_range[of R\<^isub>1 R\<^isub>2, no_vars]}
 
   \noindent
@@ -1030,9 +1075,11 @@
 
 section {* Examples \label{sec:examples} *}
 
-(* Mention why equivalence *)
+text {*
 
-text {*
+%%% FIXME Reviewer 1 would like an example of regularized and injected
+%%% statements. He asks for the examples twice, but I would still ignore
+%%% it due to lack of space...
 
   In this section we will show a sequence of declarations for defining the 
   type of integers by quotienting pairs of natural numbers, and
@@ -1161,6 +1208,8 @@
   relations, but for lack of space we do not describe the mechanisms
   needed for this kind of quotient constructions.
 
+%%% FIXME Reviewer 3 would like to know more about the lifting in Coq and PVS,
+%%% and some comparison. I don't think we have the space for any additions...
 
   One feature of our quotient package is that when lifting theorems, the user
   can precisely specify what the lifted theorem should look like. This feature