From rda at lemma-one.com Thu Aug 1 09:03:03 2013 From: rda at lemma-one.com (Rob Arthan) Date: Thu, 1 Aug 2013 10:03:03 +0100 Subject: [opentheory-users] Problems with the hol light Open Theory support In-Reply-To: References: Message-ID: <63C89FD9-61B2-4D90-BDCB-E152B03D765E@lemma-one.com> Joe, Thanks! On 31 Jul 2013, at 21:59, Joe Leslie-Hurd wrote: > ... > To export a single theory from the proof logging fork of HOL Light, > follow the instructions at > > http://www.gilith.com/research/opentheory/faq.html#export-from-hol-light > That's very useful. Are there any analogous instructions for exporting from HOL4? > The initial start_logging command is used to switch on proof logging, > which is off by default since most users don't want to export the > whole standard theory library. > > However, that may indeed be exactly what you want, in which case carry > out the following two steps: > > cd opentheory > make theories > At the moment, I am collecting test data, so the more the merrier. > Then you should see a lot of stuff pile up in opentheory/articles/ It did. Thanks again. Regards, Rob. -------------- next part -------------- An HTML attachment was scrubbed... URL: From joe at gilith.com Thu Aug 1 22:45:26 2013 From: joe at gilith.com (Joe Leslie-Hurd) Date: Thu, 1 Aug 2013 15:45:26 -0700 Subject: [opentheory-users] Problems with the hol light Open Theory support In-Reply-To: <63C89FD9-61B2-4D90-BDCB-E152B03D765E@lemma-one.com> References: <63C89FD9-61B2-4D90-BDCB-E152B03D765E@lemma-one.com> Message-ID: Hi Rob, > http://www.gilith.com/research/opentheory/faq.html#export-from-hol-light > > That's very useful. Are there any analogous instructions for exporting from > HOL4? Ramana: you're the expert on this. If you put together a few notes I'll gladly add them as a new FAQ. Cheers, Joe From joe at gilith.com Thu Aug 1 23:18:18 2013 From: joe at gilith.com (Joe Leslie-Hurd) Date: Thu, 1 Aug 2013 16:18:18 -0700 Subject: [opentheory-users] Scalable LCF-style proof translation In-Reply-To: <51F98657.4040208@in.tum.de> References: <51F98657.4040208@in.tum.de> Message-ID: Hi Alex, > - So far, we haven't really tried to use the OpenTheory exporter from HOL > Light on Flyspeck, mainly because it seemed to rely on all those annotations > present in the sources, and having to put in these commands into the > Flyspeck sources did not seem very attractive. I'm sure it would be possible to implement an auto-export mode for OpenTheory, perhaps using the theorem database as you did. However, before attempting Flyspeck theorems I'd like to verify that the OpenTheory article format is not causing a 10x space blow-up! >> Cezary, Alex: Would it be possible to share this proof trace in the >> two formats, so I can see what difference is responsible for the >> blow-up? > > I must pass this question on to Cezary, who made this specific experiment. > I'm not even sure whether this is before or after compression... Cezary: I'd be most grateful if you could send me the data files you used for this experiment. > But just > looking at the list of OpenTheory commands, it seems to me that building up > substitutions as nested lists on the stack is rather complicated. My gut feeling is that the list construction tax (cons and nil commands) will occupy negligible space, but I'm prepared for the data to prove me wrong. Incidentally, how does your format encode lists (substituions or the list of types that are an argument to type operators)? > However, I have some further questions: > > - I wonder which of the offline processing that we do currently is actually > done similarly by the existing opentheory infrastructure. By looking at some > opentheory tool help texts, I couldn't see the answer to this question. Most > of the commands seem to be concerned with package management, which is > unrelated. Currently, we do > > -- mark the last occurrence of any given object, to ensure deletion > -- strip material that is not relevant for some "exported" theorem The opentheory tool post-processes articles extracted from theorem provers, for compression and neatness purposes. To that end it does both of the things you call out. > - Do the existing exporters make use of the stack in any significant way > apart from what is necessary to construct objects? No. > How does the HOL Light > exporter deal with sharing (between terms)? It adds every type, term and theorem to a dictionary, so each is only exported once (per theory, when the dictionaries are reset). > I assume for the HOL4 exporter > this is not an issue, since sharing can be observed directly. Is this > correct? That's a question for Ramana, who's the maintainer of the HOL4 import/export infrastructure. > - If I want to play with the tools, i.e., export some small theorem from HOL > Light, apply some mapping (aka theory interpretation) and re-import into > HOL4... Are there any step by step instructions that I can follow? This FAQ describes the steps for exporting from HOL Light: http://www.gilith.com/research/opentheory/faq.html#export-from-hol-light Ramana: I know I just asked you in another thread for some notes on exporting from HOL4, but if you also made notes for importing I'd create two new FAQs to put them in! Cheers, Joe From Ramana.Kumar at cl.cam.ac.uk Fri Aug 2 13:23:50 2013 From: Ramana.Kumar at cl.cam.ac.uk (Ramana Kumar) Date: Fri, 2 Aug 2013 14:23:50 +0100 Subject: [opentheory-users] Scalable LCF-style proof translation In-Reply-To: References: <51F98657.4040208@in.tum.de> Message-ID: (Just replying to the bits of Joe's message that I can.) On Fri, Aug 2, 2013 at 12:18 AM, Joe Leslie-Hurd wrote: > Incidentally, how does your format encode lists (substituions or the > list of types that are an argument to type operators)? > Their Subst and Inst commands take a variable-length list of arguments (refs to terms or types). So the substitution is given as part of the command itself, using a "meta-level" list. > > How does the HOL Light > > exporter deal with sharing (between terms)? > > It adds every type, term and theorem to a dictionary, so each is only > exported once (per theory, when the dictionaries are reset). > > > I assume for the HOL4 exporter > > this is not an issue, since sharing can be observed directly. Is this > > correct? > > That's a question for Ramana, who's the maintainer of the HOL4 > import/export infrastructure. > The HOL4 exporter doesn't do anything more sophisticated than what the HOL Light exporter does, as far as sharing is concerned. In particular, I do not make use of pointer equality directly. I use HOL4's native Term.compare etc. functions, though, which may use pointer equality internally. I use a dictionary to save OpenTheory objects that I've already logged, and reuse them (with the ref command) when possible. > > - If I want to play with the tools, i.e., export some small theorem > from HOL > > Light, apply some mapping (aka theory interpretation) and re-import into > > HOL4... Are there any step by step instructions that I can follow? > > This FAQ describes the steps for exporting from HOL Light: > > http://www.gilith.com/research/opentheory/faq.html#export-from-hol-light > > Ramana: I know I just asked you in another thread for some notes on > exporting from HOL4, but if you also made notes for importing I'd > create two new FAQs to put them in! > The importer is documented in the HOL4 sources, namely in this file: src/opentheory/Opentheory.sig The main entry-point is Opentheory.read_article : string -> reader -> thm net, which takes the path of an article file and a reader record (with information about where to find constants and axioms the article might need, and how to handle things the article might define, all documented in the file above) and returns a net of theorems. (A "net" makes for efficient lookup of theorems based on their conclusion; you can easily just extract a list of the theorems if desired.) Let me know if the documentation doesn't make sense, or if you want more information for the FAQ. (I'll reply about the exporter in the other thread, perhaps a bit later - it may be more complicated.) > > Cheers, > > Joe > > _______________________________________________ > opentheory-users mailing list > opentheory-users at gilith.com > http://www.gilith.com/mailman/listinfo/opentheory-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rda at lemma-one.com Fri Aug 2 14:15:46 2013 From: rda at lemma-one.com (Rob Arthan) Date: Fri, 2 Aug 2013 15:15:46 +0100 Subject: [opentheory-users] Some comments on the article file format definition Message-ID: <4BA7C465-7DA5-4ADF-92CB-969CDF24DAB2@lemma-one.com> Dear All, I have a few (mainly editorial) comments on the article file format definition (version 5): 1) I think it would be helpful to say in the description of the primitive types that the primitive type const stands for the name of the constant only whereas var stands for a variable name together with a type. (I am intrigued by this design decision, but don't have any technical objection to it.) 2) In the description of the virtual machine, it would be helpful to say that some commands impose constraints on the states in which they can be executed (e.g., free variable conditions or constraints on types). Presumably it is left to the implementor to decide what to do if errors occur. 3) With just two exceptions (as far as I can see), the "notes" in the command description are actually constraints that restrict the states in which the command can be executed. It would be clearer to label them as "constraints" or "restrictions" rather than just "notes". The two exceptions are the note on ref and the second note on varType, which are both just informative. 4) In appTerm and appThm, the type of f must have the form sigma -> tau where sigma is the type of x. 5) For ref and remove, k must presumably be in the domain of dict. 6) The notes on var and varType, both refer to the "global namespace", but this term is not defined. I presume it means a name of the form Name([], s). Regards, Rob. -------------- next part -------------- An HTML attachment was scrubbed... URL: From rda at lemma-one.com Fri Aug 2 14:21:38 2013 From: rda at lemma-one.com (Rob Arthan) Date: Fri, 2 Aug 2013 15:21:38 +0100 Subject: [opentheory-users] Some comments on the article file format definition In-Reply-To: <4BA7C465-7DA5-4ADF-92CB-969CDF24DAB2@lemma-one.com> References: <4BA7C465-7DA5-4ADF-92CB-969CDF24DAB2@lemma-one.com> Message-ID: ... and one more for luck: 7) the examples of the int primitive type include -5, but it actually not possible to get a negative number onto the stack, I believe. On 2 Aug 2013, at 15:15, Rob Arthan wrote: > Dear All, > > I have a few (mainly editorial) comments on the article file format definition (version 5): > > 1) I think it would be helpful to say in the description of the primitive types that the primitive type const stands for the name of the constant only whereas var stands for a variable name together with a type. (I am intrigued by this design decision, but don't have any technical objection to it.) > > 2) In the description of the virtual machine, it would be helpful to say that some commands impose constraints on the states in which they can be executed (e.g., free variable conditions or constraints on types). Presumably it is left to the implementor to decide what to do if errors occur. > > 3) With just two exceptions (as far as I can see), the "notes" in the command description are actually constraints that restrict the states in which the command can be executed. It would be clearer to label them as "constraints" or "restrictions" rather than just "notes". The two exceptions are the note on ref and the second note on varType, which are both just informative. > > 4) In appTerm and appThm, the type of f must have the form sigma -> tau where sigma is the type of x. > > 5) For ref and remove, k must presumably be in the domain of dict. > > 6) The notes on var and varType, both refer to the "global namespace", but this term is not defined. I presume it means a name of the form Name([], s). > > Regards, > > Rob. > _______________________________________________ > opentheory-users mailing list > opentheory-users at gilith.com > http://www.gilith.com/mailman/listinfo/opentheory-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From rda at lemma-one.com Sat Aug 3 16:26:57 2013 From: rda at lemma-one.com (Rob Arthan) Date: Sat, 3 Aug 2013 17:26:57 +0100 Subject: [opentheory-users] Some comments on the article file format definition In-Reply-To: References: <4BA7C465-7DA5-4ADF-92CB-969CDF24DAB2@lemma-one.com> Message-ID: <56D2E5AD-4B8B-4C85-907E-94E5B3406A13@lemma-one.com> I withdraw comment (7). I must have a mental aberration reading the description of the command that pushes an integer On 2 Aug 2013, at 15:21, Rob Arthan wrote: > ... and one more for luck: > > 7) the examples of the int primitive type include -5, but it actually not possible to get a negative number onto the stack, I believe. > > On 2 Aug 2013, at 15:15, Rob Arthan wrote: > >> Dear All, >> >> I have a few (mainly editorial) comments on the article file format definition (version 5): >> >> 1) I think it would be helpful to say in the description of the primitive types that the primitive type const stands for the name of the constant only whereas var stands for a variable name together with a type. (I am intrigued by this design decision, but don't have any technical objection to it.) >> >> 2) In the description of the virtual machine, it would be helpful to say that some commands impose constraints on the states in which they can be executed (e.g., free variable conditions or constraints on types). Presumably it is left to the implementor to decide what to do if errors occur. >> >> 3) With just two exceptions (as far as I can see), the "notes" in the command description are actually constraints that restrict the states in which the command can be executed. It would be clearer to label them as "constraints" or "restrictions" rather than just "notes". The two exceptions are the note on ref and the second note on varType, which are both just informative. >> >> 4) In appTerm and appThm, the type of f must have the form sigma -> tau where sigma is the type of x. >> >> 5) For ref and remove, k must presumably be in the domain of dict. >> >> 6) The notes on var and varType, both refer to the "global namespace", but this term is not defined. I presume it means a name of the form Name([], s). >> >> Regards, >> >> Rob. >> _______________________________________________ >> opentheory-users mailing list >> opentheory-users at gilith.com >> http://www.gilith.com/mailman/listinfo/opentheory-users > > _______________________________________________ > opentheory-users mailing list > opentheory-users at gilith.com > http://www.gilith.com/mailman/listinfo/opentheory-users From rda at lemma-one.com Sun Aug 4 14:20:55 2013 From: rda at lemma-one.com (Rob Arthan) Date: Sun, 4 Aug 2013 15:20:55 +0100 Subject: [opentheory-users] Some comments on the article file format definition In-Reply-To: References: <4BA7C465-7DA5-4ADF-92CB-969CDF24DAB2@lemma-one.com> Message-ID: <9FFC0FF4-C610-4B30-8EF3-C61F48FEDCFB@lemma-one.com> I withdraw comment (7). I must have had a mental aberration reading the description of the command that pushes an integer On 2 Aug 2013, at 15:21, Rob Arthan wrote: > ... and one more for luck: > > 7) the examples of the int primitive type include -5, but it actually not possible to get a negative number onto the stack, I believe. > > On 2 Aug 2013, at 15:15, Rob Arthan wrote: > >> Dear All, >> >> I have a few (mainly editorial) comments on the article file format definition (version 5): >> >> 1) I think it would be helpful to say in the description of the primitive types that the primitive type const stands for the name of the constant only whereas var stands for a variable name together with a type. (I am intrigued by this design decision, but don't have any technical objection to it.) >> >> 2) In the description of the virtual machine, it would be helpful to say that some commands impose constraints on the states in which they can be executed (e.g., free variable conditions or constraints on types). Presumably it is left to the implementor to decide what to do if errors occur. >> >> 3) With just two exceptions (as far as I can see), the "notes" in the command description are actually constraints that restrict the states in which the command can be executed. It would be clearer to label them as "constraints" or "restrictions" rather than just "notes". The two exceptions are the note on ref and the second note on varType, which are both just informative. >> >> 4) In appTerm and appThm, the type of f must have the form sigma -> tau where sigma is the type of x. >> >> 5) For ref and remove, k must presumably be in the domain of dict. >> >> 6) The notes on var and varType, both refer to the "global namespace", but this term is not defined. I presume it means a name of the form Name([], s). >> >> Regards, >> >> Rob. >> _______________________________________________ >> opentheory-users mailing list >> opentheory-users at gilith.com >> http://www.gilith.com/mailman/listinfo/opentheory-users > > _______________________________________________ > opentheory-users mailing list > opentheory-users at gilith.com > http://www.gilith.com/mailman/listinfo/opentheory-users From ramana at member.fsf.org Mon Aug 5 17:14:48 2013 From: ramana at member.fsf.org (Ramana Kumar) Date: Mon, 5 Aug 2013 18:14:48 +0100 Subject: [opentheory-users] Problems with the hol light Open Theory support In-Reply-To: References: <63C89FD9-61B2-4D90-BDCB-E152B03D765E@lemma-one.com> Message-ID: On Thu, Aug 1, 2013 at 11:45 PM, Joe Leslie-Hurd wrote: > Hi Rob, > > > http://www.gilith.com/research/opentheory/faq.html#export-from-hol-light > > > > That's very useful. Are there any analogous instructions for exporting > from > > HOL4? > > Ramana: you're the expert on this. If you put together a few notes > I'll gladly add them as a new FAQ. > Under the assumption that some information is better than none, even if it's not complete... here goes: If you want to export a HOL4 theory as an OpenTheory article, you must build HOL4 with the logging kernel. To do that, pass --otknl to bin/build when you build your installation of HOL4. Then to export a theory, use the commands documented in src/opentheory/logging/Logging.sig within your theory's script file. Alternatively, pass the --ot flag to Holmake when you build your theory. As long as your theory depends on bossLib, the --ot flag will replace the new_theory and export_theory procedures with versions that log an article (with the same name of the theory) and store every saved theorem in it. (Thus you can log an article for a theory without modifying its script file.) > > Cheers, > > Joe > > _______________________________________________ > opentheory-users mailing list > opentheory-users at gilith.com > http://www.gilith.com/mailman/listinfo/opentheory-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From joe at gilith.com Mon Aug 5 17:48:44 2013 From: joe at gilith.com (Joe Leslie-Hurd) Date: Mon, 5 Aug 2013 10:48:44 -0700 Subject: [opentheory-users] Some comments on the article file format definition In-Reply-To: <4BA7C465-7DA5-4ADF-92CB-969CDF24DAB2@lemma-one.com> References: <4BA7C465-7DA5-4ADF-92CB-969CDF24DAB2@lemma-one.com> Message-ID: Hi Rob, Thank you very much for your comments on the article standard. I've incorporated all of them (except the one that you withdrew) and it is much clearer now. Since these were minor edits, I don't intend to bump the version, so it's still article format version 5. > 1) I think it would be helpful to say in the description of the primitive > types that the primitive type const stands for the name of the constant only > whereas var stands for a variable name together with a type (I am intrigued > by this design decision, but don't have any technical objection to it.) The rationale underlying this design is that I wanted defineConst to return a constant together with its definition theorem http://www.gilith.com/research/opentheory/article.html#defineConstCommand that could be used to construct terms, and the simplest way to do this was for constants to contain only their name and allow the user to attach different types to them when constructing terms. (I did consider an alternative design where constants contained their principal type, but there was an extra substitution command that operated on terms, but that seemed more complicated.) On the other hand two variables with the same name and different types are treated as completely different variables, so it made sense for variables to contain both their name and type. Thanks again for the feedback, Joe From rda at lemma-one.com Mon Aug 5 20:15:36 2013 From: rda at lemma-one.com (Rob Arthan) Date: Mon, 5 Aug 2013 21:15:36 +0100 Subject: [opentheory-users] Some comments on the article file format definition In-Reply-To: References: <4BA7C465-7DA5-4ADF-92CB-969CDF24DAB2@lemma-one.com> Message-ID: Joe, On 5 Aug 2013, at 18:48, Joe Leslie-Hurd wrote: > Hi Rob, > > Thank you very much for your comments on the article standard. I've > incorporated all of them (except the one that you withdrew) and it is > much clearer now. Since these were minor edits, I don't intend to bump > the version, so it's still article format version 5. Well done. Let me carry on for one more round in my pedantic vein and then I will stop (At least until the next time, which will be to start a discussion on new_specification). So here are the new comments: 8) You introduced a typo: "succesful". 9) It might be clearer to express the constraints on the name in var and varType using pattern matching. Thanks for all your hard work on OpenTheory. Regards, Rob. From joe at gilith.com Mon Aug 5 21:14:46 2013 From: joe at gilith.com (Joe Leslie-Hurd) Date: Mon, 5 Aug 2013 14:14:46 -0700 Subject: [opentheory-users] Some comments on the article file format definition In-Reply-To: References: <4BA7C465-7DA5-4ADF-92CB-969CDF24DAB2@lemma-one.com> Message-ID: Hi Rob, I appreciate the pedantry; thus far too few people have thoroughly tested the readability of the standard. > 8) You introduced a typo: "succesful". Got it. > 9) It might be clearer to express the constraints on the name in var and varType using pattern matching. After some thought I decided to make name a primitive type in the standard and add some explanation of the OpenTheory hierarchical namespace. Initially I was resisting this, thinking that each theorem prover developer would prefer to use their native representation of names. But this just resulted in confusion in the article format, and in any case developers will need to understand the structure of OpenTheory names to use the standard theory library. Cheers, Joe From krauss at in.tum.de Mon Aug 5 22:49:37 2013 From: krauss at in.tum.de (Alexander Krauss) Date: Tue, 06 Aug 2013 00:49:37 +0200 Subject: [opentheory-users] Scalable LCF-style proof translation In-Reply-To: References: <51F98657.4040208@in.tum.de> Message-ID: <52002C01.5050708@in.tum.de> Hi Joe, Hi Ramana, >> - I wonder which of the offline processing that we do currently is actually >> done similarly by the existing opentheory infrastructure. By looking at some >> opentheory tool help texts, I couldn't see the answer to this question. Most >> of the commands seem to be concerned with package management, which is >> unrelated. Currently, we do >> >> -- mark the last occurrence of any given object, to ensure deletion >> -- strip material that is not relevant for some "exported" theorem > > The opentheory tool post-processes articles extracted from theorem > provers, for compression and neatness purposes. To that end it does > both of the things you call out. Which command do I have to run to get this? And thanks for the other answers. I will need to play with all this (and it will take some time as I can only work on it occasionally). Alex From ramana at member.fsf.org Tue Aug 6 00:02:10 2013 From: ramana at member.fsf.org (Ramana Kumar) Date: Tue, 6 Aug 2013 01:02:10 +0100 Subject: [opentheory-users] Scalable LCF-style proof translation In-Reply-To: <52002C01.5050708@in.tum.de> References: <51F98657.4040208@in.tum.de> <52002C01.5050708@in.tum.de> Message-ID: On Mon, Aug 5, 2013 at 11:49 PM, Alexander Krauss wrote: > > The opentheory tool post-processes articles extracted from theorem >> provers, for compression and neatness purposes. To that end it does >> both of the things you call out. >> > > Which command do I have to run to get this? > Install opentheory as per http://www.gilith.com/software/opentheory/install.html. Then run it like: opentheory info --article --output processed.art input.art -------------- next part -------------- An HTML attachment was scrubbed... URL: From rda at lemma-one.com Sat Aug 10 13:50:42 2013 From: rda at lemma-one.com (Rob Arthan) Date: Sat, 10 Aug 2013 14:50:42 +0100 Subject: [opentheory-users] defineTypeOp Message-ID: Another minor comment on the article file format specification: shouldn't there be a constraint in defineTypeOp requiring the formula phi to have no free term variables? Regards, Rob. -------------- next part -------------- An HTML attachment was scrubbed... URL: From rda at lemma-one.com Mon Aug 12 11:00:36 2013 From: rda at lemma-one.com (Rob Arthan) Date: Mon, 12 Aug 2013 12:00:36 +0100 Subject: [opentheory-users] subst Message-ID: In the description of subst in the article file format, the a_i are type variable names, so presumably they must be in the global namespace? Regards, Rob. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ramana at member.fsf.org Mon Aug 12 16:26:31 2013 From: ramana at member.fsf.org (Ramana Kumar) Date: Mon, 12 Aug 2013 17:26:31 +0100 Subject: [opentheory-users] subst In-Reply-To: References: Message-ID: Yes I think you're right. My implementation of tyvar_to_ot would suggest so too. https://github.com/mn200/HOL/blob/master/src/opentheory/OpenTheoryCommon.sml#L9 On Mon, Aug 12, 2013 at 12:00 PM, Rob Arthan wrote: > In the description of subst in the article file format, the a_i are type > variable names, so presumably they must be in the global namespace? > > Regards, > > Rob. > > _______________________________________________ > opentheory-users mailing list > opentheory-users at gilith.com > http://www.gilith.com/mailman/listinfo/opentheory-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From joe at gilith.com Mon Aug 12 16:48:16 2013 From: joe at gilith.com (Joe Leslie-Hurd) Date: Mon, 12 Aug 2013 09:48:16 -0700 Subject: [opentheory-users] defineTypeOp In-Reply-To: References: Message-ID: Thanks Rob, I've added the extra constraint -- Joe On Sat, Aug 10, 2013 at 6:50 AM, Rob Arthan wrote: > Another minor comment on the article file format specification: shouldn't > there be a constraint in defineTypeOp requiring the formula phi to have no > free term variables? > > Regards, > > Rob. > > _______________________________________________ > opentheory-users mailing list > opentheory-users at gilith.com > http://www.gilith.com/mailman/listinfo/opentheory-users > From joe at gilith.com Mon Aug 12 16:56:14 2013 From: joe at gilith.com (Joe Leslie-Hurd) Date: Mon, 12 Aug 2013 09:56:14 -0700 Subject: [opentheory-users] subst In-Reply-To: References: Message-ID: Hi Rob, Yes, that is indeed a constraint of the subst rule, and I've added it to the description. Thanks for your suggestions, I want to make the standard as clear as possible. Cheers, Joe On Mon, Aug 12, 2013 at 9:26 AM, Ramana Kumar wrote: > Yes I think you're right. > > My implementation of tyvar_to_ot would suggest so too. > https://github.com/mn200/HOL/blob/master/src/opentheory/OpenTheoryCommon.sml#L9 > > > On Mon, Aug 12, 2013 at 12:00 PM, Rob Arthan wrote: >> >> In the description of subst in the article file format, the a_i are type >> variable names, so presumably they must be in the global namespace? >> >> Regards, >> >> Rob. >> >> _______________________________________________ >> opentheory-users mailing list >> opentheory-users at gilith.com >> http://www.gilith.com/mailman/listinfo/opentheory-users >> > > > _______________________________________________ > opentheory-users mailing list > opentheory-users at gilith.com > http://www.gilith.com/mailman/listinfo/opentheory-users >