From ai.robert.wangshuai at gmail.com Wed Jun 3 14:58:06 2015
From: ai.robert.wangshuai at gmail.com (Robert White)
Date: Wed, 3 Jun 2015 16:58:06 +0200
Subject: [opentheory-users] Importing proofs of version 6
Message-ID:
Dear Joe,
I noticed that I can't using import for the current version (version 6). I
am using the one from:
git clone http://src.gilith.com/hol-light
I wonder if you have implemented it/updated the import.ml file, so I won't
have to redo your work.
Thanks
Robert
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From ai.robert.wangshuai at gmail.com Wed Jun 3 16:00:54 2015
From: ai.robert.wangshuai at gmail.com (Robert White)
Date: Wed, 3 Jun 2015 18:00:54 +0200
Subject: [opentheory-users] axioms or proofs?
Message-ID:
Dear Joe,
Is there any reason why you want to change some axioms in the files as
"proofs"?
For example:
let ETA_AX =
let axiom =
let ty0 = mk_vartype "A" in
let ty1 = mk_vartype "B" in
let ty2 = mk_fun_ty ty0 ty1 in
let ty3 = mk_type ("bool",[]) in
let ty4 = mk_fun_ty ty2 ty3 in
let tm0 = mk_var ("a",ty4) in
let tm1 = mk_var ("b",ty2) in
let tm2 = mk_var ("c",ty3) in
let tm3 = mk_abs (tm2,tm2) in
let tm4 = mk_eq (tm3,tm3) in
let tm5 = mk_abs (tm1,tm4) in
let tm6 = mk_eq (tm0,tm5) in
let tm7 = mk_abs (tm0,tm6) in
let tm8 = mk_var ("d",ty2) in
let tm9 = mk_var ("e",ty0) in
let tm10 = mk_comb (tm8,tm9) in
let tm11 = mk_abs (tm9,tm10) in
let tm12 = mk_eq (tm11,tm8) in
let tm13 = mk_abs (tm8,tm12) in
let tm14 = mk_comb (tm7,tm13) in
new_axiom tm14
in
prove
(`!(t:A->B). (\x. t x) = t`,
PURE_REWRITE_TAC [FORALL_DEF; T_DEF] THEN
ACCEPT_TAC axiom);;
instead of just :
let ETA_AX = new_axiom
`!t:A->B. (\x. t x) = t`;;
Thanks!
--
Regards,
Robert White (Shuai Wang)
INRIA Deducteam
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From konrad.slind at gmail.com Wed Jun 3 16:49:38 2015
From: konrad.slind at gmail.com (Konrad Slind)
Date: Wed, 3 Jun 2015 11:49:38 -0500
Subject: [opentheory-users] axioms or proofs?
In-Reply-To:
References:
Message-ID:
ETA_AX used to be a primitive in the HOL logic, but
someone (Bruno Barras? John Harrison?) realized that
it could be proved from the other axioms. Since
removing unnecessary axioms is thought to be
a good thing, it was made into a proved theorem.
Konrad.
On Wed, Jun 3, 2015 at 11:00 AM, Robert White wrote:
> Dear Joe,
>
> Is there any reason why you want to change some axioms in the files as
> "proofs"?
> For example:
>
> let ETA_AX =
> let axiom =
> let ty0 = mk_vartype "A" in
> let ty1 = mk_vartype "B" in
> let ty2 = mk_fun_ty ty0 ty1 in
> let ty3 = mk_type ("bool",[]) in
> let ty4 = mk_fun_ty ty2 ty3 in
> let tm0 = mk_var ("a",ty4) in
> let tm1 = mk_var ("b",ty2) in
> let tm2 = mk_var ("c",ty3) in
> let tm3 = mk_abs (tm2,tm2) in
> let tm4 = mk_eq (tm3,tm3) in
> let tm5 = mk_abs (tm1,tm4) in
> let tm6 = mk_eq (tm0,tm5) in
> let tm7 = mk_abs (tm0,tm6) in
> let tm8 = mk_var ("d",ty2) in
> let tm9 = mk_var ("e",ty0) in
> let tm10 = mk_comb (tm8,tm9) in
> let tm11 = mk_abs (tm9,tm10) in
> let tm12 = mk_eq (tm11,tm8) in
> let tm13 = mk_abs (tm8,tm12) in
> let tm14 = mk_comb (tm7,tm13) in
> new_axiom tm14
> in
> prove
> (`!(t:A->B). (\x. t x) = t`,
> PURE_REWRITE_TAC [FORALL_DEF; T_DEF] THEN
> ACCEPT_TAC axiom);;
>
>
> instead of just :
>
> let ETA_AX = new_axiom
> `!t:A->B. (\x. t x) = t`;;
>
> Thanks!
>
> --
>
> Regards,
> Robert White (Shuai Wang)
> INRIA Deducteam
>
> _______________________________________________
> 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 Wed Jun 3 20:42:37 2015
From: joe at gilith.com (Joe Leslie-Hurd)
Date: Wed, 3 Jun 2015 13:42:37 -0700
Subject: [opentheory-users] axioms or proofs?
In-Reply-To:
References:
Message-ID:
For some reason ETA_AX is still an axiom in HOL Light, together with
SELECT_AX and INFINITY_AX.
All this proof snippet does is write the axiom in terms of the
primitive symbols (the only primitive constant is =) and then derive
the usual presentation of the axiom from the primitive one. This trick
is used to ensure that the primitive axioms of OpenTheory do not
depend on the definition of any symbol.
Cheers,
Joe
On Wed, Jun 3, 2015 at 9:49 AM, Konrad Slind wrote:
> ETA_AX used to be a primitive in the HOL logic, but
> someone (Bruno Barras? John Harrison?) realized that
> it could be proved from the other axioms. Since
> removing unnecessary axioms is thought to be
> a good thing, it was made into a proved theorem.
>
> Konrad.
>
>
> On Wed, Jun 3, 2015 at 11:00 AM, Robert White
> wrote:
>>
>> Dear Joe,
>>
>> Is there any reason why you want to change some axioms in the files as
>> "proofs"?
>> For example:
>>
>> let ETA_AX =
>> let axiom =
>> let ty0 = mk_vartype "A" in
>> let ty1 = mk_vartype "B" in
>> let ty2 = mk_fun_ty ty0 ty1 in
>> let ty3 = mk_type ("bool",[]) in
>> let ty4 = mk_fun_ty ty2 ty3 in
>> let tm0 = mk_var ("a",ty4) in
>> let tm1 = mk_var ("b",ty2) in
>> let tm2 = mk_var ("c",ty3) in
>> let tm3 = mk_abs (tm2,tm2) in
>> let tm4 = mk_eq (tm3,tm3) in
>> let tm5 = mk_abs (tm1,tm4) in
>> let tm6 = mk_eq (tm0,tm5) in
>> let tm7 = mk_abs (tm0,tm6) in
>> let tm8 = mk_var ("d",ty2) in
>> let tm9 = mk_var ("e",ty0) in
>> let tm10 = mk_comb (tm8,tm9) in
>> let tm11 = mk_abs (tm9,tm10) in
>> let tm12 = mk_eq (tm11,tm8) in
>> let tm13 = mk_abs (tm8,tm12) in
>> let tm14 = mk_comb (tm7,tm13) in
>> new_axiom tm14
>> in
>> prove
>> (`!(t:A->B). (\x. t x) = t`,
>> PURE_REWRITE_TAC [FORALL_DEF; T_DEF] THEN
>> ACCEPT_TAC axiom);;
>>
>>
>> instead of just :
>>
>> let ETA_AX = new_axiom
>> `!t:A->B. (\x. t x) = t`;;
>>
>> Thanks!
>>
>> --
>>
>> Regards,
>> Robert White (Shuai Wang)
>> INRIA Deducteam
>>
>> _______________________________________________
>> opentheory-users mailing list
>> opentheory-users at gilith.com
>> http://www.gilith.com/mailman/listinfo/opentheory-users
>>
>
From joe at gilith.com Wed Jun 3 20:46:29 2015
From: joe at gilith.com (Joe Leslie-Hurd)
Date: Wed, 3 Jun 2015 13:46:29 -0700
Subject: [opentheory-users] Importing proofs of version 6
In-Reply-To:
References:
Message-ID:
Hi Robert,
Unfortunately I have not yet updated the import capability in my HOL
Light fork to work with version 6 theories. You can either:
1. Use the command I showed you before to convert version 6 articles
to version 5 before importing them.
2. Wait for me to implement this functionality.
3. Implement it yourself and send me a pull request.
Please let me know what you decide: it may affect the wait time in
solution 2 :-)
Cheers,
Joe
On Wed, Jun 3, 2015 at 7:58 AM, Robert White
wrote:
> Dear Joe,
>
> I noticed that I can't using import for the current version (version 6). I
> am using the one from:
>
> git clone http://src.gilith.com/hol-light
>
>
> I wonder if you have implemented it/updated the import.ml file, so I won't
> have to redo your work.
>
>
> Thanks
>
> Robert
>
>
From ramana at member.fsf.org Wed Jun 3 21:04:19 2015
From: ramana at member.fsf.org (Ramana Kumar)
Date: Wed, 3 Jun 2015 22:04:19 +0100
Subject: [opentheory-users] axioms or proofs?
In-Reply-To:
References:
Message-ID:
I suspect ETA_AX cannot be derived in HOL Light (i.e. the formulation
with only equality as primitive), but maybe can in other formulations.
Or were you thinking of IMP_ANTISYM_AX, Konrad?
On 3 June 2015 at 21:42, Joe Leslie-Hurd wrote:
> For some reason ETA_AX is still an axiom in HOL Light, together with
> SELECT_AX and INFINITY_AX.
>
> All this proof snippet does is write the axiom in terms of the
> primitive symbols (the only primitive constant is =) and then derive
> the usual presentation of the axiom from the primitive one. This trick
> is used to ensure that the primitive axioms of OpenTheory do not
> depend on the definition of any symbol.
>
> Cheers,
>
> Joe
>
> On Wed, Jun 3, 2015 at 9:49 AM, Konrad Slind wrote:
>> ETA_AX used to be a primitive in the HOL logic, but
>> someone (Bruno Barras? John Harrison?) realized that
>> it could be proved from the other axioms. Since
>> removing unnecessary axioms is thought to be
>> a good thing, it was made into a proved theorem.
>>
>> Konrad.
>>
>>
>> On Wed, Jun 3, 2015 at 11:00 AM, Robert White
>> wrote:
>>>
>>> Dear Joe,
>>>
>>> Is there any reason why you want to change some axioms in the files as
>>> "proofs"?
>>> For example:
>>>
>>> let ETA_AX =
>>> let axiom =
>>> let ty0 = mk_vartype "A" in
>>> let ty1 = mk_vartype "B" in
>>> let ty2 = mk_fun_ty ty0 ty1 in
>>> let ty3 = mk_type ("bool",[]) in
>>> let ty4 = mk_fun_ty ty2 ty3 in
>>> let tm0 = mk_var ("a",ty4) in
>>> let tm1 = mk_var ("b",ty2) in
>>> let tm2 = mk_var ("c",ty3) in
>>> let tm3 = mk_abs (tm2,tm2) in
>>> let tm4 = mk_eq (tm3,tm3) in
>>> let tm5 = mk_abs (tm1,tm4) in
>>> let tm6 = mk_eq (tm0,tm5) in
>>> let tm7 = mk_abs (tm0,tm6) in
>>> let tm8 = mk_var ("d",ty2) in
>>> let tm9 = mk_var ("e",ty0) in
>>> let tm10 = mk_comb (tm8,tm9) in
>>> let tm11 = mk_abs (tm9,tm10) in
>>> let tm12 = mk_eq (tm11,tm8) in
>>> let tm13 = mk_abs (tm8,tm12) in
>>> let tm14 = mk_comb (tm7,tm13) in
>>> new_axiom tm14
>>> in
>>> prove
>>> (`!(t:A->B). (\x. t x) = t`,
>>> PURE_REWRITE_TAC [FORALL_DEF; T_DEF] THEN
>>> ACCEPT_TAC axiom);;
>>>
>>>
>>> instead of just :
>>>
>>> let ETA_AX = new_axiom
>>> `!t:A->B. (\x. t x) = t`;;
>>>
>>> Thanks!
>>>
>>> --
>>>
>>> Regards,
>>> Robert White (Shuai Wang)
>>> INRIA Deducteam
>>>
>>> _______________________________________________
>>> 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 ai.robert.wangshuai at gmail.com Wed Jun 3 21:12:42 2015
From: ai.robert.wangshuai at gmail.com (Robert White)
Date: Wed, 3 Jun 2015 23:12:42 +0200
Subject: [opentheory-users] Importing proofs of version 6
In-Reply-To:
References:
Message-ID:
Thanks for the reply.
I would like to give it a try so I choose option 3 for now. I will use
option 1 to continue my project alongside.
Regards,
Robert
On 3 June 2015 at 22:46, Joe Leslie-Hurd wrote:
> Hi Robert,
>
> Unfortunately I have not yet updated the import capability in my HOL
> Light fork to work with version 6 theories. You can either:
>
> 1. Use the command I showed you before to convert version 6 articles
> to version 5 before importing them.
> 2. Wait for me to implement this functionality.
> 3. Implement it yourself and send me a pull request.
>
> Please let me know what you decide: it may affect the wait time in
> solution 2 :-)
>
> Cheers,
>
> Joe
>
> On Wed, Jun 3, 2015 at 7:58 AM, Robert White
> wrote:
> > Dear Joe,
> >
> > I noticed that I can't using import for the current version (version 6).
> I
> > am using the one from:
> >
> > git clone http://src.gilith.com/hol-light
> >
> >
> > I wonder if you have implemented it/updated the import.ml file, so I
> won't
> > have to redo your work.
> >
> >
> > Thanks
> >
> > Robert
> >
> >
>
--
Regards,
Robert White (Shuai Wang)
INRIA Deducteam
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From joe at gilith.com Fri Jun 5 02:55:24 2015
From: joe at gilith.com (Joe Leslie-Hurd)
Date: Thu, 4 Jun 2015 19:55:24 -0700
Subject: [opentheory-users] Importing proofs of version 6
In-Reply-To:
References:
Message-ID:
Robert and I have updated the HOL Light importer to work with version
6 articles, which is now available from
http://src.gilith.com/hol-light.html
It is very lightly tested at this point, so it may well be buggy. I
was able to read in the standard theory library as a version 6
article, which I generated using the command
opentheory info --article -o base.art base
but I didn't even look closely at the results.
Cheers,
Joe
On Wed, Jun 3, 2015 at 2:12 PM, Robert White
wrote:
> Thanks for the reply.
>
> I would like to give it a try so I choose option 3 for now. I will use
> option 1 to continue my project alongside.
>
> Regards,
> Robert
>
> On 3 June 2015 at 22:46, Joe Leslie-Hurd wrote:
>>
>> Hi Robert,
>>
>> Unfortunately I have not yet updated the import capability in my HOL
>> Light fork to work with version 6 theories. You can either:
>>
>> 1. Use the command I showed you before to convert version 6 articles
>> to version 5 before importing them.
>> 2. Wait for me to implement this functionality.
>> 3. Implement it yourself and send me a pull request.
>>
>> Please let me know what you decide: it may affect the wait time in
>> solution 2 :-)
>>
>> Cheers,
>>
>> Joe
>>
>> On Wed, Jun 3, 2015 at 7:58 AM, Robert White
>> wrote:
>> > Dear Joe,
>> >
>> > I noticed that I can't using import for the current version (version 6).
>> > I
>> > am using the one from:
>> >
>> > git clone http://src.gilith.com/hol-light
>> >
>> >
>> > I wonder if you have implemented it/updated the import.ml file, so I
>> > won't
>> > have to redo your work.
>> >
>> >
>> > Thanks
>> >
>> > Robert
>> >
>> >
>
>
>
>
> --
>
> Regards,
> Robert White (Shuai Wang)
> INRIA Deducteam
From ai.robert.wangshuai at gmail.com Fri Jun 5 06:38:35 2015
From: ai.robert.wangshuai at gmail.com (Robert White)
Date: Fri, 5 Jun 2015 08:38:35 +0200
Subject: [opentheory-users] Importing proofs of version 6
In-Reply-To:
References:
Message-ID:
Thanks Joe!
I will have to do some more test. I will let you know if I find any bug.
Regards,
Robert
On 5 June 2015 at 04:55, Joe Leslie-Hurd wrote:
> Robert and I have updated the HOL Light importer to work with version
> 6 articles, which is now available from
>
> http://src.gilith.com/hol-light.html
>
> It is very lightly tested at this point, so it may well be buggy. I
> was able to read in the standard theory library as a version 6
> article, which I generated using the command
>
> opentheory info --article -o base.art base
>
> but I didn't even look closely at the results.
>
> Cheers,
>
> Joe
>
>
> On Wed, Jun 3, 2015 at 2:12 PM, Robert White
> wrote:
> > Thanks for the reply.
> >
> > I would like to give it a try so I choose option 3 for now. I will use
> > option 1 to continue my project alongside.
> >
> > Regards,
> > Robert
> >
> > On 3 June 2015 at 22:46, Joe Leslie-Hurd wrote:
> >>
> >> Hi Robert,
> >>
> >> Unfortunately I have not yet updated the import capability in my HOL
> >> Light fork to work with version 6 theories. You can either:
> >>
> >> 1. Use the command I showed you before to convert version 6 articles
> >> to version 5 before importing them.
> >> 2. Wait for me to implement this functionality.
> >> 3. Implement it yourself and send me a pull request.
> >>
> >> Please let me know what you decide: it may affect the wait time in
> >> solution 2 :-)
> >>
> >> Cheers,
> >>
> >> Joe
> >>
> >> On Wed, Jun 3, 2015 at 7:58 AM, Robert White
> >> wrote:
> >> > Dear Joe,
> >> >
> >> > I noticed that I can't using import for the current version (version
> 6).
> >> > I
> >> > am using the one from:
> >> >
> >> > git clone http://src.gilith.com/hol-light
> >> >
> >> >
> >> > I wonder if you have implemented it/updated the import.ml file, so I
> >> > won't
> >> > have to redo your work.
> >> >
> >> >
> >> > Thanks
> >> >
> >> > Robert
> >> >
> >> >
> >
> >
> >
> >
> > --
> >
> > Regards,
> > Robert White (Shuai Wang)
> > INRIA Deducteam
>
--
Regards,
Robert White (Shuai Wang)
INRIA Deducteam
[Moving to ILLC of UvA from this Sep. ]
[New email address will be shuai.wang at student.uva.nl]
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From ai.robert.wangshuai at gmail.com Fri Jun 5 12:44:44 2015
From: ai.robert.wangshuai at gmail.com (Robert White)
Date: Fri, 5 Jun 2015 14:44:44 +0200
Subject: [opentheory-users] Importing proofs of version 6
In-Reply-To:
References:
Message-ID:
Dear Joe,
I am wondering if I am using it correctly. I would like to load some thm in
and do some proof checking and proof optimisation. However, after loading
the hol.ml and then do
let all = import_article "../../laholide/opentheory/bool.art";;
I get errors saying I am redefining constants. For instance, the bool.art
file:
# let all = import_article "../../laholide/opentheory/bool.art";;
Exception:
Failure
"in article ../../laholide/opentheory/bool.art at line 89:
defineConst\nstack = [Term; \"Data.Bool.T\"; Thm]\nnew_constant: constant T
has already been declared".
I could solve the problem by either not loading some of the files in HOL,
so constants won't be redefined, or try to detect the problems that are
defined but going to be redefined the same way. I would you solve the
problem for the OpenTheory version of HOL.
Thanks
Regards,
Robert
On 5 June 2015 at 08:38, Robert White wrote:
> Thanks Joe!
>
> I will have to do some more test. I will let you know if I find any bug.
>
> Regards,
> Robert
>
> On 5 June 2015 at 04:55, Joe Leslie-Hurd wrote:
>
>> Robert and I have updated the HOL Light importer to work with version
>> 6 articles, which is now available from
>>
>> http://src.gilith.com/hol-light.html
>>
>> It is very lightly tested at this point, so it may well be buggy. I
>> was able to read in the standard theory library as a version 6
>> article, which I generated using the command
>>
>> opentheory info --article -o base.art base
>>
>> but I didn't even look closely at the results.
>>
>> Cheers,
>>
>> Joe
>>
>>
>> On Wed, Jun 3, 2015 at 2:12 PM, Robert White
>> wrote:
>> > Thanks for the reply.
>> >
>> > I would like to give it a try so I choose option 3 for now. I will use
>> > option 1 to continue my project alongside.
>> >
>> > Regards,
>> > Robert
>> >
>> > On 3 June 2015 at 22:46, Joe Leslie-Hurd wrote:
>> >>
>> >> Hi Robert,
>> >>
>> >> Unfortunately I have not yet updated the import capability in my HOL
>> >> Light fork to work with version 6 theories. You can either:
>> >>
>> >> 1. Use the command I showed you before to convert version 6 articles
>> >> to version 5 before importing them.
>> >> 2. Wait for me to implement this functionality.
>> >> 3. Implement it yourself and send me a pull request.
>> >>
>> >> Please let me know what you decide: it may affect the wait time in
>> >> solution 2 :-)
>> >>
>> >> Cheers,
>> >>
>> >> Joe
>> >>
>> >> On Wed, Jun 3, 2015 at 7:58 AM, Robert White
>> >> wrote:
>> >> > Dear Joe,
>> >> >
>> >> > I noticed that I can't using import for the current version (version
>> 6).
>> >> > I
>> >> > am using the one from:
>> >> >
>> >> > git clone http://src.gilith.com/hol-light
>> >> >
>> >> >
>> >> > I wonder if you have implemented it/updated the import.ml file, so I
>> >> > won't
>> >> > have to redo your work.
>> >> >
>> >> >
>> >> > Thanks
>> >> >
>> >> > Robert
>> >> >
>> >> >
>> >
>> >
>> >
>> >
>> > --
>> >
>> > Regards,
>> > Robert White (Shuai Wang)
>> > INRIA Deducteam
>>
>
>
>
> --
>
> Regards,
> Robert White (Shuai Wang)
> INRIA Deducteam
> [Moving to ILLC of UvA from this Sep. ]
> [New email address will be shuai.wang at student.uva.nl]
>
>
--
Regards,
Robert White (Shuai Wang)
INRIA Deducteam
[Moving to ILLC of UvA from this Sep. ]
[New email address will be shuai.wang at student.uva.nl]
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From ai.robert.wangshuai at gmail.com Fri Jun 5 13:30:53 2015
From: ai.robert.wangshuai at gmail.com (Robert White)
Date: Fri, 5 Jun 2015 15:30:53 +0200
Subject: [opentheory-users] What is "asms" doing (from import)
Message-ID:
Dear Joe,
I noticed that after reading it in, say the bool.art. We suppose to have a
list of thm (of course) but I noticed there is also a list of assumptions.
And the asms for bool.art is even not parsable:
([([], `(\a. = a (\b. = (\c. c) (\c. c))) (\d. = (\e. d e) d)`);
([],
`(\a. = a (\b. = (\c. c) (\c. c)))
(\d. (\e. = e (\f. = (\c. c) (\c. c)))
(\g. (\h i.
=
((\j k.
= (\l. l j k)
(\m. m (= (\c. c) (\c. c)) (= (\c. c) (\c. c))))
h
i)
h)
(d g)
(d (@ d))))`)],
Now I am very confused what this "asms" is here for. I can't even
(meaningfully) read the first line :(
Thanks very much!
--
Regards,
Robert White (Shuai Wang)
INRIA Deducteam
[Moving to ILLC of UvA from this Sep. ]
[New email address will be shuai.wang at student.uva.nl]
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From joe at gilith.com Fri Jun 5 17:00:27 2015
From: joe at gilith.com (Joe Leslie-Hurd)
Date: Fri, 5 Jun 2015 10:00:27 -0700
Subject: [opentheory-users] Importing proofs of version 6
In-Reply-To:
References:
Message-ID:
Hi Robert,
You are using it correctly. The intent of the import facility is to
extend the current logical context by bringing in a new theory, not to
change the current logical context. The error that you are redefining
the T constant is an indication that you are trying to change the
current logical context.
What is your eventual goal using the OpenTheory importer in HOL Light?
I assume you have some new theories you want to import that are not
already in HOL Light.
Cheers,
Joe
On Fri, Jun 5, 2015 at 5:44 AM, Robert White
wrote:
> Dear Joe,
>
> I am wondering if I am using it correctly. I would like to load some thm in
> and do some proof checking and proof optimisation. However, after loading
> the hol.ml and then do
> let all = import_article "../../laholide/opentheory/bool.art";;
> I get errors saying I am redefining constants. For instance, the bool.art
> file:
>
> # let all = import_article "../../laholide/opentheory/bool.art";;
> Exception:
> Failure
> "in article ../../laholide/opentheory/bool.art at line 89:
> defineConst\nstack = [Term; \"Data.Bool.T\"; Thm]\nnew_constant: constant T
> has already been declared".
>
> I could solve the problem by either not loading some of the files in HOL, so
> constants won't be redefined, or try to detect the problems that are defined
> but going to be redefined the same way. I would you solve the problem for
> the OpenTheory version of HOL.
>
> Thanks
> Regards,
> Robert
>
>
> On 5 June 2015 at 08:38, Robert White wrote:
>>
>> Thanks Joe!
>>
>> I will have to do some more test. I will let you know if I find any bug.
>>
>> Regards,
>> Robert
>>
>> On 5 June 2015 at 04:55, Joe Leslie-Hurd wrote:
>>>
>>> Robert and I have updated the HOL Light importer to work with version
>>> 6 articles, which is now available from
>>>
>>> http://src.gilith.com/hol-light.html
>>>
>>> It is very lightly tested at this point, so it may well be buggy. I
>>> was able to read in the standard theory library as a version 6
>>> article, which I generated using the command
>>>
>>> opentheory info --article -o base.art base
>>>
>>> but I didn't even look closely at the results.
>>>
>>> Cheers,
>>>
>>> Joe
>>>
>>>
>>> On Wed, Jun 3, 2015 at 2:12 PM, Robert White
>>> wrote:
>>> > Thanks for the reply.
>>> >
>>> > I would like to give it a try so I choose option 3 for now. I will use
>>> > option 1 to continue my project alongside.
>>> >
>>> > Regards,
>>> > Robert
>>> >
>>> > On 3 June 2015 at 22:46, Joe Leslie-Hurd wrote:
>>> >>
>>> >> Hi Robert,
>>> >>
>>> >> Unfortunately I have not yet updated the import capability in my HOL
>>> >> Light fork to work with version 6 theories. You can either:
>>> >>
>>> >> 1. Use the command I showed you before to convert version 6 articles
>>> >> to version 5 before importing them.
>>> >> 2. Wait for me to implement this functionality.
>>> >> 3. Implement it yourself and send me a pull request.
>>> >>
>>> >> Please let me know what you decide: it may affect the wait time in
>>> >> solution 2 :-)
>>> >>
>>> >> Cheers,
>>> >>
>>> >> Joe
>>> >>
>>> >> On Wed, Jun 3, 2015 at 7:58 AM, Robert White
>>> >> wrote:
>>> >> > Dear Joe,
>>> >> >
>>> >> > I noticed that I can't using import for the current version (version
>>> >> > 6).
>>> >> > I
>>> >> > am using the one from:
>>> >> >
>>> >> > git clone http://src.gilith.com/hol-light
>>> >> >
>>> >> >
>>> >> > I wonder if you have implemented it/updated the import.ml file, so I
>>> >> > won't
>>> >> > have to redo your work.
>>> >> >
>>> >> >
>>> >> > Thanks
>>> >> >
>>> >> > Robert
>>> >> >
>>> >> >
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> >
>>> > Regards,
>>> > Robert White (Shuai Wang)
>>> > INRIA Deducteam
>>
>>
>>
>>
>> --
>>
>> Regards,
>> Robert White (Shuai Wang)
>> INRIA Deducteam
>> [Moving to ILLC of UvA from this Sep. ]
>> [New email address will be shuai.wang at student.uva.nl]
>>
>
>
>
> --
>
> Regards,
> Robert White (Shuai Wang)
> INRIA Deducteam
> [Moving to ILLC of UvA from this Sep. ]
> [New email address will be shuai.wang at student.uva.nl]
>
From ai.robert.wangshuai at gmail.com Fri Jun 5 17:04:28 2015
From: ai.robert.wangshuai at gmail.com (Robert White)
Date: Fri, 5 Jun 2015 19:04:28 +0200
Subject: [opentheory-users] Importing proofs of version 6
In-Reply-To:
References:
Message-ID:
Hi Joe,
At the moment I am only trying to load the old proofs. but if I don't
change the hol.ml file there will be conflict then. So seems the only
solution is that I completely comment out the rest of the files loaded in
hol.ml if so?
No, I don't have new theories so far.
Regards,
Robert
On 5 June 2015 at 19:00, Joe Leslie-Hurd wrote:
> Hi Robert,
>
> You are using it correctly. The intent of the import facility is to
> extend the current logical context by bringing in a new theory, not to
> change the current logical context. The error that you are redefining
> the T constant is an indication that you are trying to change the
> current logical context.
>
> What is your eventual goal using the OpenTheory importer in HOL Light?
> I assume you have some new theories you want to import that are not
> already in HOL Light.
>
> Cheers,
>
> Joe
>
>
> On Fri, Jun 5, 2015 at 5:44 AM, Robert White
> wrote:
> > Dear Joe,
> >
> > I am wondering if I am using it correctly. I would like to load some thm
> in
> > and do some proof checking and proof optimisation. However, after loading
> > the hol.ml and then do
> > let all = import_article "../../laholide/opentheory/bool.art";;
> > I get errors saying I am redefining constants. For instance, the bool.art
> > file:
> >
> > # let all = import_article "../../laholide/opentheory/bool.art";;
> > Exception:
> > Failure
> > "in article ../../laholide/opentheory/bool.art at line 89:
> > defineConst\nstack = [Term; \"Data.Bool.T\"; Thm]\nnew_constant:
> constant T
> > has already been declared".
> >
> > I could solve the problem by either not loading some of the files in
> HOL, so
> > constants won't be redefined, or try to detect the problems that are
> defined
> > but going to be redefined the same way. I would you solve the problem for
> > the OpenTheory version of HOL.
> >
> > Thanks
> > Regards,
> > Robert
> >
> >
> > On 5 June 2015 at 08:38, Robert White
> wrote:
> >>
> >> Thanks Joe!
> >>
> >> I will have to do some more test. I will let you know if I find any bug.
> >>
> >> Regards,
> >> Robert
> >>
> >> On 5 June 2015 at 04:55, Joe Leslie-Hurd wrote:
> >>>
> >>> Robert and I have updated the HOL Light importer to work with version
> >>> 6 articles, which is now available from
> >>>
> >>> http://src.gilith.com/hol-light.html
> >>>
> >>> It is very lightly tested at this point, so it may well be buggy. I
> >>> was able to read in the standard theory library as a version 6
> >>> article, which I generated using the command
> >>>
> >>> opentheory info --article -o base.art base
> >>>
> >>> but I didn't even look closely at the results.
> >>>
> >>> Cheers,
> >>>
> >>> Joe
> >>>
> >>>
> >>> On Wed, Jun 3, 2015 at 2:12 PM, Robert White
> >>> wrote:
> >>> > Thanks for the reply.
> >>> >
> >>> > I would like to give it a try so I choose option 3 for now. I will
> use
> >>> > option 1 to continue my project alongside.
> >>> >
> >>> > Regards,
> >>> > Robert
> >>> >
> >>> > On 3 June 2015 at 22:46, Joe Leslie-Hurd wrote:
> >>> >>
> >>> >> Hi Robert,
> >>> >>
> >>> >> Unfortunately I have not yet updated the import capability in my HOL
> >>> >> Light fork to work with version 6 theories. You can either:
> >>> >>
> >>> >> 1. Use the command I showed you before to convert version 6 articles
> >>> >> to version 5 before importing them.
> >>> >> 2. Wait for me to implement this functionality.
> >>> >> 3. Implement it yourself and send me a pull request.
> >>> >>
> >>> >> Please let me know what you decide: it may affect the wait time in
> >>> >> solution 2 :-)
> >>> >>
> >>> >> Cheers,
> >>> >>
> >>> >> Joe
> >>> >>
> >>> >> On Wed, Jun 3, 2015 at 7:58 AM, Robert White
> >>> >> wrote:
> >>> >> > Dear Joe,
> >>> >> >
> >>> >> > I noticed that I can't using import for the current version
> (version
> >>> >> > 6).
> >>> >> > I
> >>> >> > am using the one from:
> >>> >> >
> >>> >> > git clone http://src.gilith.com/hol-light
> >>> >> >
> >>> >> >
> >>> >> > I wonder if you have implemented it/updated the import.ml file,
> so I
> >>> >> > won't
> >>> >> > have to redo your work.
> >>> >> >
> >>> >> >
> >>> >> > Thanks
> >>> >> >
> >>> >> > Robert
> >>> >> >
> >>> >> >
> >>> >
> >>> >
> >>> >
> >>> >
> >>> > --
> >>> >
> >>> > Regards,
> >>> > Robert White (Shuai Wang)
> >>> > INRIA Deducteam
> >>
> >>
> >>
> >>
> >> --
> >>
> >> Regards,
> >> Robert White (Shuai Wang)
> >> INRIA Deducteam
> >> [Moving to ILLC of UvA from this Sep. ]
> >> [New email address will be shuai.wang at student.uva.nl]
> >>
> >
> >
> >
> > --
> >
> > Regards,
> > Robert White (Shuai Wang)
> > INRIA Deducteam
> > [Moving to ILLC of UvA from this Sep. ]
> > [New email address will be shuai.wang at student.uva.nl]
> >
>
--
Regards,
Robert White (Shuai Wang)
INRIA Deducteam
[Moving to ILLC of UvA from this Sep. ]
[New email address will be shuai.wang at student.uva.nl]
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From joe at gilith.com Fri Jun 5 17:10:34 2015
From: joe at gilith.com (Joe Leslie-Hurd)
Date: Fri, 5 Jun 2015 10:10:34 -0700
Subject: [opentheory-users] What is "asms" doing (from import)
In-Reply-To:
References:
Message-ID:
Hi Robert,
This beast is one of the OpenTheory axioms in its expanded form, as we
discussed recently:
http://www.gilith.com/pipermail/opentheory-users/2015-June/000501.html
When you import a theory you are required to link the external symbols
(i.e., constants and type operators) to symbols in the logical
context, and also to satisfy the theory assumptions with theorems in
the logical context.
In normal situations no one would have to see this unparsable axiom,
because it is only used by the standard theory library, which contains
a set of theories already formalized in each theorem prover in the HOL
family, but the axiom is indeed present in the HOL Light logical
context and can be accessed as a theorem using the "axioms" function.
Cheers,
Joe
On Fri, Jun 5, 2015 at 6:30 AM, Robert White
wrote:
> Dear Joe,
>
> I noticed that after reading it in, say the bool.art. We suppose to have a
> list of thm (of course) but I noticed there is also a list of assumptions.
> And the asms for bool.art is even not parsable:
>
>
> ([([], `(\a. = a (\b. = (\c. c) (\c. c))) (\d. = (\e. d e) d)`);
> ([],
> `(\a. = a (\b. = (\c. c) (\c. c)))
> (\d. (\e. = e (\f. = (\c. c) (\c. c)))
> (\g. (\h i.
> =
> ((\j k.
> = (\l. l j k)
> (\m. m (= (\c. c) (\c. c)) (= (\c. c) (\c. c))))
> h
> i)
> h)
> (d g)
> (d (@ d))))`)],
>
>
> Now I am very confused what this "asms" is here for. I can't even
> (meaningfully) read the first line :(
>
> Thanks very much!
> --
>
> Regards,
> Robert White (Shuai Wang)
> INRIA Deducteam
> [Moving to ILLC of UvA from this Sep. ]
> [New email address will be shuai.wang at student.uva.nl]
>
From joe at gilith.com Fri Jun 5 17:14:48 2015
From: joe at gilith.com (Joe Leslie-Hurd)
Date: Fri, 5 Jun 2015 10:14:48 -0700
Subject: [opentheory-users] Importing proofs of version 6
In-Reply-To:
References:
Message-ID:
Hi Robert,
Perhaps a more realistic case study would be to import a new theory
from the OpenTheory repo:
http://opentheory.gilith.com/
For example,
opentheory install natural-divides
opentheory info --article -o natural-divides.art natural-divides
and then import this article file?
Cheers,
Joe
On Fri, Jun 5, 2015 at 10:04 AM, Robert White
wrote:
> Hi Joe,
>
> At the moment I am only trying to load the old proofs. but if I don't change
> the hol.ml file there will be conflict then. So seems the only solution is
> that I completely comment out the rest of the files loaded in hol.ml if so?
>
> No, I don't have new theories so far.
> Regards,
> Robert
>
> On 5 June 2015 at 19:00, Joe Leslie-Hurd wrote:
>>
>> Hi Robert,
>>
>> You are using it correctly. The intent of the import facility is to
>> extend the current logical context by bringing in a new theory, not to
>> change the current logical context. The error that you are redefining
>> the T constant is an indication that you are trying to change the
>> current logical context.
>>
>> What is your eventual goal using the OpenTheory importer in HOL Light?
>> I assume you have some new theories you want to import that are not
>> already in HOL Light.
>>
>> Cheers,
>>
>> Joe
>>
>>
>> On Fri, Jun 5, 2015 at 5:44 AM, Robert White
>> wrote:
>> > Dear Joe,
>> >
>> > I am wondering if I am using it correctly. I would like to load some thm
>> > in
>> > and do some proof checking and proof optimisation. However, after
>> > loading
>> > the hol.ml and then do
>> > let all = import_article "../../laholide/opentheory/bool.art";;
>> > I get errors saying I am redefining constants. For instance, the
>> > bool.art
>> > file:
>> >
>> > # let all = import_article "../../laholide/opentheory/bool.art";;
>> > Exception:
>> > Failure
>> > "in article ../../laholide/opentheory/bool.art at line 89:
>> > defineConst\nstack = [Term; \"Data.Bool.T\"; Thm]\nnew_constant:
>> > constant T
>> > has already been declared".
>> >
>> > I could solve the problem by either not loading some of the files in
>> > HOL, so
>> > constants won't be redefined, or try to detect the problems that are
>> > defined
>> > but going to be redefined the same way. I would you solve the problem
>> > for
>> > the OpenTheory version of HOL.
>> >
>> > Thanks
>> > Regards,
>> > Robert
>> >
>> >
>> > On 5 June 2015 at 08:38, Robert White
>> > wrote:
>> >>
>> >> Thanks Joe!
>> >>
>> >> I will have to do some more test. I will let you know if I find any
>> >> bug.
>> >>
>> >> Regards,
>> >> Robert
>> >>
>> >> On 5 June 2015 at 04:55, Joe Leslie-Hurd wrote:
>> >>>
>> >>> Robert and I have updated the HOL Light importer to work with version
>> >>> 6 articles, which is now available from
>> >>>
>> >>> http://src.gilith.com/hol-light.html
>> >>>
>> >>> It is very lightly tested at this point, so it may well be buggy. I
>> >>> was able to read in the standard theory library as a version 6
>> >>> article, which I generated using the command
>> >>>
>> >>> opentheory info --article -o base.art base
>> >>>
>> >>> but I didn't even look closely at the results.
>> >>>
>> >>> Cheers,
>> >>>
>> >>> Joe
>> >>>
>> >>>
>> >>> On Wed, Jun 3, 2015 at 2:12 PM, Robert White
>> >>> wrote:
>> >>> > Thanks for the reply.
>> >>> >
>> >>> > I would like to give it a try so I choose option 3 for now. I will
>> >>> > use
>> >>> > option 1 to continue my project alongside.
>> >>> >
>> >>> > Regards,
>> >>> > Robert
>> >>> >
>> >>> > On 3 June 2015 at 22:46, Joe Leslie-Hurd wrote:
>> >>> >>
>> >>> >> Hi Robert,
>> >>> >>
>> >>> >> Unfortunately I have not yet updated the import capability in my
>> >>> >> HOL
>> >>> >> Light fork to work with version 6 theories. You can either:
>> >>> >>
>> >>> >> 1. Use the command I showed you before to convert version 6
>> >>> >> articles
>> >>> >> to version 5 before importing them.
>> >>> >> 2. Wait for me to implement this functionality.
>> >>> >> 3. Implement it yourself and send me a pull request.
>> >>> >>
>> >>> >> Please let me know what you decide: it may affect the wait time in
>> >>> >> solution 2 :-)
>> >>> >>
>> >>> >> Cheers,
>> >>> >>
>> >>> >> Joe
>> >>> >>
>> >>> >> On Wed, Jun 3, 2015 at 7:58 AM, Robert White
>> >>> >> wrote:
>> >>> >> > Dear Joe,
>> >>> >> >
>> >>> >> > I noticed that I can't using import for the current version
>> >>> >> > (version
>> >>> >> > 6).
>> >>> >> > I
>> >>> >> > am using the one from:
>> >>> >> >
>> >>> >> > git clone http://src.gilith.com/hol-light
>> >>> >> >
>> >>> >> >
>> >>> >> > I wonder if you have implemented it/updated the import.ml file,
>> >>> >> > so I
>> >>> >> > won't
>> >>> >> > have to redo your work.
>> >>> >> >
>> >>> >> >
>> >>> >> > Thanks
>> >>> >> >
>> >>> >> > Robert
>> >>> >> >
>> >>> >> >
>> >>> >
>> >>> >
>> >>> >
>> >>> >
>> >>> > --
>> >>> >
>> >>> > Regards,
>> >>> > Robert White (Shuai Wang)
>> >>> > INRIA Deducteam
>> >>
>> >>
>> >>
>> >>
>> >> --
>> >>
>> >> Regards,
>> >> Robert White (Shuai Wang)
>> >> INRIA Deducteam
>> >> [Moving to ILLC of UvA from this Sep. ]
>> >> [New email address will be shuai.wang at student.uva.nl]
>> >>
>> >
>> >
>> >
>> > --
>> >
>> > Regards,
>> > Robert White (Shuai Wang)
>> > INRIA Deducteam
>> > [Moving to ILLC of UvA from this Sep. ]
>> > [New email address will be shuai.wang at student.uva.nl]
>> >
>
>
>
>
> --
>
> Regards,
> Robert White (Shuai Wang)
> INRIA Deducteam
> [Moving to ILLC of UvA from this Sep. ]
> [New email address will be shuai.wang at student.uva.nl]
>
From ai.robert.wangshuai at gmail.com Fri Jun 5 19:59:57 2015
From: ai.robert.wangshuai at gmail.com (Robert White)
Date: Fri, 5 Jun 2015 21:59:57 +0200
Subject: [opentheory-users] Importing proofs of version 6
In-Reply-To:
References:
Message-ID:
:(
looks it is not working that way.
# import_article "../laholide/opentheory/natural-divides.art";;
Exception:
Failure
"in article ../laholide/opentheory/natural-divides.art at line 159:
defineConst\nstack = [Term; \"Number.Natural.divides\"; Var; Var;
[]]\nunknown constant \"Number.Natural.divides\"".
#
and when I load other files, say list.art. I get all the thm as None. OHHH
:(
# import_article "../laholide/opentheory/list.art";;
val it :
(term list * term) list * (thm option * (term list * term)) option list =
([([], `(!) = (\p. p = (\x. T))`);
([], `(/\) = (\p q. (\f. f p q) = (\f. f T T))`);
([], `!n. EVEN (SUC n) <=> ~EVEN n`);
([], `!n. EVEN (BIT0 (BIT1 _0) * n)`);
([], `!m n. SUC m = SUC n <=> m = n`);
([], `!m n p. m * n = m * p <=> m = _0 \/ n = p`);
([], `!m n. m <= n /\ n <= m <=> m = n`); ([], `BIT0 _0 = _0`);
([], `!n. _0 + n = n`); ([], `!n. BIT0 (SUC n) = SUC (SUC (BIT0 n))`);
([], `!m n. SUC m + n = SUC (m + n)`);
([], `!m n. m + SUC n = SUC (m + n)`);
([], `!p. p _0 /\ (!n. p n ==> p (SUC n)) ==> (!n. p n)`);
([], `!n. BIT1 n = SUC (BIT0 n)`); ([], `!n. _0 <= n`);
([], `!m. m <= _0 <=> m = _0`); ([], `!n. BIT0 (BIT1 _0) * n = n + n`);
([], `!m n. m <= SUC n <=> m = SUC n \/ m <= n`);
([], `!m n. m * n = _0 <=> m = _0 \/ n = _0`); ([], `!n. ~(SUC n =
_0)`);
([], `!m n p. m * n <= m * p <=> m = _0 \/ n <= p`);
([], `!m n. SUC m <= n <=> m < n`);
([], `!m n p. m * n < m * p <=> ~(m = _0) /\ n < p`);
([], `!m n. m <= n <=> m < n \/ m = n`);
([], `!m n. EVEN (m * n) <=> EVEN m \/ EVEN n`);
([], `!m n. EVEN (m + n) <=> EVEN m <=> EVEN n`);
([], `!m n. ~(m <= n /\ n < m)`); ([], `!m n. ~(m < n /\ n <= m)`);
([], `!m. m EXP _0 = BIT1 _0`); ([], `!m n. m EXP SUC n = m * m EXP n`);
([], `!m n p. m * n * p = (m * n) * p`);
([], `!m n. m EXP n = _0 <=> m = _0 /\ ~(n = _0)`);
([], `!p m n. m + p = n + p <=> m = n`);
([], `!e f. ?!fn. fn _0 = e /\ (!n. fn (SUC n) = f (fn n) n)`);
([], `!m n. ~(m <= n) <=> n < m`);
([], `!m n. m < n <=> (?d. n = m + SUC d)`); ([], `!m n. m + n = n +
m`);
([], `!m. m + _0 = m`); ([], `!m n. SUC m <= SUC n <=> m <= n`);
([], `CARD {} = _0`);
([],
`!x s.
FINITE s
==> CARD (x INSERT s) = (if x IN s then CARD s else SUC (CARD
s))`);
([], `!n. n <= SUC n`); ([], `!n. n <= n`);
([], `!m n p. m <= n /\ n <= p ==> m <= p`);
([], `!m n. (m + n) - m = n`); ([], `!n. n - n = _0`);
([], `!m n. m + n = _0 <=> m = _0 /\ n = _0`); ([], `!m n. m <= m + n`);
([], `!m n. m + n = n <=> m = _0`); ([], `!n. SUC n - BIT1 _0 = n`);
([], `!m. ~(m < _0)`); ([], `!m. m = _0 \/ (?n. m = SUC n)`);
([], `!m n. SUC m < SUC n <=> m < n`); ([], `!n. n < SUC n`);
([], `!p x. p x ==> p ((@) p)`);
([], `!n. {m | m < SUC n} = _0 INSERT {SUC m | m < n}`);
([], `!m n. n <= m + n`); ([], `!n. ~(n < n)`); ([], `!m. m - _0 = m`);
([], `!n. _0 < SUC n`); ([], `!m n. ~(m < n) <=> n <= m`);
([], `!m n. n <= m ==> SUC m - SUC n = m - n`);
([], `!m. SUC m = m + BIT1 _0`); ([], `!m n p. m + n + p = (m + n) +
p`);
([], `!m n p. m < n /\ n <= p ==> m < p`);
([], `!m n p. m + n <= m + p <=> n <= p`)],
[None; None; None; None; None; None; None; None; None; None; None; None;
None; None; None; None; None; None; None; None; None; None; None; None;
None; None; None; None; None; None; None; None; None; None; None; None;
None; None; None; None; None; None; None; None; None; None; None; None;
None; None; None; None; None; None; None; None; None; None; None; None;
None; None; None; None; None; None; None; None; None; None; None; None;
None; None; None; None; None; None; None; None; None; None; None; None;
None; None; None; None; None; None; None; None; None; None; None; None;
None; None; None; ...])
On 5 June 2015 at 19:14, Joe Leslie-Hurd wrote:
> Hi Robert,
>
> Perhaps a more realistic case study would be to import a new theory
> from the OpenTheory repo:
>
> http://opentheory.gilith.com/
>
> For example,
>
> opentheory install natural-divides
> opentheory info --article -o natural-divides.art natural-divides
>
> and then import this article file?
>
> Cheers,
>
> Joe
>
> On Fri, Jun 5, 2015 at 10:04 AM, Robert White
> wrote:
> > Hi Joe,
> >
> > At the moment I am only trying to load the old proofs. but if I don't
> change
> > the hol.ml file there will be conflict then. So seems the only solution
> is
> > that I completely comment out the rest of the files loaded in hol.ml if
> so?
> >
> > No, I don't have new theories so far.
> > Regards,
> > Robert
> >
> > On 5 June 2015 at 19:00, Joe Leslie-Hurd wrote:
> >>
> >> Hi Robert,
> >>
> >> You are using it correctly. The intent of the import facility is to
> >> extend the current logical context by bringing in a new theory, not to
> >> change the current logical context. The error that you are redefining
> >> the T constant is an indication that you are trying to change the
> >> current logical context.
> >>
> >> What is your eventual goal using the OpenTheory importer in HOL Light?
> >> I assume you have some new theories you want to import that are not
> >> already in HOL Light.
> >>
> >> Cheers,
> >>
> >> Joe
> >>
> >>
> >> On Fri, Jun 5, 2015 at 5:44 AM, Robert White
> >> wrote:
> >> > Dear Joe,
> >> >
> >> > I am wondering if I am using it correctly. I would like to load some
> thm
> >> > in
> >> > and do some proof checking and proof optimisation. However, after
> >> > loading
> >> > the hol.ml and then do
> >> > let all = import_article "../../laholide/opentheory/bool.art";;
> >> > I get errors saying I am redefining constants. For instance, the
> >> > bool.art
> >> > file:
> >> >
> >> > # let all = import_article "../../laholide/opentheory/bool.art";;
> >> > Exception:
> >> > Failure
> >> > "in article ../../laholide/opentheory/bool.art at line 89:
> >> > defineConst\nstack = [Term; \"Data.Bool.T\"; Thm]\nnew_constant:
> >> > constant T
> >> > has already been declared".
> >> >
> >> > I could solve the problem by either not loading some of the files in
> >> > HOL, so
> >> > constants won't be redefined, or try to detect the problems that are
> >> > defined
> >> > but going to be redefined the same way. I would you solve the problem
> >> > for
> >> > the OpenTheory version of HOL.
> >> >
> >> > Thanks
> >> > Regards,
> >> > Robert
> >> >
> >> >
> >> > On 5 June 2015 at 08:38, Robert White
> >> > wrote:
> >> >>
> >> >> Thanks Joe!
> >> >>
> >> >> I will have to do some more test. I will let you know if I find any
> >> >> bug.
> >> >>
> >> >> Regards,
> >> >> Robert
> >> >>
> >> >> On 5 June 2015 at 04:55, Joe Leslie-Hurd wrote:
> >> >>>
> >> >>> Robert and I have updated the HOL Light importer to work with
> version
> >> >>> 6 articles, which is now available from
> >> >>>
> >> >>> http://src.gilith.com/hol-light.html
> >> >>>
> >> >>> It is very lightly tested at this point, so it may well be buggy. I
> >> >>> was able to read in the standard theory library as a version 6
> >> >>> article, which I generated using the command
> >> >>>
> >> >>> opentheory info --article -o base.art base
> >> >>>
> >> >>> but I didn't even look closely at the results.
> >> >>>
> >> >>> Cheers,
> >> >>>
> >> >>> Joe
> >> >>>
> >> >>>
> >> >>> On Wed, Jun 3, 2015 at 2:12 PM, Robert White
> >> >>> wrote:
> >> >>> > Thanks for the reply.
> >> >>> >
> >> >>> > I would like to give it a try so I choose option 3 for now. I will
> >> >>> > use
> >> >>> > option 1 to continue my project alongside.
> >> >>> >
> >> >>> > Regards,
> >> >>> > Robert
> >> >>> >
> >> >>> > On 3 June 2015 at 22:46, Joe Leslie-Hurd wrote:
> >> >>> >>
> >> >>> >> Hi Robert,
> >> >>> >>
> >> >>> >> Unfortunately I have not yet updated the import capability in my
> >> >>> >> HOL
> >> >>> >> Light fork to work with version 6 theories. You can either:
> >> >>> >>
> >> >>> >> 1. Use the command I showed you before to convert version 6
> >> >>> >> articles
> >> >>> >> to version 5 before importing them.
> >> >>> >> 2. Wait for me to implement this functionality.
> >> >>> >> 3. Implement it yourself and send me a pull request.
> >> >>> >>
> >> >>> >> Please let me know what you decide: it may affect the wait time
> in
> >> >>> >> solution 2 :-)
> >> >>> >>
> >> >>> >> Cheers,
> >> >>> >>
> >> >>> >> Joe
> >> >>> >>
> >> >>> >> On Wed, Jun 3, 2015 at 7:58 AM, Robert White
> >> >>> >> wrote:
> >> >>> >> > Dear Joe,
> >> >>> >> >
> >> >>> >> > I noticed that I can't using import for the current version
> >> >>> >> > (version
> >> >>> >> > 6).
> >> >>> >> > I
> >> >>> >> > am using the one from:
> >> >>> >> >
> >> >>> >> > git clone http://src.gilith.com/hol-light
> >> >>> >> >
> >> >>> >> >
> >> >>> >> > I wonder if you have implemented it/updated the import.ml
> file,
> >> >>> >> > so I
> >> >>> >> > won't
> >> >>> >> > have to redo your work.
> >> >>> >> >
> >> >>> >> >
> >> >>> >> > Thanks
> >> >>> >> >
> >> >>> >> > Robert
> >> >>> >> >
> >> >>> >> >
> >> >>> >
> >> >>> >
> >> >>> >
> >> >>> >
> >> >>> > --
> >> >>> >
> >> >>> > Regards,
> >> >>> > Robert White (Shuai Wang)
> >> >>> > INRIA Deducteam
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >>
> >> >> Regards,
> >> >> Robert White (Shuai Wang)
> >> >> INRIA Deducteam
> >> >> [Moving to ILLC of UvA from this Sep. ]
> >> >> [New email address will be shuai.wang at student.uva.nl]
> >> >>
> >> >
> >> >
> >> >
> >> > --
> >> >
> >> > Regards,
> >> > Robert White (Shuai Wang)
> >> > INRIA Deducteam
> >> > [Moving to ILLC of UvA from this Sep. ]
> >> > [New email address will be shuai.wang at student.uva.nl]
> >> >
> >
> >
> >
> >
> > --
> >
> > Regards,
> > Robert White (Shuai Wang)
> > INRIA Deducteam
> > [Moving to ILLC of UvA from this Sep. ]
> > [New email address will be shuai.wang at student.uva.nl]
> >
>
--
Regards,
Robert White (Shuai Wang)
INRIA Deducteam
[Moving to ILLC of UvA from this Sep. ]
[New email address will be shuai.wang at student.uva.nl]
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From joe at gilith.com Fri Jun 5 20:33:42 2015
From: joe at gilith.com (Joe Leslie-Hurd)
Date: Fri, 5 Jun 2015 13:33:42 -0700
Subject: [opentheory-users] Importing proofs of version 6
In-Reply-To:
References:
Message-ID:
OK, that's not good. Let me take a look.
Cheers,
Joe
On Fri, Jun 5, 2015 at 12:59 PM, Robert White
wrote:
> :(
>
> looks it is not working that way.
>
> # import_article "../laholide/opentheory/natural-divides.art";;
> Exception:
> Failure
> "in article ../laholide/opentheory/natural-divides.art at line 159:
> defineConst\nstack = [Term; \"Number.Natural.divides\"; Var; Var;
> []]\nunknown constant \"Number.Natural.divides\"".
> #
>
>
> and when I load other files, say list.art. I get all the thm as None. OHHH
> :(
>
> # import_article "../laholide/opentheory/list.art";;
> val it :
> (term list * term) list * (thm option * (term list * term)) option list =
> ([([], `(!) = (\p. p = (\x. T))`);
> ([], `(/\) = (\p q. (\f. f p q) = (\f. f T T))`);
> ([], `!n. EVEN (SUC n) <=> ~EVEN n`);
> ([], `!n. EVEN (BIT0 (BIT1 _0) * n)`);
> ([], `!m n. SUC m = SUC n <=> m = n`);
> ([], `!m n p. m * n = m * p <=> m = _0 \/ n = p`);
> ([], `!m n. m <= n /\ n <= m <=> m = n`); ([], `BIT0 _0 = _0`);
> ([], `!n. _0 + n = n`); ([], `!n. BIT0 (SUC n) = SUC (SUC (BIT0 n))`);
> ([], `!m n. SUC m + n = SUC (m + n)`);
> ([], `!m n. m + SUC n = SUC (m + n)`);
> ([], `!p. p _0 /\ (!n. p n ==> p (SUC n)) ==> (!n. p n)`);
> ([], `!n. BIT1 n = SUC (BIT0 n)`); ([], `!n. _0 <= n`);
> ([], `!m. m <= _0 <=> m = _0`); ([], `!n. BIT0 (BIT1 _0) * n = n + n`);
> ([], `!m n. m <= SUC n <=> m = SUC n \/ m <= n`);
> ([], `!m n. m * n = _0 <=> m = _0 \/ n = _0`); ([], `!n. ~(SUC n =
> _0)`);
> ([], `!m n p. m * n <= m * p <=> m = _0 \/ n <= p`);
> ([], `!m n. SUC m <= n <=> m < n`);
> ([], `!m n p. m * n < m * p <=> ~(m = _0) /\ n < p`);
> ([], `!m n. m <= n <=> m < n \/ m = n`);
> ([], `!m n. EVEN (m * n) <=> EVEN m \/ EVEN n`);
> ([], `!m n. EVEN (m + n) <=> EVEN m <=> EVEN n`);
> ([], `!m n. ~(m <= n /\ n < m)`); ([], `!m n. ~(m < n /\ n <= m)`);
> ([], `!m. m EXP _0 = BIT1 _0`); ([], `!m n. m EXP SUC n = m * m EXP n`);
> ([], `!m n p. m * n * p = (m * n) * p`);
> ([], `!m n. m EXP n = _0 <=> m = _0 /\ ~(n = _0)`);
> ([], `!p m n. m + p = n + p <=> m = n`);
> ([], `!e f. ?!fn. fn _0 = e /\ (!n. fn (SUC n) = f (fn n) n)`);
> ([], `!m n. ~(m <= n) <=> n < m`);
> ([], `!m n. m < n <=> (?d. n = m + SUC d)`); ([], `!m n. m + n = n +
> m`);
> ([], `!m. m + _0 = m`); ([], `!m n. SUC m <= SUC n <=> m <= n`);
> ([], `CARD {} = _0`);
> ([],
> `!x s.
> FINITE s
> ==> CARD (x INSERT s) = (if x IN s then CARD s else SUC (CARD
> s))`);
> ([], `!n. n <= SUC n`); ([], `!n. n <= n`);
> ([], `!m n p. m <= n /\ n <= p ==> m <= p`);
> ([], `!m n. (m + n) - m = n`); ([], `!n. n - n = _0`);
> ([], `!m n. m + n = _0 <=> m = _0 /\ n = _0`); ([], `!m n. m <= m + n`);
> ([], `!m n. m + n = n <=> m = _0`); ([], `!n. SUC n - BIT1 _0 = n`);
> ([], `!m. ~(m < _0)`); ([], `!m. m = _0 \/ (?n. m = SUC n)`);
> ([], `!m n. SUC m < SUC n <=> m < n`); ([], `!n. n < SUC n`);
> ([], `!p x. p x ==> p ((@) p)`);
> ([], `!n. {m | m < SUC n} = _0 INSERT {SUC m | m < n}`);
> ([], `!m n. n <= m + n`); ([], `!n. ~(n < n)`); ([], `!m. m - _0 = m`);
> ([], `!n. _0 < SUC n`); ([], `!m n. ~(m < n) <=> n <= m`);
> ([], `!m n. n <= m ==> SUC m - SUC n = m - n`);
> ([], `!m. SUC m = m + BIT1 _0`); ([], `!m n p. m + n + p = (m + n) +
> p`);
> ([], `!m n p. m < n /\ n <= p ==> m < p`);
> ([], `!m n p. m + n <= m + p <=> n <= p`)],
> [None; None; None; None; None; None; None; None; None; None; None; None;
> None; None; None; None; None; None; None; None; None; None; None; None;
> None; None; None; None; None; None; None; None; None; None; None; None;
> None; None; None; None; None; None; None; None; None; None; None; None;
> None; None; None; None; None; None; None; None; None; None; None; None;
> None; None; None; None; None; None; None; None; None; None; None; None;
> None; None; None; None; None; None; None; None; None; None; None; None;
> None; None; None; None; None; None; None; None; None; None; None; None;
> None; None; None; ...])
>
>
>
>
> On 5 June 2015 at 19:14, Joe Leslie-Hurd wrote:
>>
>> Hi Robert,
>>
>> Perhaps a more realistic case study would be to import a new theory
>> from the OpenTheory repo:
>>
>> http://opentheory.gilith.com/
>>
>> For example,
>>
>> opentheory install natural-divides
>> opentheory info --article -o natural-divides.art natural-divides
>>
>> and then import this article file?
>>
>> Cheers,
>>
>> Joe
>>
>> On Fri, Jun 5, 2015 at 10:04 AM, Robert White
>> wrote:
>> > Hi Joe,
>> >
>> > At the moment I am only trying to load the old proofs. but if I don't
>> > change
>> > the hol.ml file there will be conflict then. So seems the only solution
>> > is
>> > that I completely comment out the rest of the files loaded in hol.ml if
>> > so?
>> >
>> > No, I don't have new theories so far.
>> > Regards,
>> > Robert
>> >
>> > On 5 June 2015 at 19:00, Joe Leslie-Hurd wrote:
>> >>
>> >> Hi Robert,
>> >>
>> >> You are using it correctly. The intent of the import facility is to
>> >> extend the current logical context by bringing in a new theory, not to
>> >> change the current logical context. The error that you are redefining
>> >> the T constant is an indication that you are trying to change the
>> >> current logical context.
>> >>
>> >> What is your eventual goal using the OpenTheory importer in HOL Light?
>> >> I assume you have some new theories you want to import that are not
>> >> already in HOL Light.
>> >>
>> >> Cheers,
>> >>
>> >> Joe
>> >>
>> >>
>> >> On Fri, Jun 5, 2015 at 5:44 AM, Robert White
>> >> wrote:
>> >> > Dear Joe,
>> >> >
>> >> > I am wondering if I am using it correctly. I would like to load some
>> >> > thm
>> >> > in
>> >> > and do some proof checking and proof optimisation. However, after
>> >> > loading
>> >> > the hol.ml and then do
>> >> > let all = import_article "../../laholide/opentheory/bool.art";;
>> >> > I get errors saying I am redefining constants. For instance, the
>> >> > bool.art
>> >> > file:
>> >> >
>> >> > # let all = import_article "../../laholide/opentheory/bool.art";;
>> >> > Exception:
>> >> > Failure
>> >> > "in article ../../laholide/opentheory/bool.art at line 89:
>> >> > defineConst\nstack = [Term; \"Data.Bool.T\"; Thm]\nnew_constant:
>> >> > constant T
>> >> > has already been declared".
>> >> >
>> >> > I could solve the problem by either not loading some of the files in
>> >> > HOL, so
>> >> > constants won't be redefined, or try to detect the problems that are
>> >> > defined
>> >> > but going to be redefined the same way. I would you solve the problem
>> >> > for
>> >> > the OpenTheory version of HOL.
>> >> >
>> >> > Thanks
>> >> > Regards,
>> >> > Robert
>> >> >
>> >> >
>> >> > On 5 June 2015 at 08:38, Robert White
>> >> > wrote:
>> >> >>
>> >> >> Thanks Joe!
>> >> >>
>> >> >> I will have to do some more test. I will let you know if I find any
>> >> >> bug.
>> >> >>
>> >> >> Regards,
>> >> >> Robert
>> >> >>
>> >> >> On 5 June 2015 at 04:55, Joe Leslie-Hurd wrote:
>> >> >>>
>> >> >>> Robert and I have updated the HOL Light importer to work with
>> >> >>> version
>> >> >>> 6 articles, which is now available from
>> >> >>>
>> >> >>> http://src.gilith.com/hol-light.html
>> >> >>>
>> >> >>> It is very lightly tested at this point, so it may well be buggy. I
>> >> >>> was able to read in the standard theory library as a version 6
>> >> >>> article, which I generated using the command
>> >> >>>
>> >> >>> opentheory info --article -o base.art base
>> >> >>>
>> >> >>> but I didn't even look closely at the results.
>> >> >>>
>> >> >>> Cheers,
>> >> >>>
>> >> >>> Joe
>> >> >>>
>> >> >>>
>> >> >>> On Wed, Jun 3, 2015 at 2:12 PM, Robert White
>> >> >>> wrote:
>> >> >>> > Thanks for the reply.
>> >> >>> >
>> >> >>> > I would like to give it a try so I choose option 3 for now. I
>> >> >>> > will
>> >> >>> > use
>> >> >>> > option 1 to continue my project alongside.
>> >> >>> >
>> >> >>> > Regards,
>> >> >>> > Robert
>> >> >>> >
>> >> >>> > On 3 June 2015 at 22:46, Joe Leslie-Hurd wrote:
>> >> >>> >>
>> >> >>> >> Hi Robert,
>> >> >>> >>
>> >> >>> >> Unfortunately I have not yet updated the import capability in my
>> >> >>> >> HOL
>> >> >>> >> Light fork to work with version 6 theories. You can either:
>> >> >>> >>
>> >> >>> >> 1. Use the command I showed you before to convert version 6
>> >> >>> >> articles
>> >> >>> >> to version 5 before importing them.
>> >> >>> >> 2. Wait for me to implement this functionality.
>> >> >>> >> 3. Implement it yourself and send me a pull request.
>> >> >>> >>
>> >> >>> >> Please let me know what you decide: it may affect the wait time
>> >> >>> >> in
>> >> >>> >> solution 2 :-)
>> >> >>> >>
>> >> >>> >> Cheers,
>> >> >>> >>
>> >> >>> >> Joe
>> >> >>> >>
>> >> >>> >> On Wed, Jun 3, 2015 at 7:58 AM, Robert White
>> >> >>> >> wrote:
>> >> >>> >> > Dear Joe,
>> >> >>> >> >
>> >> >>> >> > I noticed that I can't using import for the current version
>> >> >>> >> > (version
>> >> >>> >> > 6).
>> >> >>> >> > I
>> >> >>> >> > am using the one from:
>> >> >>> >> >
>> >> >>> >> > git clone http://src.gilith.com/hol-light
>> >> >>> >> >
>> >> >>> >> >
>> >> >>> >> > I wonder if you have implemented it/updated the import.ml
>> >> >>> >> > file,
>> >> >>> >> > so I
>> >> >>> >> > won't
>> >> >>> >> > have to redo your work.
>> >> >>> >> >
>> >> >>> >> >
>> >> >>> >> > Thanks
>> >> >>> >> >
>> >> >>> >> > Robert
>> >> >>> >> >
>> >> >>> >> >
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> > --
>> >> >>> >
>> >> >>> > Regards,
>> >> >>> > Robert White (Shuai Wang)
>> >> >>> > INRIA Deducteam
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >> --
>> >> >>
>> >> >> Regards,
>> >> >> Robert White (Shuai Wang)
>> >> >> INRIA Deducteam
>> >> >> [Moving to ILLC of UvA from this Sep. ]
>> >> >> [New email address will be shuai.wang at student.uva.nl]
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> >
>> >> > Regards,
>> >> > Robert White (Shuai Wang)
>> >> > INRIA Deducteam
>> >> > [Moving to ILLC of UvA from this Sep. ]
>> >> > [New email address will be shuai.wang at student.uva.nl]
>> >> >
>> >
>> >
>> >
>> >
>> > --
>> >
>> > Regards,
>> > Robert White (Shuai Wang)
>> > INRIA Deducteam
>> > [Moving to ILLC of UvA from this Sep. ]
>> > [New email address will be shuai.wang at student.uva.nl]
>> >
>
>
>
>
> --
>
> Regards,
> Robert White (Shuai Wang)
> INRIA Deducteam
> [Moving to ILLC of UvA from this Sep. ]
> [New email address will be shuai.wang at student.uva.nl]
>
From joe at gilith.com Sun Jun 7 06:56:56 2015
From: joe at gilith.com (Joe Leslie-Hurd)
Date: Sat, 6 Jun 2015 23:56:56 -0700
Subject: [opentheory-users] Importing proofs of version 6
In-Reply-To:
References:
Message-ID:
Hi Robert,
It turned out the import code didn't work very well, but I have fixed
it up and it seems to be doing the right thing. For each theory you
import, you have to first extend_the_interpretation so the importer
can give a HOL Light name to the OpenTheory symbols in the article.
Also, a nice feature is that imports build on each other, so you can
import a sequence of theories where assumptions in later theories are
satisfied by theorems in earlier theories.
Below is an example showing how to import theories - each article file
was generated by a command of the form:
opentheory info --article -o natural-prime.art natural-prime
This new import code is all checked in to my HOL Light fork available at
http://src.gilith.com/hol-light.html
Cheers,
Joe
(* ------------------------------------------------------------------------- *)
(* Importing a theory. *)
(* ------------------------------------------------------------------------- *)
extend_the_interpretation
"opentheory/theories/natural-divides/natural-divides.int";;
import_article "natural-divides.art";;
extend_the_interpretation
"opentheory/theories/stream/stream.int";;
import_article "stream.art";;
extend_the_interpretation
"opentheory/theories/natural-prime/natural-prime.int";;
import_article "natural-prime.art";;
On Fri, Jun 5, 2015 at 1:33 PM, Joe Leslie-Hurd wrote:
> OK, that's not good. Let me take a look.
>
> Cheers,
>
> Joe
>
> On Fri, Jun 5, 2015 at 12:59 PM, Robert White
> wrote:
>> :(
>>
>> looks it is not working that way.
>>
>> # import_article "../laholide/opentheory/natural-divides.art";;
>> Exception:
>> Failure
>> "in article ../laholide/opentheory/natural-divides.art at line 159:
>> defineConst\nstack = [Term; \"Number.Natural.divides\"; Var; Var;
>> []]\nunknown constant \"Number.Natural.divides\"".
>> #
>>
>>
>> and when I load other files, say list.art. I get all the thm as None. OHHH
>> :(
>>
>> # import_article "../laholide/opentheory/list.art";;
>> val it :
>> (term list * term) list * (thm option * (term list * term)) option list =
>> ([([], `(!) = (\p. p = (\x. T))`);
>> ([], `(/\) = (\p q. (\f. f p q) = (\f. f T T))`);
>> ([], `!n. EVEN (SUC n) <=> ~EVEN n`);
>> ([], `!n. EVEN (BIT0 (BIT1 _0) * n)`);
>> ([], `!m n. SUC m = SUC n <=> m = n`);
>> ([], `!m n p. m * n = m * p <=> m = _0 \/ n = p`);
>> ([], `!m n. m <= n /\ n <= m <=> m = n`); ([], `BIT0 _0 = _0`);
>> ([], `!n. _0 + n = n`); ([], `!n. BIT0 (SUC n) = SUC (SUC (BIT0 n))`);
>> ([], `!m n. SUC m + n = SUC (m + n)`);
>> ([], `!m n. m + SUC n = SUC (m + n)`);
>> ([], `!p. p _0 /\ (!n. p n ==> p (SUC n)) ==> (!n. p n)`);
>> ([], `!n. BIT1 n = SUC (BIT0 n)`); ([], `!n. _0 <= n`);
>> ([], `!m. m <= _0 <=> m = _0`); ([], `!n. BIT0 (BIT1 _0) * n = n + n`);
>> ([], `!m n. m <= SUC n <=> m = SUC n \/ m <= n`);
>> ([], `!m n. m * n = _0 <=> m = _0 \/ n = _0`); ([], `!n. ~(SUC n =
>> _0)`);
>> ([], `!m n p. m * n <= m * p <=> m = _0 \/ n <= p`);
>> ([], `!m n. SUC m <= n <=> m < n`);
>> ([], `!m n p. m * n < m * p <=> ~(m = _0) /\ n < p`);
>> ([], `!m n. m <= n <=> m < n \/ m = n`);
>> ([], `!m n. EVEN (m * n) <=> EVEN m \/ EVEN n`);
>> ([], `!m n. EVEN (m + n) <=> EVEN m <=> EVEN n`);
>> ([], `!m n. ~(m <= n /\ n < m)`); ([], `!m n. ~(m < n /\ n <= m)`);
>> ([], `!m. m EXP _0 = BIT1 _0`); ([], `!m n. m EXP SUC n = m * m EXP n`);
>> ([], `!m n p. m * n * p = (m * n) * p`);
>> ([], `!m n. m EXP n = _0 <=> m = _0 /\ ~(n = _0)`);
>> ([], `!p m n. m + p = n + p <=> m = n`);
>> ([], `!e f. ?!fn. fn _0 = e /\ (!n. fn (SUC n) = f (fn n) n)`);
>> ([], `!m n. ~(m <= n) <=> n < m`);
>> ([], `!m n. m < n <=> (?d. n = m + SUC d)`); ([], `!m n. m + n = n +
>> m`);
>> ([], `!m. m + _0 = m`); ([], `!m n. SUC m <= SUC n <=> m <= n`);
>> ([], `CARD {} = _0`);
>> ([],
>> `!x s.
>> FINITE s
>> ==> CARD (x INSERT s) = (if x IN s then CARD s else SUC (CARD
>> s))`);
>> ([], `!n. n <= SUC n`); ([], `!n. n <= n`);
>> ([], `!m n p. m <= n /\ n <= p ==> m <= p`);
>> ([], `!m n. (m + n) - m = n`); ([], `!n. n - n = _0`);
>> ([], `!m n. m + n = _0 <=> m = _0 /\ n = _0`); ([], `!m n. m <= m + n`);
>> ([], `!m n. m + n = n <=> m = _0`); ([], `!n. SUC n - BIT1 _0 = n`);
>> ([], `!m. ~(m < _0)`); ([], `!m. m = _0 \/ (?n. m = SUC n)`);
>> ([], `!m n. SUC m < SUC n <=> m < n`); ([], `!n. n < SUC n`);
>> ([], `!p x. p x ==> p ((@) p)`);
>> ([], `!n. {m | m < SUC n} = _0 INSERT {SUC m | m < n}`);
>> ([], `!m n. n <= m + n`); ([], `!n. ~(n < n)`); ([], `!m. m - _0 = m`);
>> ([], `!n. _0 < SUC n`); ([], `!m n. ~(m < n) <=> n <= m`);
>> ([], `!m n. n <= m ==> SUC m - SUC n = m - n`);
>> ([], `!m. SUC m = m + BIT1 _0`); ([], `!m n p. m + n + p = (m + n) +
>> p`);
>> ([], `!m n p. m < n /\ n <= p ==> m < p`);
>> ([], `!m n p. m + n <= m + p <=> n <= p`)],
>> [None; None; None; None; None; None; None; None; None; None; None; None;
>> None; None; None; None; None; None; None; None; None; None; None; None;
>> None; None; None; None; None; None; None; None; None; None; None; None;
>> None; None; None; None; None; None; None; None; None; None; None; None;
>> None; None; None; None; None; None; None; None; None; None; None; None;
>> None; None; None; None; None; None; None; None; None; None; None; None;
>> None; None; None; None; None; None; None; None; None; None; None; None;
>> None; None; None; None; None; None; None; None; None; None; None; None;
>> None; None; None; ...])
>>
>>
>>
>>
>> On 5 June 2015 at 19:14, Joe Leslie-Hurd wrote:
>>>
>>> Hi Robert,
>>>
>>> Perhaps a more realistic case study would be to import a new theory
>>> from the OpenTheory repo:
>>>
>>> http://opentheory.gilith.com/
>>>
>>> For example,
>>>
>>> opentheory install natural-divides
>>> opentheory info --article -o natural-divides.art natural-divides
>>>
>>> and then import this article file?
>>>
>>> Cheers,
>>>
>>> Joe
>>>
>>> On Fri, Jun 5, 2015 at 10:04 AM, Robert White
>>> wrote:
>>> > Hi Joe,
>>> >
>>> > At the moment I am only trying to load the old proofs. but if I don't
>>> > change
>>> > the hol.ml file there will be conflict then. So seems the only solution
>>> > is
>>> > that I completely comment out the rest of the files loaded in hol.ml if
>>> > so?
>>> >
>>> > No, I don't have new theories so far.
>>> > Regards,
>>> > Robert
>>> >
>>> > On 5 June 2015 at 19:00, Joe Leslie-Hurd wrote:
>>> >>
>>> >> Hi Robert,
>>> >>
>>> >> You are using it correctly. The intent of the import facility is to
>>> >> extend the current logical context by bringing in a new theory, not to
>>> >> change the current logical context. The error that you are redefining
>>> >> the T constant is an indication that you are trying to change the
>>> >> current logical context.
>>> >>
>>> >> What is your eventual goal using the OpenTheory importer in HOL Light?
>>> >> I assume you have some new theories you want to import that are not
>>> >> already in HOL Light.
>>> >>
>>> >> Cheers,
>>> >>
>>> >> Joe
>>> >>
>>> >>
>>> >> On Fri, Jun 5, 2015 at 5:44 AM, Robert White
>>> >> wrote:
>>> >> > Dear Joe,
>>> >> >
>>> >> > I am wondering if I am using it correctly. I would like to load some
>>> >> > thm
>>> >> > in
>>> >> > and do some proof checking and proof optimisation. However, after
>>> >> > loading
>>> >> > the hol.ml and then do
>>> >> > let all = import_article "../../laholide/opentheory/bool.art";;
>>> >> > I get errors saying I am redefining constants. For instance, the
>>> >> > bool.art
>>> >> > file:
>>> >> >
>>> >> > # let all = import_article "../../laholide/opentheory/bool.art";;
>>> >> > Exception:
>>> >> > Failure
>>> >> > "in article ../../laholide/opentheory/bool.art at line 89:
>>> >> > defineConst\nstack = [Term; \"Data.Bool.T\"; Thm]\nnew_constant:
>>> >> > constant T
>>> >> > has already been declared".
>>> >> >
>>> >> > I could solve the problem by either not loading some of the files in
>>> >> > HOL, so
>>> >> > constants won't be redefined, or try to detect the problems that are
>>> >> > defined
>>> >> > but going to be redefined the same way. I would you solve the problem
>>> >> > for
>>> >> > the OpenTheory version of HOL.
>>> >> >
>>> >> > Thanks
>>> >> > Regards,
>>> >> > Robert
>>> >> >
>>> >> >
>>> >> > On 5 June 2015 at 08:38, Robert White
>>> >> > wrote:
>>> >> >>
>>> >> >> Thanks Joe!
>>> >> >>
>>> >> >> I will have to do some more test. I will let you know if I find any
>>> >> >> bug.
>>> >> >>
>>> >> >> Regards,
>>> >> >> Robert
>>> >> >>
>>> >> >> On 5 June 2015 at 04:55, Joe Leslie-Hurd wrote:
>>> >> >>>
>>> >> >>> Robert and I have updated the HOL Light importer to work with
>>> >> >>> version
>>> >> >>> 6 articles, which is now available from
>>> >> >>>
>>> >> >>> http://src.gilith.com/hol-light.html
>>> >> >>>
>>> >> >>> It is very lightly tested at this point, so it may well be buggy. I
>>> >> >>> was able to read in the standard theory library as a version 6
>>> >> >>> article, which I generated using the command
>>> >> >>>
>>> >> >>> opentheory info --article -o base.art base
>>> >> >>>
>>> >> >>> but I didn't even look closely at the results.
>>> >> >>>
>>> >> >>> Cheers,
>>> >> >>>
>>> >> >>> Joe
>>> >> >>>
>>> >> >>>
>>> >> >>> On Wed, Jun 3, 2015 at 2:12 PM, Robert White
>>> >> >>> wrote:
>>> >> >>> > Thanks for the reply.
>>> >> >>> >
>>> >> >>> > I would like to give it a try so I choose option 3 for now. I
>>> >> >>> > will
>>> >> >>> > use
>>> >> >>> > option 1 to continue my project alongside.
>>> >> >>> >
>>> >> >>> > Regards,
>>> >> >>> > Robert
>>> >> >>> >
>>> >> >>> > On 3 June 2015 at 22:46, Joe Leslie-Hurd wrote:
>>> >> >>> >>
>>> >> >>> >> Hi Robert,
>>> >> >>> >>
>>> >> >>> >> Unfortunately I have not yet updated the import capability in my
>>> >> >>> >> HOL
>>> >> >>> >> Light fork to work with version 6 theories. You can either:
>>> >> >>> >>
>>> >> >>> >> 1. Use the command I showed you before to convert version 6
>>> >> >>> >> articles
>>> >> >>> >> to version 5 before importing them.
>>> >> >>> >> 2. Wait for me to implement this functionality.
>>> >> >>> >> 3. Implement it yourself and send me a pull request.
>>> >> >>> >>
>>> >> >>> >> Please let me know what you decide: it may affect the wait time
>>> >> >>> >> in
>>> >> >>> >> solution 2 :-)
>>> >> >>> >>
>>> >> >>> >> Cheers,
>>> >> >>> >>
>>> >> >>> >> Joe
>>> >> >>> >>
>>> >> >>> >> On Wed, Jun 3, 2015 at 7:58 AM, Robert White
>>> >> >>> >> wrote:
>>> >> >>> >> > Dear Joe,
>>> >> >>> >> >
>>> >> >>> >> > I noticed that I can't using import for the current version
>>> >> >>> >> > (version
>>> >> >>> >> > 6).
>>> >> >>> >> > I
>>> >> >>> >> > am using the one from:
>>> >> >>> >> >
>>> >> >>> >> > git clone http://src.gilith.com/hol-light
>>> >> >>> >> >
>>> >> >>> >> >
>>> >> >>> >> > I wonder if you have implemented it/updated the import.ml
>>> >> >>> >> > file,
>>> >> >>> >> > so I
>>> >> >>> >> > won't
>>> >> >>> >> > have to redo your work.
>>> >> >>> >> >
>>> >> >>> >> >
>>> >> >>> >> > Thanks
>>> >> >>> >> >
>>> >> >>> >> > Robert
>>> >> >>> >> >
>>> >> >>> >> >
>>> >> >>> >
>>> >> >>> >
>>> >> >>> >
>>> >> >>> >
>>> >> >>> > --
>>> >> >>> >
>>> >> >>> > Regards,
>>> >> >>> > Robert White (Shuai Wang)
>>> >> >>> > INRIA Deducteam
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >> --
>>> >> >>
>>> >> >> Regards,
>>> >> >> Robert White (Shuai Wang)
>>> >> >> INRIA Deducteam
>>> >> >> [Moving to ILLC of UvA from this Sep. ]
>>> >> >> [New email address will be shuai.wang at student.uva.nl]
>>> >> >>
>>> >> >
>>> >> >
>>> >> >
>>> >> > --
>>> >> >
>>> >> > Regards,
>>> >> > Robert White (Shuai Wang)
>>> >> > INRIA Deducteam
>>> >> > [Moving to ILLC of UvA from this Sep. ]
>>> >> > [New email address will be shuai.wang at student.uva.nl]
>>> >> >
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> >
>>> > Regards,
>>> > Robert White (Shuai Wang)
>>> > INRIA Deducteam
>>> > [Moving to ILLC of UvA from this Sep. ]
>>> > [New email address will be shuai.wang at student.uva.nl]
>>> >
>>
>>
>>
>>
>> --
>>
>> Regards,
>> Robert White (Shuai Wang)
>> INRIA Deducteam
>> [Moving to ILLC of UvA from this Sep. ]
>> [New email address will be shuai.wang at student.uva.nl]
>>
From ai.robert.wangshuai at gmail.com Sun Jun 7 10:56:15 2015
From: ai.robert.wangshuai at gmail.com (Robert White)
Date: Sun, 7 Jun 2015 12:56:15 +0200
Subject: [opentheory-users] Importing proofs of version 6
In-Reply-To:
References:
Message-ID:
Ok, I will try now.
Thanks a lot.
Regards,
Robert
On 7 June 2015 at 08:56, Joe Leslie-Hurd wrote:
> Hi Robert,
>
> It turned out the import code didn't work very well, but I have fixed
> it up and it seems to be doing the right thing. For each theory you
> import, you have to first extend_the_interpretation so the importer
> can give a HOL Light name to the OpenTheory symbols in the article.
>
> Also, a nice feature is that imports build on each other, so you can
> import a sequence of theories where assumptions in later theories are
> satisfied by theorems in earlier theories.
>
> Below is an example showing how to import theories - each article file
> was generated by a command of the form:
>
> opentheory info --article -o natural-prime.art natural-prime
>
> This new import code is all checked in to my HOL Light fork available at
>
> http://src.gilith.com/hol-light.html
>
> Cheers,
>
> Joe
>
>
> (*
> ------------------------------------------------------------------------- *)
> (* Importing a theory.
> *)
> (*
> ------------------------------------------------------------------------- *)
>
> extend_the_interpretation
> "opentheory/theories/natural-divides/natural-divides.int";;
> import_article "natural-divides.art";;
>
> extend_the_interpretation
> "opentheory/theories/stream/stream.int";;
> import_article "stream.art";;
>
> extend_the_interpretation
> "opentheory/theories/natural-prime/natural-prime.int";;
> import_article "natural-prime.art";;
>
> On Fri, Jun 5, 2015 at 1:33 PM, Joe Leslie-Hurd wrote:
> > OK, that's not good. Let me take a look.
> >
> > Cheers,
> >
> > Joe
> >
> > On Fri, Jun 5, 2015 at 12:59 PM, Robert White
> > wrote:
> >> :(
> >>
> >> looks it is not working that way.
> >>
> >> # import_article "../laholide/opentheory/natural-divides.art";;
> >> Exception:
> >> Failure
> >> "in article ../laholide/opentheory/natural-divides.art at line 159:
> >> defineConst\nstack = [Term; \"Number.Natural.divides\"; Var; Var;
> >> []]\nunknown constant \"Number.Natural.divides\"".
> >> #
> >>
> >>
> >> and when I load other files, say list.art. I get all the thm as None.
> OHHH
> >> :(
> >>
> >> # import_article "../laholide/opentheory/list.art";;
> >> val it :
> >> (term list * term) list * (thm option * (term list * term)) option
> list =
> >> ([([], `(!) = (\p. p = (\x. T))`);
> >> ([], `(/\) = (\p q. (\f. f p q) = (\f. f T T))`);
> >> ([], `!n. EVEN (SUC n) <=> ~EVEN n`);
> >> ([], `!n. EVEN (BIT0 (BIT1 _0) * n)`);
> >> ([], `!m n. SUC m = SUC n <=> m = n`);
> >> ([], `!m n p. m * n = m * p <=> m = _0 \/ n = p`);
> >> ([], `!m n. m <= n /\ n <= m <=> m = n`); ([], `BIT0 _0 = _0`);
> >> ([], `!n. _0 + n = n`); ([], `!n. BIT0 (SUC n) = SUC (SUC (BIT0
> n))`);
> >> ([], `!m n. SUC m + n = SUC (m + n)`);
> >> ([], `!m n. m + SUC n = SUC (m + n)`);
> >> ([], `!p. p _0 /\ (!n. p n ==> p (SUC n)) ==> (!n. p n)`);
> >> ([], `!n. BIT1 n = SUC (BIT0 n)`); ([], `!n. _0 <= n`);
> >> ([], `!m. m <= _0 <=> m = _0`); ([], `!n. BIT0 (BIT1 _0) * n = n +
> n`);
> >> ([], `!m n. m <= SUC n <=> m = SUC n \/ m <= n`);
> >> ([], `!m n. m * n = _0 <=> m = _0 \/ n = _0`); ([], `!n. ~(SUC n =
> >> _0)`);
> >> ([], `!m n p. m * n <= m * p <=> m = _0 \/ n <= p`);
> >> ([], `!m n. SUC m <= n <=> m < n`);
> >> ([], `!m n p. m * n < m * p <=> ~(m = _0) /\ n < p`);
> >> ([], `!m n. m <= n <=> m < n \/ m = n`);
> >> ([], `!m n. EVEN (m * n) <=> EVEN m \/ EVEN n`);
> >> ([], `!m n. EVEN (m + n) <=> EVEN m <=> EVEN n`);
> >> ([], `!m n. ~(m <= n /\ n < m)`); ([], `!m n. ~(m < n /\ n <= m)`);
> >> ([], `!m. m EXP _0 = BIT1 _0`); ([], `!m n. m EXP SUC n = m * m EXP
> n`);
> >> ([], `!m n p. m * n * p = (m * n) * p`);
> >> ([], `!m n. m EXP n = _0 <=> m = _0 /\ ~(n = _0)`);
> >> ([], `!p m n. m + p = n + p <=> m = n`);
> >> ([], `!e f. ?!fn. fn _0 = e /\ (!n. fn (SUC n) = f (fn n) n)`);
> >> ([], `!m n. ~(m <= n) <=> n < m`);
> >> ([], `!m n. m < n <=> (?d. n = m + SUC d)`); ([], `!m n. m + n = n +
> >> m`);
> >> ([], `!m. m + _0 = m`); ([], `!m n. SUC m <= SUC n <=> m <= n`);
> >> ([], `CARD {} = _0`);
> >> ([],
> >> `!x s.
> >> FINITE s
> >> ==> CARD (x INSERT s) = (if x IN s then CARD s else SUC (CARD
> >> s))`);
> >> ([], `!n. n <= SUC n`); ([], `!n. n <= n`);
> >> ([], `!m n p. m <= n /\ n <= p ==> m <= p`);
> >> ([], `!m n. (m + n) - m = n`); ([], `!n. n - n = _0`);
> >> ([], `!m n. m + n = _0 <=> m = _0 /\ n = _0`); ([], `!m n. m <= m +
> n`);
> >> ([], `!m n. m + n = n <=> m = _0`); ([], `!n. SUC n - BIT1 _0 = n`);
> >> ([], `!m. ~(m < _0)`); ([], `!m. m = _0 \/ (?n. m = SUC n)`);
> >> ([], `!m n. SUC m < SUC n <=> m < n`); ([], `!n. n < SUC n`);
> >> ([], `!p x. p x ==> p ((@) p)`);
> >> ([], `!n. {m | m < SUC n} = _0 INSERT {SUC m | m < n}`);
> >> ([], `!m n. n <= m + n`); ([], `!n. ~(n < n)`); ([], `!m. m - _0 =
> m`);
> >> ([], `!n. _0 < SUC n`); ([], `!m n. ~(m < n) <=> n <= m`);
> >> ([], `!m n. n <= m ==> SUC m - SUC n = m - n`);
> >> ([], `!m. SUC m = m + BIT1 _0`); ([], `!m n p. m + n + p = (m + n) +
> >> p`);
> >> ([], `!m n p. m < n /\ n <= p ==> m < p`);
> >> ([], `!m n p. m + n <= m + p <=> n <= p`)],
> >> [None; None; None; None; None; None; None; None; None; None; None;
> None;
> >> None; None; None; None; None; None; None; None; None; None; None;
> None;
> >> None; None; None; None; None; None; None; None; None; None; None;
> None;
> >> None; None; None; None; None; None; None; None; None; None; None;
> None;
> >> None; None; None; None; None; None; None; None; None; None; None;
> None;
> >> None; None; None; None; None; None; None; None; None; None; None;
> None;
> >> None; None; None; None; None; None; None; None; None; None; None;
> None;
> >> None; None; None; None; None; None; None; None; None; None; None;
> None;
> >> None; None; None; ...])
> >>
> >>
> >>
> >>
> >> On 5 June 2015 at 19:14, Joe Leslie-Hurd wrote:
> >>>
> >>> Hi Robert,
> >>>
> >>> Perhaps a more realistic case study would be to import a new theory
> >>> from the OpenTheory repo:
> >>>
> >>> http://opentheory.gilith.com/
> >>>
> >>> For example,
> >>>
> >>> opentheory install natural-divides
> >>> opentheory info --article -o natural-divides.art natural-divides
> >>>
> >>> and then import this article file?
> >>>
> >>> Cheers,
> >>>
> >>> Joe
> >>>
> >>> On Fri, Jun 5, 2015 at 10:04 AM, Robert White
> >>> wrote:
> >>> > Hi Joe,
> >>> >
> >>> > At the moment I am only trying to load the old proofs. but if I don't
> >>> > change
> >>> > the hol.ml file there will be conflict then. So seems the only
> solution
> >>> > is
> >>> > that I completely comment out the rest of the files loaded in hol.ml
> if
> >>> > so?
> >>> >
> >>> > No, I don't have new theories so far.
> >>> > Regards,
> >>> > Robert
> >>> >
> >>> > On 5 June 2015 at 19:00, Joe Leslie-Hurd wrote:
> >>> >>
> >>> >> Hi Robert,
> >>> >>
> >>> >> You are using it correctly. The intent of the import facility is to
> >>> >> extend the current logical context by bringing in a new theory, not
> to
> >>> >> change the current logical context. The error that you are
> redefining
> >>> >> the T constant is an indication that you are trying to change the
> >>> >> current logical context.
> >>> >>
> >>> >> What is your eventual goal using the OpenTheory importer in HOL
> Light?
> >>> >> I assume you have some new theories you want to import that are not
> >>> >> already in HOL Light.
> >>> >>
> >>> >> Cheers,
> >>> >>
> >>> >> Joe
> >>> >>
> >>> >>
> >>> >> On Fri, Jun 5, 2015 at 5:44 AM, Robert White
> >>> >> wrote:
> >>> >> > Dear Joe,
> >>> >> >
> >>> >> > I am wondering if I am using it correctly. I would like to load
> some
> >>> >> > thm
> >>> >> > in
> >>> >> > and do some proof checking and proof optimisation. However, after
> >>> >> > loading
> >>> >> > the hol.ml and then do
> >>> >> > let all = import_article "../../laholide/opentheory/bool.art";;
> >>> >> > I get errors saying I am redefining constants. For instance, the
> >>> >> > bool.art
> >>> >> > file:
> >>> >> >
> >>> >> > # let all = import_article "../../laholide/opentheory/bool.art";;
> >>> >> > Exception:
> >>> >> > Failure
> >>> >> > "in article ../../laholide/opentheory/bool.art at line 89:
> >>> >> > defineConst\nstack = [Term; \"Data.Bool.T\"; Thm]\nnew_constant:
> >>> >> > constant T
> >>> >> > has already been declared".
> >>> >> >
> >>> >> > I could solve the problem by either not loading some of the files
> in
> >>> >> > HOL, so
> >>> >> > constants won't be redefined, or try to detect the problems that
> are
> >>> >> > defined
> >>> >> > but going to be redefined the same way. I would you solve the
> problem
> >>> >> > for
> >>> >> > the OpenTheory version of HOL.
> >>> >> >
> >>> >> > Thanks
> >>> >> > Regards,
> >>> >> > Robert
> >>> >> >
> >>> >> >
> >>> >> > On 5 June 2015 at 08:38, Robert White <
> ai.robert.wangshuai at gmail.com>
> >>> >> > wrote:
> >>> >> >>
> >>> >> >> Thanks Joe!
> >>> >> >>
> >>> >> >> I will have to do some more test. I will let you know if I find
> any
> >>> >> >> bug.
> >>> >> >>
> >>> >> >> Regards,
> >>> >> >> Robert
> >>> >> >>
> >>> >> >> On 5 June 2015 at 04:55, Joe Leslie-Hurd wrote:
> >>> >> >>>
> >>> >> >>> Robert and I have updated the HOL Light importer to work with
> >>> >> >>> version
> >>> >> >>> 6 articles, which is now available from
> >>> >> >>>
> >>> >> >>> http://src.gilith.com/hol-light.html
> >>> >> >>>
> >>> >> >>> It is very lightly tested at this point, so it may well be
> buggy. I
> >>> >> >>> was able to read in the standard theory library as a version 6
> >>> >> >>> article, which I generated using the command
> >>> >> >>>
> >>> >> >>> opentheory info --article -o base.art base
> >>> >> >>>
> >>> >> >>> but I didn't even look closely at the results.
> >>> >> >>>
> >>> >> >>> Cheers,
> >>> >> >>>
> >>> >> >>> Joe
> >>> >> >>>
> >>> >> >>>
> >>> >> >>> On Wed, Jun 3, 2015 at 2:12 PM, Robert White
> >>> >> >>> wrote:
> >>> >> >>> > Thanks for the reply.
> >>> >> >>> >
> >>> >> >>> > I would like to give it a try so I choose option 3 for now. I
> >>> >> >>> > will
> >>> >> >>> > use
> >>> >> >>> > option 1 to continue my project alongside.
> >>> >> >>> >
> >>> >> >>> > Regards,
> >>> >> >>> > Robert
> >>> >> >>> >
> >>> >> >>> > On 3 June 2015 at 22:46, Joe Leslie-Hurd
> wrote:
> >>> >> >>> >>
> >>> >> >>> >> Hi Robert,
> >>> >> >>> >>
> >>> >> >>> >> Unfortunately I have not yet updated the import capability
> in my
> >>> >> >>> >> HOL
> >>> >> >>> >> Light fork to work with version 6 theories. You can either:
> >>> >> >>> >>
> >>> >> >>> >> 1. Use the command I showed you before to convert version 6
> >>> >> >>> >> articles
> >>> >> >>> >> to version 5 before importing them.
> >>> >> >>> >> 2. Wait for me to implement this functionality.
> >>> >> >>> >> 3. Implement it yourself and send me a pull request.
> >>> >> >>> >>
> >>> >> >>> >> Please let me know what you decide: it may affect the wait
> time
> >>> >> >>> >> in
> >>> >> >>> >> solution 2 :-)
> >>> >> >>> >>
> >>> >> >>> >> Cheers,
> >>> >> >>> >>
> >>> >> >>> >> Joe
> >>> >> >>> >>
> >>> >> >>> >> On Wed, Jun 3, 2015 at 7:58 AM, Robert White
> >>> >> >>> >> wrote:
> >>> >> >>> >> > Dear Joe,
> >>> >> >>> >> >
> >>> >> >>> >> > I noticed that I can't using import for the current version
> >>> >> >>> >> > (version
> >>> >> >>> >> > 6).
> >>> >> >>> >> > I
> >>> >> >>> >> > am using the one from:
> >>> >> >>> >> >
> >>> >> >>> >> > git clone http://src.gilith.com/hol-light
> >>> >> >>> >> >
> >>> >> >>> >> >
> >>> >> >>> >> > I wonder if you have implemented it/updated the import.ml
> >>> >> >>> >> > file,
> >>> >> >>> >> > so I
> >>> >> >>> >> > won't
> >>> >> >>> >> > have to redo your work.
> >>> >> >>> >> >
> >>> >> >>> >> >
> >>> >> >>> >> > Thanks
> >>> >> >>> >> >
> >>> >> >>> >> > Robert
> >>> >> >>> >> >
> >>> >> >>> >> >
> >>> >> >>> >
> >>> >> >>> >
> >>> >> >>> >
> >>> >> >>> >
> >>> >> >>> > --
> >>> >> >>> >
> >>> >> >>> > Regards,
> >>> >> >>> > Robert White (Shuai Wang)
> >>> >> >>> > INRIA Deducteam
> >>> >> >>
> >>> >> >>
> >>> >> >>
> >>> >> >>
> >>> >> >> --
> >>> >> >>
> >>> >> >> Regards,
> >>> >> >> Robert White (Shuai Wang)
> >>> >> >> INRIA Deducteam
> >>> >> >> [Moving to ILLC of UvA from this Sep. ]
> >>> >> >> [New email address will be shuai.wang at student.uva.nl]
> >>> >> >>
> >>> >> >
> >>> >> >
> >>> >> >
> >>> >> > --
> >>> >> >
> >>> >> > Regards,
> >>> >> > Robert White (Shuai Wang)
> >>> >> > INRIA Deducteam
> >>> >> > [Moving to ILLC of UvA from this Sep. ]
> >>> >> > [New email address will be shuai.wang at student.uva.nl]
> >>> >> >
> >>> >
> >>> >
> >>> >
> >>> >
> >>> > --
> >>> >
> >>> > Regards,
> >>> > Robert White (Shuai Wang)
> >>> > INRIA Deducteam
> >>> > [Moving to ILLC of UvA from this Sep. ]
> >>> > [New email address will be shuai.wang at student.uva.nl]
> >>> >
> >>
> >>
> >>
> >>
> >> --
> >>
> >> Regards,
> >> Robert White (Shuai Wang)
> >> INRIA Deducteam
> >> [Moving to ILLC of UvA from this Sep. ]
> >> [New email address will be shuai.wang at student.uva.nl]
> >>
>
--
Regards,
Robert White (Shuai Wang)
INRIA Deducteam
[Moving to ILLC of UvA from this Sep. ]
[New email address will be shuai.wang at student.uva.nl]
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From ai.robert.wangshuai at gmail.com Mon Jun 8 09:44:09 2015
From: ai.robert.wangshuai at gmail.com (Robert White)
Date: Mon, 8 Jun 2015 11:44:09 +0200
Subject: [opentheory-users] Question about Lazy-list
Message-ID:
Dear Joe and Ramana,
I used the new Holide and dedukti for proof checking of the whole
Opentheory repos. There is one good news and one bad news.
The good news is:
I have checked through the whole library of the rest apart from lazy-list
without problems. They all passed the checking.
The bad news is:
lazy-list didn't pass the check.
--------this is the error line by Dedukti --------------------------------
Processing file 'dedukti/lazy-list.dk'...
ERROR line:106697 column:149 Cannot find symbol 'lazy_2Dlist.A'.
I searched online and found there isn't sub-packages for me to check
individually. I wonder if this one is just as a big whole file or maybe I
can somehow unpack it to different files and check through each
individually.
Thanks!
--
Regards,
Robert White (Shuai Wang)
INRIA Deducteam
[Moving to ILLC of UvA from this Sep. ]
[New email address will be shuai.wang at student.uva.nl]
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From ai.robert.wangshuai at gmail.com Mon Jun 8 11:34:05 2015
From: ai.robert.wangshuai at gmail.com (Robert White)
Date: Mon, 8 Jun 2015 13:34:05 +0200
Subject: [opentheory-users] Error in importing
Message-ID:
Dear Joe,
Hello. I have the following errors:
# extend_the_interpretation "opentheory/theories/list/list.int";;
val it : unit = ()
# let all= import_article "opentheory/articles/list.art";;
Exception:
Failure
"in article opentheory/articles/list.art at line 467: defineConst\nstack =
[Term; \"HOLLight.NUMSUM\"; Term; Term; Term; Var; Term; Var; Term; Var;
Term; Var; [[\"HOLLight.NUMLEFT\"; Var]]; Term; Var; Var; Var; Var;
\"HOLLight.INJP\"; \"HOLLight.ZBOT\"; Term; Term; Term; Var; Term; Term;
Var; Term; Var; \"HOLLight.ZRECSPACE\"; [\"A\"]; \"HOLLight._dest_rec\";
\"HOLLight._mk_rec\"; \"HOLLight.recspace\"; \"a1\"; Var; [\"A\"];
\"HOLLight._dest_list\"; \"HOLLight._mk_list\"; \"Data.List.list\";
TypeOp; \"NULL\"; \"Data.List.null\"; Var; []; Thm]\nnew_constant:
constant NUMSUM has already been declared".
# let all= import_article "opentheory/articles/sum.art";;
Exception:
Failure
"in article opentheory/articles/sum.art at line 499: defineConst\nstack =
[Term; \"HOLLight.NUMSUM\"; Term; Term; Term; Var; Term; Var; Term; Var;
Term; Var; [[\"HOLLight.NUMLEFT\"; Var]]; Term; Var; Var; Var; Var;
\"HOLLight.INJP\"; \"HOLLight.ZBOT\"; Term; Term; Term; Var; Term; Term;
Var; Term; Var; \"HOLLight.ZRECSPACE\"; [\"A\"]; \"HOLLight._dest_rec\";
\"HOLLight._mk_rec\"; \"HOLLight.recspace\"; Type; TypeOp; \"_15483\";
Var; Var; \"HOLLight.CONSTR\"; Var; [\"A\"; \"B\"]; \"HOLLight._dest_sum\";
\"HOLLight._mk_sum\"; \"Data.Sum.+\"; TypeOp; \"ISL\";
\"Data.Sum.isLeft\"; Var; []; Var; Thm; Thm]\nnew_constant: constant NUMSUM
has already been declared".
# extend_the_interpretation "opentheory/theories/bool/bool.int";;
Exception:
Sys_error "opentheory/theories/bool/bool.int: No such file or directory".
# extend_the_interpretation "opentheory/theories/bool/bool.int";;
Exception:
Sys_error "opentheory/theories/bool/bool.int: No such file or directory".
# let all= import_article "opentheory/articles/bool.art";;
Exception:
Failure
"in article opentheory/articles/bool.art at line 89: defineConst\nstack =
[Term; \"Data.Bool.T\"; Thm]\nnew_constant: constant T has already been
declared".
# let all= import_article "opentheory/articles/real.art";;
Exception:
Failure
"in article opentheory/articles/real.art at line 283: defineConst\nstack =
[Term; \"HOLLight.is_nadd\"; [[]; [[Var; Term]]]; [[]; [[Var; Term]]]; [];
\"HOLLight.dest_nadd\"; \"HOLLight.mk_nadd\"; \"HOLLight.nadd\";
TypeOp; \"s\"; []; \"HOLLight.dest_hreal\"; \"HOLLight.mk_hreal\";
\"HOLLight.hreal\"; TypeOp; TypeOp; TypeOp;
Const]\nnew_constant: constant is_nadd has already been declared".
# let all= import_article "opentheory/articles/option.art";;
Exception:
Failure
"in article opentheory/articles/option.art at line 478: defineConst\nstack
= [Term; \"HOLLight.NUMSUM\"; Term; Term; Term; Var; Term; Var; Term; Var;
Term; Var; [[\"HOLLight.NUMLEFT\"; Var]]; Term; Var; Var; Var; Var;
\"HOLLight.INJP\"; \"HOLLight.ZBOT\"; Term; Term; Term; Var; Term; Term;
Var; Term; Var; \"HOLLight.ZRECSPACE\"; [\"A\"]; \"HOLLight._dest_rec\";
\"HOLLight._mk_rec\"; \"HOLLight.recspace\"; Type; TypeOp; \"_15483\";
Var; Var; \"HOLLight.CONSTR\"; Var; [\"A\"]; \"HOLLight._dest_option\";
\"HOLLight._mk_option\"; \"Data.Option.option\"; TypeOp; \"is_none\";
\"Data.Option.isNone\"; Var; []; Thm]\nnew_constant: constant NUMSUM has
already been declared".
So far I have only the three ones you showed in previous email working. :
"natural-divides.art", "stream.art" and "natural-prime.art"
I wonder how I should load the rest.
Thanks a lot.
--
Regards,
Robert White (Shuai Wang)
INRIA Deducteam
[Moving to ILLC of UvA from this Sep. ]
[New email address will be shuai.wang at student.uva.nl]
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From joe at gilith.com Mon Jun 8 15:27:39 2015
From: joe at gilith.com (Joe Leslie-Hurd)
Date: Mon, 8 Jun 2015 08:27:39 -0700
Subject: [opentheory-users] Error in importing
In-Reply-To:
References:
Message-ID:
Hi Robert,
The theories that are causing you errors are part of the standard
theory library:
$ opentheory list 'Includes base'
bool-1.36
function-1.55
list-1.103
natural-1.104
option-1.72
pair-1.27
real-1.61
relation-1.60
set-1.71
sum-1.61
unit-1.20
Since HOL Light already implements the standard theory library, trying
to reload it will generate errors about defining symbols, as you have
experienced.
My advice is to focus on theories that are not part of the standard
theory library, the easiest to obtain being those on the OpenTheory
repo:
http://opentheory.gilith.com/packages/
Cheers,
Joe
On Mon, Jun 8, 2015 at 4:34 AM, Robert White
wrote:
> Dear Joe,
>
> Hello. I have the following errors:
>
> # extend_the_interpretation "opentheory/theories/list/list.int";;
> val it : unit = ()
> # let all= import_article "opentheory/articles/list.art";;
> Exception:
> Failure
> "in article opentheory/articles/list.art at line 467: defineConst\nstack =
> [Term; \"HOLLight.NUMSUM\"; Term; Term; Term; Var; Term; Var; Term; Var;
> Term; Var; [[\"HOLLight.NUMLEFT\"; Var]]; Term; Var; Var; Var; Var;
> \"HOLLight.INJP\"; \"HOLLight.ZBOT\"; Term; Term; Term; Var; Term; Term;
> Var; Term; Var; \"HOLLight.ZRECSPACE\"; [\"A\"]; \"HOLLight._dest_rec\";
> \"HOLLight._mk_rec\"; \"HOLLight.recspace\"; \"a1\"; Var; [\"A\"];
> \"HOLLight._dest_list\"; \"HOLLight._mk_list\"; \"Data.List.list\";
> TypeOp