| author | Christian Urban <urbanc@in.tum.de> | 
| Thu, 04 Oct 2012 11:10:23 +0100 | |
| changeset 3200 | 995d47b09ab4 | 
| parent 3129 | 8be3155c014f | 
| permissions | -rw-r--r-- | 
| 
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  |