| author | webertj | 
| Tue, 26 Mar 2013 16:41:31 +0100 | |
| changeset 3213 | a8724924a62e | 
| 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: 
3104diff
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: 
3099diff
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: 
3099diff
changeset | 29 | |
| 3129 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3126diff
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: 
3099diff
changeset | 32 | |
| 
5b5ade6bc889
added definition for generalisation of type schemes (for paper)
 Christian Urban <urbanc@in.tum.de> parents: 
3099diff
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: 
3099diff
changeset | 43 | |
| 3129 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3126diff
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: 
3126diff
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: 
3099diff
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: 
3099diff
changeset | 52 | |
| 
5b5ade6bc889
added definition for generalisation of type schemes (for paper)
 Christian Urban <urbanc@in.tum.de> parents: 
3099diff
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: 
3126diff
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: 
3099diff
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: 
3126diff
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: 
3104diff
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: 
3099diff
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: 
3099diff
changeset | 63 | |
| 3126 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 64 | We reworded this paragraph. | 
| 3102 
5b5ade6bc889
added definition for generalisation of type schemes (for paper)
 Christian Urban <urbanc@in.tum.de> parents: 
3099diff
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: 
3104diff
changeset | 68 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3104diff
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: 
3126diff
changeset | 72 | cases is more beneficial to the reader. | 
| 3126 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3099diff
changeset | 77 | |
| 3126 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3099diff
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: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 95 | |
| 3129 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3104diff
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: 
3104diff
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: 
3126diff
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: 
3126diff
changeset | 100 | nested datatype, before coming to nominal matters. | 
| 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
changeset | 101 | |
| 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3126diff
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: 
3126diff
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: 
3126diff
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: 
3104diff
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: 
3104diff
changeset | 125 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3126diff
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: 
3104diff
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: 
3104diff
changeset | 129 | non-intuitive representations of "nominal datatypes". We attempted | 
| 3129 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3126diff
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: 
3104diff
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: 
3104diff
changeset | 138 | |
| 3129 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3104diff
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: 
3126diff
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: 
3126diff
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: 
3126diff
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: 
3104diff
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: 
3104diff
changeset | 151 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3126diff
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: 
3104diff
changeset | 154 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 155 |      supp all_atoms = {}
 | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 156 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 158 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 159 | supp as = as if as is finite | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 162 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3126diff
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: 
3126diff
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: 
3126diff
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: 
3104diff
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: 
3104diff
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: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 173 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3126diff
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: 
3126diff
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: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 185 | > arbitrarily complex and application-specific. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 186 | |
| 3129 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3126diff
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: 
3104diff
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: 
3126diff
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: 
3126diff
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: 
3126diff
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: 
3104diff
changeset | 193 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 205 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3126diff
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: 
3104diff
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: 
3102diff
changeset | 224 | |
| 3126 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3102diff
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: 
3104diff
changeset | 242 | |
| 3129 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3104diff
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: 
3104diff
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: 
3126diff
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: 
3126diff
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: 
3104diff
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: 
3104diff
changeset | 250 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 251 | Fixed. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 256 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 257 | Fixed. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 260 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 261 | Fixed. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 266 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 274 | |
| 3129 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 278 | |
| 3129 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
changeset | 279 | constant args = term | 
| 3126 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 280 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 282 | scheme. Our definition has been described extensively elsewhere, | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 283 | to which we refer the reader. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 287 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 288 | Replaced by bs. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 289 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 296 | |
| 3129 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3104diff
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: 
3104diff
changeset | 299 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 300 | bs supports bs | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 301 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 302 | but | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 303 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 304 | supp bs = all_atoms !<= bs | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 309 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 310 | We have reworded this paragraph. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 311 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 313 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 314 | Fixed. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 321 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 322 | Fixed. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 347 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3126diff
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: 
3126diff
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: 
3126diff
changeset | 352 | other modes. | 
| 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
changeset | 353 | |
| 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3126diff
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: 
3104diff
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: 
3104diff
changeset | 358 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 359 | Fixed. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 363 | |
| 3129 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3126diff
changeset | 365 | derived this. Both methods need equal work (the definition | 
| 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3104diff
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: 
3104diff
changeset | 370 | > an x with infinite support. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 371 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 372 | Fixed. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 373 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 378 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 380 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 387 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 391 | to work so that | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 392 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 393 | supp bs = bs | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 394 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 395 | for all sets. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 400 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 401 | Fixed. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 404 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 405 | Fixed. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 410 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 411 | Yes. Note added. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 421 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 422 | We have given a forward pointer. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 429 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 430 | Yes, atom is overloaded. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 437 | |
| 3129 
8be3155c014f
more one the lmcs-paper
 Christian Urban <urbanc@in.tum.de> parents: 
3126diff
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: 
3104diff
changeset | 439 | that does not make sense for shallow binders. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 445 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 450 | > this allowed or excluded? | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 451 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3126diff
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: 
3104diff
changeset | 454 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 465 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3126diff
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: 
3104diff
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: 
3104diff
changeset | 510 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 528 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 537 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 538 | You can write | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 539 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 540 | binds bn(p) in t, | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 541 | binds(set) bn(p) in t, | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 542 | binds(set+) bn(p) in t | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 543 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 568 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 569 | It is disallowed. We clarified the text. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 583 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 584 | Fixed. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 587 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 588 | Fixed. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 591 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 592 | Yes. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 595 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 596 | Fixed. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 599 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 600 | Fixed. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 606 | |
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
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: 
3104diff
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: 
3104diff
changeset | 610 | a reasoning infrastructure for alpha-equated terms. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
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: 
3104diff
changeset | 618 | Yes. | 
| 
d3d5225f4f24
implemented all comments from the reviewer
 Christian Urban <urbanc@in.tum.de> parents: 
3104diff
changeset | 619 |