LMCS-Review
author Christian Urban <urbanc@in.tum.de>
Wed, 29 Feb 2012 16:23:11 +0000
changeset 3129 8be3155c014f
parent 3126 d3d5225f4f24
permissions -rw-r--r--
more one the lmcs-paper
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     1
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     2
> Referee no 1:
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     3
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     4
>  * The paper can be accepted for Logical Methods in Computer Science 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     5
> after minor
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     6
> revisions
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     7
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     8
> NUMBER    : LMCS-2011-675
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     9
> TITLE     : General Bindings and Alpha-Equivalence in Nominal Isabelle
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    10
> AUTHOR(S) : Christian Urban, Cezary Kaliszyk
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    11
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    12
> Recommendation: The paper can be accepted for Logical Methods in
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    13
> Computer Science after minor revisions.
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    14
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    15
> The work reported is very good, but the presentation of the paper can
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    16
> be improved.
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    17
>
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    18
> [...]
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    19
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    20
> However, I recommend improvement of the presentation of the paper
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    21
> before it is accepted by LMCS.  While the motivation for the work of
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    22
> this paper is clear to anyone who has tried to formalize such
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    23
> reasoning, it is not explained in the paper.  E.g. on p.1 "However,
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    24
> Nominal Isabelle has fared less well in a formalisation of the
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    25
> algorithm W [...]."  But there is no analysis in the paper of what was
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    26
> hard in algorithm W coded with single binders, or explanation of how
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    27
> it would be done in the new system reported in this paper showing why
3102
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    28
> the new approach works better in practice.  
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    29
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
    30
We have expanded on the point and given details why single 
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
    31
binders lead to clumsy formalisations of W.
3102
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    32
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    33
> Although this example is
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    34
> one of the main motivations given for the work, there is apparently no
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    35
> formalization of algorithm W in the library of examples that comes
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    36
> with Nominal2 described in this paper.  I think that should be
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    37
> provided.  Similarly for the second motivating example (on p.2 "The
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    38
> need of iterating single binders is also one reason why Nominal
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    39
> Isabelle and similar theorem provers that only provide mechanisms for
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    40
> binding single variables have not fared extremely well with the more
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    41
> advanced tasks in the POPLmark challenge [2], because also there one
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    42
> would like to bind multiple variables at once.").
3102
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    43
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
    44
We proved the main properties about type-schemes in algorithm W: 
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
    45
the ones that caused problems in our earlier formalisation. Though 
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
    46
the complete formalisation of W is not yet in place.
3102
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    47
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    48
> The new Isabelle package "Nominal2", described in this paper, is not
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    49
> ready for users without a lot of hand-holding from the Nominal2
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    50
> developers.  This paper would have more impact if interested users
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    51
> could try the tool without so much difficulty.
3102
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    52
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    53
The plan is to have Nominal Isabelle be part of the next stable 
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
    54
release of Isabelle, which should be out in Autumn 2012.
3102
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    55
At the moment it can be downloaded as a bundle and is ready
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
    56
to be used (there are two groups that use Nominal2 and 
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    57
only occasionally ask questions on the mailing list). 
3102
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    58
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    59
> A few more specific points:
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    60
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    61
> Bottom of p.7: I don't understand the paragraph containing equations
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    62
> (2.4) and (2.5).
3102
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    63
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    64
We reworded this paragraph.
3102
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    65
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    66
> Bottom of p.9: The parameters R and fa of the alpha equivalence
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    67
> relation are dropped in the examples, so the examples are not clear.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    68
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    69
We have two minds with this: Keeping R and fa is more faithful to
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    70
the definition, but it would not provide much intuition into
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    71
the definition. We feel explaining the definition in special
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
    72
cases is more beneficial to the reader.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    73
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    74
> I think there is a typo in the first example: "It can be easily
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    75
> checked that ({x,y},x->y) and ({y,x},y->x) are alpha-equivalent [...]"
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    76
> Did you mean "({x,y},x->y) and ({y,x},x->y) are alpha-equivalent"?
3102
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    77
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    78
Both are equivalent since sets {x, y} and {y, x} are equal. But we made
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    79
it clearer as you suggest.
3102
5b5ade6bc889 added definition for generalisation of type schemes (for paper)
Christian Urban <urbanc@in.tum.de>
parents: 3099
diff changeset
    80
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    81
> Referee no 2:
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    82
>
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    83
> [...]
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    84
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    85
> My main criticisms of the paper are:
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    86
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    87
> * The definition of the "nominal signature" language is not completely clear.
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    88
>   The general format at the beginning of section 4 is very clear, but is in
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    89
>   fact too general: not everything that can be written in this format makes
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    90
>   sense. The authors then walk the reader through a series of 
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    91
>   examples of what
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    92
>   is *forbidden* (with informal explanations why these examples are
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    93
>   forbidden), but in the end, a positive definition of what is *permitted*
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    94
>   seems to be missing.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    95
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
    96
Yes, we agree very much: a positive definition would be very desirable.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    97
Unfortunately, this is not as easy as one would hope. Already a positive
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
    98
definition for a *datatype* in HOL is rather tricky. We would rely on this
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
    99
for nominal datatypes. Then we would need to think about what to do with
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   100
nested datatype, before coming to nominal matters.
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   101
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   102
The only real defence for not giving a positive we have is that we give a 
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   103
sensible "upper bound". To appreciate this point, you need to consider that 
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   104
systems like Ott go beyond this upper bound and give definitions which are 
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   105
not sensible in the context of (named) alpha-equated structures.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   106
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   107
> * The authors have isolated an important building block, the notion of
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   108
>   (multiple-name) abstraction (in Section 3). (Actually, there are three
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   109
>   variants of it.) This is good: it makes the whole construction modular
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   110
>   and helps simplify what follows. I don't know if this will make sense
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   111
>   for the authors, but I would like them to go further in this direction:
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   112
>   identify more elementary building blocks ("combinators", if you will),
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   113
>   study their properties in isolation, and in the end combine them to
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   114
>   obtain a very simple explanation of the "nominal signature" format
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   115
>   that is exposed to the user. In the present state of the paper, the
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   116
>   design of the "nominal signature" format seems somewhat ad hoc: the
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   117
>   format of the "binds" clauses is subject to several restrictions;
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   118
>   there seems to be a distinction between "binders" and ordinary
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   119
>   "terms"; there is a distinction between "recursive" and "non-recursive"
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   120
>   binders, and a distinction between "shallow" and "deep" binders. If
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   121
>   one could identify a small number of elementary building blocks and
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   122
>   explain/motivate the design of the surface specification language in
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   123
>   terms of these elementary notions, the paper might become all the more
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   124
>   compelling.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   125
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   126
We are not sure whether we can make progress with this. There is such a
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   127
"combinator approach" described by Francois Pottier for C-alpha-ML. His approach
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   128
only needs an inner and outer combinator. However, this has led to quite
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   129
non-intuitive representations of "nominal datatypes". We attempted
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   130
to be as close as possible to what is used in the "wild" (and in Ott). 
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   131
This led us to isolate the notions of shallow, deep and recursive binders.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   132
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   133
>   In the present state of the paper, I think the *implementation* of the
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   134
>   nominal package is very useful for the end user, but the *theory* that is
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   135
>   presented in this paper is still a bit cumbersome: the definitions of free
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   136
>   atoms, alpha-equivalence, etc. presented on pages 16-20 are understandable
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   137
>   but not compelling by their simplicity.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   138
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   139
We agree - simpler would be much better. However, we refer the referee to "competing" 
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   140
definitions that are substantially more complicated. Please try to understand 
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   141
the notion of alpha-equivalence for Ott (which has been published). Taking 
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   142
tgis into account, we really think our definitions are a substantial improvement,
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   143
as witnessed by the fact that we were actually able to code them up.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   144
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   145
> * I do not quite understand the treatment of the finiteness restriction.
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   146
>   I understand that things must have finite support so as to allow picking
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   147
>   atoms outside of their support. But finiteness side conditions seem to
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   148
>   appear pretty early and in unexpected places; e.g. I would expect the
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   149
>   support of a set of atoms "as" to be equal to "as", regardless of whether
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   150
>   "as" is finite or infinite. This could be clarified.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   151
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   152
This is a peculiarity of support which has been explained elsewhere in the nominal
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   153
literature (pointers in the paper). Assume all_atoms is the set of all atoms then
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   154
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   155
     supp all_atoms = {}
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   156
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   157
For sets of atoms the support behaves as follows:
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   158
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   159
     supp as = as             if as is finite
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   160
     supp as = all_atoms      if as and all_atoms - as are infinite
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   161
     supp as = all_atoms - as if as is co-finite 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   162
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   163
As said, such properties have been described in the literature and it would be
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   164
overkill to include them again in this paper. Since in programming language research 
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   165
nearly always considers only finitely supported structures, we often restrict
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   166
our work to these cases. Knowing that an object of interest has only finite support
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   167
is needed when fresh atoms need to be chosen. 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   168
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   169
> * The choice of abstraction "style" is limited to three built-in forms (list,
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   170
>   set, and set+). Perhaps one could make this user-extensible. After 
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   171
>   all, very few properties seem to be required of the basic abstraction forms, 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   172
>   so why not let the user define new ones?
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   173
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   174
This would be nice, but we do make use of the equality properties
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   175
of abstractions (which are different for the set, set+ and list cases).
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   176
So we have yet to find a unifying framework.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   177
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   178
> * One may argue that the set-abstractions are an attempt to kill two birds
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   179
>   with one stone. On the one hand, we take the quotient raw terms modulo a
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   180
>   standard notion of alpha-equivalence; on the other hand, at the same time,
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   181
>   we take the quotient modulo a notion of structural equivalence (permutation
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   182
>   of binders, removal or introduction of vacuous binders). One could argue
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   183
>   that dealing with structural equivalence should be left to the user, because
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   184
>   in general the structural equivalence axioms that the user needs can be
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   185
>   arbitrarily complex and application-specific. 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   186
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   187
Yes, we can actually only deal with *one* non-trivial structural equivalence,
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   188
namely set+ (introduction of vacuous binders). For us, it seems this is an application
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   189
that occurs more often than not. Type-schemes are one example; the Psi-calculus
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   190
from the group around Joachim Parrow are another; in the paper we also point to
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   191
work by Altenkirch that uses set+. Therefore we like to give automated support 
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   192
for set+. Doing this without automatic support would be quite painful for the user.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   193
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   194
>   There are object languages,
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   195
>   for instance, where abstractions commute with pairs: binding a name in a
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   196
>   pair is the same as binding a name within each of the pair components.
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   197
>   (This is the case in first-order logic where forall distributes over
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   198
>   conjunction.) Thus, one may fear that in many cases, the set and set+
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   199
>   abstractions will not be sufficiently powerful to encode the desired
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   200
>   structural equivalence, and the user will need to explicitly define 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   201
> a notion
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   202
>   of structural equivalence anyway. I don't think that the paper provides
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   203
>   convincing evidence that set and set+ abstractions are useful. (That said,
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   204
>   they don't cost much, so why not include them? Sure.)
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   205
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   206
From our experience, once a feature is included, applications will
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   207
be found. Case in point, the set+ binder arises naturally in the
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   208
psi-calculus and is used in work by Altenkirch.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   209
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   210
> * Here is little challenge related to set-abstractions. Could you explain how
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   211
>   to define the syntax of an object language with a construct like this:
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   212
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   213
>     let x1 = t1 and ... and xn = tn in t
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   214
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   215
>   where the xi's are bound in t (this is a non-recursive multiple-let form)
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   216
>   and the order of the definitions does not matter (that is, "let x1 = t1
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   217
>   and x2 = t2 in t" is alpha-equivalent to "let x2 = t2 and x1 = t1 in t")?
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   218
>   Can you use a set-abstraction to achieve this? I am guessing that this
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   219
>   might be possible, if one represents the definitions "x1 = t1 and ..."
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   220
>   using a set of pairs (or a map of names to terms) as opposed to a list
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   221
>   of pairs. I think that the system should at the very least allow encoding
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   222
>   this example, otherwise set-abstractions will not be very useful in
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   223
>   practice.
3104
f7c4b8e6918b updated to explicit set type constructor (post Isabelle 3rd January)
Christian Urban <urbanc@in.tum.de>
parents: 3102
diff changeset
   224
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   225
We can. We added this as an example in the conclusion section.
3104
f7c4b8e6918b updated to explicit set type constructor (post Isabelle 3rd January)
Christian Urban <urbanc@in.tum.de>
parents: 3102
diff changeset
   226
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   227
> p.2, "this leads to a rather clumsy formalisation of W". Could you explain
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   228
> why? Although I can understand why in some circumstances it is desirable to
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   229
> have a notion of alpha-equivalence that includes re-ordering binders, 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   230
> I am not
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   231
> sure that the ML type system (or its inference algorithm) is a good
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   232
> illustration. If one examines the typing rules of Core ML, one finds that
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   233
> their premises involve a notion of equality between *types* (for 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   234
> instance, the
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   235
> function application rule requires that the types of the formal and actual
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   236
> arguments match) but do not involve any notion of equality between *type
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   237
> schemes*. Type schemes are constructed and eliminated; they are never 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   238
> compared
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   239
> with one another. For this reason, it is not clear that a notion of
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   240
> alpha-equivalence for type schemes is required at all, let alone that it must
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   241
> allow re-ordering binders and/or disregarding vacuous binders.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   242
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   243
In the correctness *proof* of W, the notion of capture-avoiding 
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   244
substitution plays a crucial role. The notion of capture-avoiding
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   245
substitution without the notion of alpha-equivalence does not make
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   246
much sense. This is different from *implementations* of W. They
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   247
might get away with concrete representations of type-schemes. 
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   248
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   249
> p.3, "let the user chose" -> "choose"
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   250
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   251
Fixed.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   252
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   253
> p.5, I am not sure what you mean by "automatic proofs". Do you mean
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   254
> automatically-generated proof scripts, or proofs performed automatically by a
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   255
> decision procedure, or ... ?
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   256
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   257
Fixed.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   258
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   259
> p.5, "adaption"
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   260
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   261
Fixed.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   262
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   263
> p.5, it seems strange to use the symbol "+" for composition, a 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   264
> non-commutative
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   265
> operation.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   266
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   267
Yes. This is a "flaw" in the type-class setup. If we want to reuse libraries
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   268
from Isabelle, we have to bite into this "sour" apple.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   269
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   270
> Equation (2.2) is unfamiliar to me. I am used to seeing "supp x" defined as
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   271
> the least set L such that for every permutation pi, if pi fixes L, then pi
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   272
> fixes x. I assume that the two definitions are equivalent? Is there a reason
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   273
> why you prefer this one?
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   274
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   275
Our definition is equivalent to yours for finitely supported x. 
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   276
The advantage of our definition is that can be easily stated
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   277
in a theorem prover since it fits into the scheme
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   278
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   279
   constant args = term
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   280
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   281
Your definition as the least set...does not fit into this simple 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   282
scheme. Our definition has been described extensively elsewhere,
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   283
to which we refer the reader.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   284
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   285
> Proposition 2.3, item (i) is not very easy to read, because text and math
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   286
> are mixed and "as" happens to be an English word. 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   287
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   288
Replaced by bs.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   289
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   290
> More importantly, could
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   291
> you explain why the hypothesis "finite as" is needed? The proposition seems
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   292
> intuitively true if we remove this hypothesis: it states exactly that 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   293
> "supp x"
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   294
> is the least set that supports x (this is actually the definition of "supp"
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   295
> that I expected, as mentioned above).
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   296
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   297
It does *not* work for non-finitely supported sets of atoms. Imagine
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   298
bs is the set of "even" atoms (a set that is not finite nor co-finite).
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   299
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   300
   bs supports bs
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   301
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   302
but 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   303
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   304
   supp bs = all_atoms    !<=   bs 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   305
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   306
> p.8, "equivariant functions have empty support". I suppose the converse is
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   307
> true, i.e. "functions that have empty support are equivariant". If this is
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   308
> correct, please say so.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   309
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   310
We have reworded this paragraph.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   311
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   312
> p.8, "we used extensively Property 2.1". You mean "Proposition 2.1". 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   313
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   314
Fixed.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   315
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   316
> p.8, "we identify four conditions: (i) [...] x and y need to have the same
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   317
> set of free atoms". You seem to be saying that fa(x) and fa(y) should be
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   318
> equal. But this is too strong; I suppose you mean fa(x) \ as = fa(y) \ bs.
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   319
> Please clarify. (Definition 3.1 indeed clarifies this, but I believe that
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   320
> the text that precedes it is a bit confusing.)
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   321
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   322
Fixed.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   323
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   324
> p.9, it seems to me that alpha-equivalence for Set+ bindings (Definition 3.3)
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   325
> is in a sense the most general of the three notions presented here. Indeed,
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   326
> alpha-equivalence for Set bindings can be defined in terms of it, as follows:
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   327
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   328
>   (as, x) =_{Set} (bs, y)
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   329
>   if and only if
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   330
>   (as, (as, x)) =_{Set+} (bs, (bs, y))
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   331
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   332
> That is, I am comparing abstractions whose body has type "atom set * beta".
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   333
> The comparison of the set components forces condition (iv) of Definition 3.1.
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   334
> Similarly, alpha-equivalence for List bindings can be defined in terms of it,
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   335
> as follows:
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   336
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   337
>   (as, x) =_{List} (bs, y)
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   338
>   if and only if
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   339
>   (set as, (as, x)) =_{Set+} (set bs, (bs, y))
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   340
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   341
> That is, I am comparing abstractions whose body has type "atom list * beta".
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   342
> Am I correct to think that one can do this? If so, could this help eliminate
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   343
> some redundancy in the paper or in the implementation? And, for a 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   344
> more radical
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   345
> suggestion, could one decide to expose only Set+ equality to the programmer,
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   346
> and let him/her explicitly encode Set/List equality where desired?
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   347
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   348
The second property holds outright. The first holds provided as and bs
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   349
are finite sets of atoms. However, we seem to not gain much code reduction
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   350
from these properties, except for defining the modes set and list in terms 
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   351
of set+. Also often proving properties for set+ is harder than for the
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   352
other modes.
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   353
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   354
Since these modes behave differently as alpha-equivalence, the encoding would, 
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   355
in our opinion, blurr this difference. We however noted these facts in the conclusion. 
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   356
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   357
> p.10, "in these relation"
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   358
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   359
Fixed.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   360
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   361
> p.10, isn't equation (3.3) a *definition* of the action of permutations
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   362
> on the newly defined quotient type "beta abs_{set}"?
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   363
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   364
Yes, we have this now as the definition. Earlier we really had
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   365
derived this. Both methods need equal work (the definition
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   366
needs a proof to be proper). Having it as definition is clearer.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   367
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   368
> p.11, why do you need to "assume that x has finite support" in order to
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   369
> obtain property 3.4? It seems to me that this fact should also hold for
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   370
> an x with infinite support. 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   371
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   372
Fixed.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   373
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   374
> Same remark in a couple of places further
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   375
> down on this page. You note that "supp bs = bs" holds "for every finite
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   376
> set of atoms bs". Is it *not* the case that this also holds for infinite
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   377
> sets? If so, what *is* the support of an infinite set of atoms? 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   378
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   379
This property only holds for finite sets bs. See above.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   380
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   381
> Why not
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   382
> adopt a definition of support that validates "supp bs = bs" for *every*
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   383
> set of atoms bs? Is there a difficulty due to the fact that what you
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   384
> call a "permutation" is in a fact "a permutation with finite support"?
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   385
> I think it would be good to motivate your technical choices and clarify
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   386
> exactly where/why a finite support assumption is required.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   387
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   388
This cannot be made as it is very natural to have the property
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   389
that the set of all atoms has empty support. There is no permutation
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   390
that does not fix that set. We cannot see how this can be made
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   391
to work so that
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   392
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   393
   supp bs = bs 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   394
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   395
for all sets.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   396
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   397
> p.11, "The other half is a bit more involved." I would suggest removing
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   398
> this rather scary sentence. The proof actually appears very simple and
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   399
> elegant to me.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   400
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   401
Fixed.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   402
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   403
> p.12, "mutual recursive" -> "mutually recursive"
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   404
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   405
Fixed.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   406
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   407
> p.12, does the tool support parameterized data type definitions? If so,
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   408
> please mention it, otherwise explain whether there is a difficulty (e.g.
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   409
> the parameters would need to come with a notion of permutation).
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   410
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   411
Yes. Note added.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   412
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   413
> p.12, "Interestingly, [...] will make a difference [...]". At this 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   414
> point, upon
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   415
> first reading, this is not "interesting" but rather frustrating, because it
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   416
> does not sound natural: my understanding would be very much simplified if
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   417
> "binds ... in t u" was equivalent to "binds ... in t, binds ... in 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   418
> u". Because
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   419
> a forward pointer is missing, I cannot find immediately where this is
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   420
> explained, and this problem hinders my reading of the beginning of section 5.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   421
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   422
We have given a forward pointer.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   423
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   424
> p.13, the type of atoms now seems to be "name", whereas it was previously
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   425
> "atom". The remark on the last line of page 13 leads me to understand that
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   426
> "name" refers to one specific sort of atoms, whereas "atom" refers to an
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   427
> atom of any sort (right?). The function "atom" converts one to the other;
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   428
> but what is its type (is it overloaded?).
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   429
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   430
Yes, atom is overloaded. 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   431
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   432
> p.13, you distinguish shallow binders (binds x in ...) and deep binders
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   433
> (binds bn(x) in ...). I would hope that a shallow binder is just syntactic
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   434
> sugar for a deep binder where "bn" is the "singleton list" or "singleton
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   435
> set" function. Is this the case? If not, why not? If yes, perhaps you could
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   436
> remove all mentions to shallow binders in section 5.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   437
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   438
Not quite. A deep binder can be recursive, which is a notion
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   439
that does not make sense for shallow binders.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   440
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   441
> p.14, "we cannot have more than one binding function for a deep binder".  You
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   442
> exclude "binds bn_1(p) bn_2(p) in t". Couldn't this be accepted and
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   443
> interpreted as "binds bn_1(p) \cup bn_2(p) in t"? (I guess it does not matter
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   444
> much either way.)
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   445
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   446
That would make the definition of fa-function more complicated.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   447
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   448
> p.14, you also exclude "binds bn1(p) in t1, binds bn2(p) in t2". Two
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   449
> questions. First, a clarification: if bn1 and bn2 are the same function, is
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   450
> this allowed or excluded? 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   451
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   452
For practical purposes, this is excluded. But the theory would
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   453
support this case. I added a comment in the paper.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   454
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   455
> Second, I don't understand why you need this
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   456
> restriction, that is, why you are trying to prevent an atom to be "bound and
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   457
> free at the same time" (bound in one sub-term and free in another). I 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   458
> mean, in
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   459
> the case of single binders, you seem to allow "binds x y in t1, binds 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   460
> y in t2"
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   461
> (at least, you have not stated that you disallow this). There, occurrences of
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   462
> x in t1 are considered bound, whereas occurrences of x in t2 are considered
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   463
> free; is this correct? If so, why not allow "binds bn1(p) in t1, binds bn2(p)
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   464
> in t2", which seems to be of a similar nature? 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   465
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   466
The problem is that bn1 and bn2 can pick out different atoms to
3129
8be3155c014f more one the lmcs-paper
Christian Urban <urbanc@in.tum.de>
parents: 3126
diff changeset
   467
be free and bound in p. Therefore we have to exclude this case.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   468
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   469
> p.14, example 4.4, the restriction that you impose here seems to rule out
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   470
> an interesting and potentially useful pattern, namely telescopes. A telescope
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   471
> is a list of binders, where each binder scopes over the rest of the 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   472
> telescope,
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   473
> and in addition all of the names introduced by the telescope are considered
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   474
> bound by the telescope in some separate term. I am thinking of 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   475
> something along
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   476
> the following lines:
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   477
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   478
>   nominal_datatype trm =
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   479
>   | Var name
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   480
>   | Let tele::telescope body::trm  binds bn(tele) in body
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   481
>   | ...
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   482
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   483
>   and telescope =
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   484
>   | TNil
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   485
>   | TCons x::name rhs::trm rest::telescope  binds x in rest
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   486
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   487
>   binder bn::telescope => atom list
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   488
>   where bn (TNil) = []
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   489
>       | bn (TCons x rhs rest) = [ atom x ] @ bn(rest)
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   490
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   491
> You write that "if we would permit bn to return y, then it would not be
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   492
> respectful and therefore cannot be lifted to alpha-equated lambda-terms". I
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   493
> can see why there is a problem: if "x" is considered bound (therefore
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   494
> anonymous) in the telescope "TCons x rhs rest", then it cannot possibly be
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   495
> returned by a (well-behaved) function "bn". I think that the answer to this
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   496
> problem should be: we must pick an appropriate notion of alpha-equivalence
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   497
> for telescopes, and this notion of alpha-equivalence must *not* consider x
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   498
> as anonymous in "TCons x rhs rest". Instead, x must be considered free in
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   499
> this telescope. The telescopes "TCons x rhs TNil" and "TCons y rhs TNil"
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   500
> must be considered distinct. Of course we could achieve this effect just by
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   501
> removing the clause "binds x in rest", but this would lead to a notion of
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   502
> alpha-equivalence for "Let" terms which is not the desired one: when writing
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   503
> "let (x1 = t1; x2 = t2) in t", we would like x1 to be bound in t2, and this
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   504
> will not be the case if we omit "binds x in rest" in the above definition.
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   505
> I conclude that your design (which seems very reasonable) cannot currently
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   506
> express telescopes. It would be nice if you could explicitly discuss this
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   507
> issue. Is it conceivable that an extension of your system could deal with
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   508
> telescopes? Other researchers have proposed approaches that can deal with
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   509
> them (I am thinking e.g. of ``Binders Unbound'' by Weirich et al.).
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   510
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   511
Yes, we cannot deal with telescopes. We added a comment. 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   512
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   513
> Here is another general question. How would you declare a nominal data type
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   514
> for ML patterns? Informally, the syntax of patterns is:
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   515
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   516
>   p ::=
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   517
>     x                                                    (variable)
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   518
>   | (p, p)      where bn(p1) and bn(p2) are disjoint     (pair)
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   519
>   | (p | p)     where bn(p1) = bn(p2)                    (disjunction)
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   520
>   | ...
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   521
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   522
> In the case of a pair (or conjunction) pattern, one usually requires that the
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   523
> two components bind disjoint sets of names, whereas in the case of a
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   524
> disjunction pattern, one requires that the two components bind exactly the
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   525
> same sets of names. How would you deal with this? I imagine that one could
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   526
> just omit these two side conditions in the definition of the nominal data
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   527
> type, and deal with them separately by defining a well-formedness predicate.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   528
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   529
Yes, that is how we would exclude non-linear patterns.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   530
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   531
> One question: in the definition of the "term" data type, at the point where
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   532
> one writes "binds bn(p) in t", which variant of the "binds" keyword would one
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   533
> use: "binds", "binds(set)", or "binds(set+)"? Does it make any difference,
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   534
> considering that a pattern can have multiple occurrences of a name in binding
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   535
> position? It would be interesting if you could explain how you would handle
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   536
> this example.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   537
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   538
You can write 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   539
    
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   540
    binds bn(p) in t, 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   541
    binds(set) bn(p) in t, 
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   542
    binds(set+) bn(p) in t
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   543
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   544
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   545
> p.15, just before section 5, I note that the completion process does *not*
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   546
> produce any clause of the form "binds ... in x" (in the Lam case). One could
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   547
> have expected it to produce "binds x in x", for instance. One could imagine
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   548
> that, for *every* constructor argument t, there is a clause of the 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   549
> form "binds
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   550
> .. in t". Here, you adopt a different approach: you seem to be partitioning
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   551
> the constructor arguments in two categories, the "terms" (which after
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   552
> completion appear in the right-hand side of exactly one "binds" clause) and
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   553
> the "binders" (which appear in the left-hand side of at least one "binds"
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   554
> clause). Please clarify whether this is indeed the case. (You have 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   555
> presented a
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   556
> series of data type definitions that you forbid, but in the end, you should
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   557
> present a succinct summary of what is allowed.) Also, I seem to understand
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   558
> that the following definition is forbidden:
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   559
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   560
>   nominal_datatype trm =
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   561
>   | Foo t1::trm t2::trm  binds bn(t1) in t2, binds bn(t2) in t1
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   562
>
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   563
> (for some definition of "bn"). This would be forbidden because t1 and t2 are
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   564
> used both as "terms" and as "binders" (both on the left-hand and right-hand
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   565
> side of a "binds" clause). As far as I can see, however, you have not
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   566
> explicitly forbidden this situation. So, is it forbidden or allowed? Please
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   567
> clarify.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   568
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   569
It is disallowed. We clarified the text.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   570
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   571
> p.17, "for each of the arguments we calculate the free atoms as 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   572
> follows": this
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   573
> definition relies on the fact that "rhs" must be of a specific *syntactic*
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   574
> form (unions of expressions of the form "constant set" or "recursive call").
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   575
> For instance, "rhs" cannot contain the expression "my_empty_set z_i", where
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   576
> "my_empty_set" is a user-defined function that always returns the empty set;
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   577
> otherwise the third bullet would apply and we would end up considering "z_i"
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   578
> as neither free nor bound. You have mentioned near the top of page 15 that
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   579
> binding functions "can only return" certain results. You should clarify that
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   580
> you are not restricting just *the values* that these functions can 
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   581
> return, but
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   582
> the *syntactic form* of these functions.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   583
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   584
Fixed.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   585
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   586
> p.23, "We call these conditions as": not really grammatical.
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   587
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   588
Fixed.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   589
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   590
> p.23, "cases lemmas": I suppose this means an elimination principle?
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   591
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   592
Yes.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   593
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   594
> p.23, "Note that for the term constructors" -> "constructor"
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   595
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   596
Fixed.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   597
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   598
> p.26, "avoid, or being fresh for" -> "avoid, or are fresh for"
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   599
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   600
Fixed.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   601
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   602
> p.30, "Second, it covers cases of binders depending on other binders,
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   603
> which just do no not make sense [...]". I am curious why the designers
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   604
> of Ott thought that these cases make sense and you don't. Perhaps this
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   605
> point would deserve an example and a deeper discussion?
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   606
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   607
We have added more comments why such binders would not make sense
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   608
for alpha-equated terms (fa-functions would not lift). We do not
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   609
know why Ott allows them - probably because they do not establish
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   610
a reasoning infrastructure for alpha-equated terms.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   611
3099
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   612
> p.32, "It remains to be seen whether properties like [...] allow us
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   613
> to support more interesting binding functions." Could you clarify
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   614
> what you mean? Do you mean (perhaps) that fa_bn(x) could be defined
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   615
> as fa_ty(x) \ bn(x), regardless of the definition of bn(x), instead
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   616
> of by induction over x? Do you mean something else?
502b5f02edaf added notes by referees to comment about our changes
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   617
3126
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   618
Yes.
d3d5225f4f24 implemented all comments from the reviewer
Christian Urban <urbanc@in.tum.de>
parents: 3104
diff changeset
   619