From joe at gilith.com Mon Dec 1 23:32:12 2014 From: joe at gilith.com (Joe Leslie-Hurd) Date: Mon, 1 Dec 2014 15:32:12 -0800 Subject: [opentheory-users] Version 6 of the OpenTheory article file format standard Message-ID: I'm pleased to announce a new version of the OpenTheory article file format standard, used for encoding theories of higher order logic. The new version of the article standard is version 6, and is available at http://www.gilith.com/research/opentheory/article-6.html I would like to thank Rob Arthan, Mario Carneiro, Ramana Kumar and the others who have contributed to defining version 6 of the article standard: this is a concrete step towards the goal of sharing theories between the HOL family of theorem provers. Cheers, Joe *** Summary of changes in version 6 of the article file format standard 1. The new command version allows a writer to specify the version of the OpenTheory article format used in an article so that a reader can take appropriate action. 2. The new command pragma allows a writer to ask for a reader to take some implementation-dependent action, e.g., to produce debug output. 3. The new commands proveHyp, sym and trans provide an efficient implementation of three frequently used derived inference rules allowing writers to produce more compact article files. 4. The new command defineConstList provides a more abstract principle for constant definition. This supports recent extensions to HOL4 and ProofPower. 5. The new command hdTl provides a destructor function for lists (an inverse to the existing cons command). This enables writers to store constants introduced by the new command defineConstList in the dictionary. 6. The command defineTypeOp has been changed so that the theorems giving the defining properties of the abstraction and representation functions have no free variables. 7. There have been minor clarifications to the description of the primitive types processed by the virtual machine. 8. A note has been added to clarify the description of the command deductAntisym. The changes between version 5 and version 6 of the article file format standard are highlighted at http://www.gilith.com/research/opentheory/article-5-6.html *** Converting between version 5 and version 6 articles The latest release of the opentheory tool, which is available at http://www.gilith.com/software/opentheory/ supports a new --output-version parameter to select the version of articles that it outputs, like so: opentheory info --article -o output5.art --output-version 5 input.art opentheory info --article -o output6.art --output-version 6 input.art In this example the input article input.art can be either version 5 or version 6. The latest release of the OpenTheory standard theory library uses version 6 articles: http://opentheory.gilith.com/?pkg=base To install the standard theory library using the opentheory tool, type opentheory install base and to upgrade an existing installation type opentheory update opentheory upgrade From michael.norrish at nicta.com.au Mon Dec 1 23:39:59 2014 From: michael.norrish at nicta.com.au (Michael Norrish) Date: Tue, 2 Dec 2014 10:39:59 +1100 Subject: [opentheory-users] Version 6 of the OpenTheory article file format standard In-Reply-To: References: Message-ID: <547CFC4F.5030405@nicta.com.au> The pragma operation says that it can only accept an object on the top of the stack of the form "debug". Presumably, that's really an object of the form Name([], "debug"), as would be generated by having that string be the previous command in the file. Michael On 02/12/14 10:32, Joe Leslie-Hurd wrote: > I'm pleased to announce a new version of the OpenTheory article file > format standard, used for encoding theories of higher order logic. The > new version of the article standard is version 6, and is available at > > http://www.gilith.com/research/opentheory/article-6.html > > I would like to thank Rob Arthan, Mario Carneiro, Ramana Kumar and the > others who have contributed to defining version 6 of the article > standard: this is a concrete step towards the goal of sharing theories > between the HOL family of theorem provers. > > Cheers, > > Joe > > *** Summary of changes in version 6 of the article file format standard > > 1. The new command version allows a writer to specify the version of > the OpenTheory article format used in an article so that a reader can > take appropriate action. > > 2. The new command pragma allows a writer to ask for a reader to take > some implementation-dependent action, e.g., to produce debug output. > > 3. The new commands proveHyp, sym and trans provide an efficient > implementation of three frequently used derived inference rules > allowing writers to produce more compact article files. > > 4. The new command defineConstList provides a more abstract principle > for constant definition. This supports recent extensions to HOL4 and > ProofPower. > > 5. The new command hdTl provides a destructor function for lists (an > inverse to the existing cons command). This enables writers to store > constants introduced by the new command defineConstList in the > dictionary. > > 6. The command defineTypeOp has been changed so that the theorems > giving the defining properties of the abstraction and representation > functions have no free variables. > > 7. There have been minor clarifications to the description of the > primitive types processed by the virtual machine. > > 8. A note has been added to clarify the description of the command > deductAntisym. > > The changes between version 5 and version 6 of the article file format > standard are highlighted at > > http://www.gilith.com/research/opentheory/article-5-6.html > > *** Converting between version 5 and version 6 articles > > The latest release of the opentheory tool, which is available at > > http://www.gilith.com/software/opentheory/ > > supports a new --output-version parameter to select the version of > articles that it outputs, like so: > > opentheory info --article -o output5.art --output-version 5 input.art > opentheory info --article -o output6.art --output-version 6 input.art > > In this example the input article input.art can be either version 5 or > version 6. > > The latest release of the OpenTheory standard theory library uses > version 6 articles: > > http://opentheory.gilith.com/?pkg=base > > To install the standard theory library using the opentheory tool, type > > opentheory install base > > and to upgrade an existing installation type > > opentheory update > opentheory upgrade > > _______________________________________________ > opentheory-users mailing list > opentheory-users at gilith.com > http://www.gilith.com/mailman/listinfo/opentheory-users > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 490 bytes Desc: OpenPGP digital signature URL: From joe at gilith.com Mon Dec 1 23:45:11 2014 From: joe at gilith.com (Joe Leslie-Hurd) Date: Mon, 1 Dec 2014 15:45:11 -0800 Subject: [opentheory-users] Version 6 of the OpenTheory article file format standard In-Reply-To: <547CFC4F.5030405@nicta.com.au> References: <547CFC4F.5030405@nicta.com.au> Message-ID: Hi Michael, You're quite correct: the writing is a little sloppy in the implementation-dependent section of the standard. Cheers, Joe On Mon, Dec 1, 2014 at 3:39 PM, Michael Norrish wrote: > The pragma operation says that it can only accept an object on the top of the > stack of the form "debug". Presumably, that's really an object of the form > Name([], "debug"), as would be generated by having that string be the previous > command in the file. > > Michael > > On 02/12/14 10:32, Joe Leslie-Hurd wrote: >> I'm pleased to announce a new version of the OpenTheory article file >> format standard, used for encoding theories of higher order logic. The >> new version of the article standard is version 6, and is available at >> >> http://www.gilith.com/research/opentheory/article-6.html >> >> I would like to thank Rob Arthan, Mario Carneiro, Ramana Kumar and the >> others who have contributed to defining version 6 of the article >> standard: this is a concrete step towards the goal of sharing theories >> between the HOL family of theorem provers. >> >> Cheers, >> >> Joe >> >> *** Summary of changes in version 6 of the article file format standard >> >> 1. The new command version allows a writer to specify the version of >> the OpenTheory article format used in an article so that a reader can >> take appropriate action. >> >> 2. The new command pragma allows a writer to ask for a reader to take >> some implementation-dependent action, e.g., to produce debug output. >> >> 3. The new commands proveHyp, sym and trans provide an efficient >> implementation of three frequently used derived inference rules >> allowing writers to produce more compact article files. >> >> 4. The new command defineConstList provides a more abstract principle >> for constant definition. This supports recent extensions to HOL4 and >> ProofPower. >> >> 5. The new command hdTl provides a destructor function for lists (an >> inverse to the existing cons command). This enables writers to store >> constants introduced by the new command defineConstList in the >> dictionary. >> >> 6. The command defineTypeOp has been changed so that the theorems >> giving the defining properties of the abstraction and representation >> functions have no free variables. >> >> 7. There have been minor clarifications to the description of the >> primitive types processed by the virtual machine. >> >> 8. A note has been added to clarify the description of the command >> deductAntisym. >> >> The changes between version 5 and version 6 of the article file format >> standard are highlighted at >> >> http://www.gilith.com/research/opentheory/article-5-6.html >> >> *** Converting between version 5 and version 6 articles >> >> The latest release of the opentheory tool, which is available at >> >> http://www.gilith.com/software/opentheory/ >> >> supports a new --output-version parameter to select the version of >> articles that it outputs, like so: >> >> opentheory info --article -o output5.art --output-version 5 input.art >> opentheory info --article -o output6.art --output-version 6 input.art >> >> In this example the input article input.art can be either version 5 or >> version 6. >> >> The latest release of the OpenTheory standard theory library uses >> version 6 articles: >> >> http://opentheory.gilith.com/?pkg=base >> >> To install the standard theory library using the opentheory tool, type >> >> opentheory install base >> >> and to upgrade an existing installation type >> >> opentheory update >> opentheory upgrade >> >> _______________________________________________ >> 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.Kumar at cl.cam.ac.uk Sat Dec 20 07:40:53 2014 From: Ramana.Kumar at cl.cam.ac.uk (Ramana Kumar) Date: Sat, 20 Dec 2014 07:40:53 +0000 Subject: [opentheory-users] extracting intermediate theorems Message-ID: Hi all, Is there a way to get the OpenTheory tool to do any of the following? 1. Show me the intermediate (i.e. unexported) theorems that arise when running an article. 2. Create an article that exports a previously unexported theorem, taking an existing article as input. 3. Minimise an article for what is required for a particular theorem (I think the answer here is yes, by creating a package with the desired theorem and then asking for an article for it to be generated...?) Thanks, Ramana -------------- next part -------------- An HTML attachment was scrubbed... URL: From joe at gilith.com Sat Dec 20 21:09:02 2014 From: joe at gilith.com (Joe Leslie-Hurd) Date: Sat, 20 Dec 2014 13:09:02 -0800 Subject: [opentheory-users] extracting intermediate theorems In-Reply-To: References: Message-ID: Hi Ramana, > Is there a way to get the OpenTheory tool to do any of the following? > > Show me the intermediate (i.e. unexported) theorems that arise when running > an article. No, unfortunately not. The best it can do is tell you *how many* theorems are generated, by using the --inference option: $ opentheory info --inference base Inference rules: subst .............. 72,087 eqMp ............... 60,924 appThm ............. 40,895 proveHyp ........... 17,201 betaConv ........... 16,499 absThm ............. 12,581 trans .............. 12,292 refl ............... 10,727 deductAntisym ....... 7,995 sym ................. 7,695 assume .............. 4,247 axiom ............... 3,184 defineConst ........... 159 defineConstList ........ 63 defineTypeOp ........... 13 Total ............. 266,562 Did you have any thoughts on a way to present intermediate theorems to the user? > Create an article that exports a previously unexported theorem, taking an > existing article as input. Also no I'm afraid. > Minimise an article for what is required for a particular theorem (I think > the answer here is yes, by creating a package with the desired theorem and > then asking for an article for it to be generated...?) Indeed. Suppose article foo.art exports a set of theorems containing a theorem T of interest, then you can create an article bar.art that proves T by axiom, and then run echo 'a { article: "foo.art" } main { import: a article: "bar.art" }' | opentheory info --article -o baz.art theory:- to get a minimal article baz.art proving T. Cheers, Joe From Ramana.Kumar at cl.cam.ac.uk Sun Dec 21 05:31:19 2014 From: Ramana.Kumar at cl.cam.ac.uk (Ramana Kumar) Date: Sun, 21 Dec 2014 05:31:19 +0000 Subject: [opentheory-users] extracting intermediate theorems In-Reply-To: References: Message-ID: Hi Joe, On Sat, Dec 20, 2014 at 9:09 PM, Joe Leslie-Hurd wrote: > > Show me the intermediate (i.e. unexported) theorems that arise when > running > > an article. > > No, unfortunately not. The best it can do is tell you *how many* > theorems are generated, by using the --inference option. > > Did you have any thoughts on a way to present intermediate theorems to the > user? > What would be useful to me is if I could search for intermediate theorems with a pattern. I'd guess you'd rather stay away from specifying parsing of such patterns. I wouldn't mind, however, writing my pattern as OpenTheory article commands for creating a term. I'd then like to get back all intermediate theorems that match. > > Create an article that exports a previously unexported theorem, taking > an > > existing article as input. > > Also no I'm afraid. > That's a pity. Would it be hard to add? Presuming we solve the problem above of specifying an intermediate theorem. I guess for the moment I can get around this by using a custom reader that looks for the theorem I want and cuts off the article as soon as it finds it (and adds on an export). It would be nice if the opentheory tool had enough features to support this itself, but maybe it's a little outside your design goals? On the other hand, I think a good suite of powerful manipulations on OpenTheory packages for a variety of purposes would help buy-in. > > Minimise an article for what is required for a particular theorem (I > think > > the answer here is yes, by creating a package with the desired theorem > and > > then asking for an article for it to be generated...?) > > Indeed. Suppose article foo.art exports a set of theorems containing a > theorem T of interest, then you can create an article bar.art that > proves T by axiom, and then run > > echo 'a { article: "foo.art" } main { import: a article: "bar.art" }' > | opentheory info --article -o baz.art theory:- > > to get a minimal article baz.art proving T. > Great, thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Ramana.Kumar at cl.cam.ac.uk Thu Dec 25 13:01:32 2014 From: Ramana.Kumar at cl.cam.ac.uk (Ramana Kumar) Date: Thu, 25 Dec 2014 21:01:32 +0800 Subject: [opentheory-users] duplicate assumptions for "thm" Message-ID: Hi all, I have a nitpicking question about the "thm" command for OpenTheory articles. If the list of terms (t1,...,tn) contains two alpha-equivalent but syntactically distinct terms, which one of them should be chosen as the representative in the resulting Thm object? Or can we assume that the list is all distinct (up to alpha) (in which case, could that be noted explicitly)? Cheers, Ramana -------------- next part -------------- An HTML attachment was scrubbed... URL: