[opentheory-users] opentheory tool implementing eqMp incorrectly
Ramana Kumar
ramana.kumar at gmail.com
Thu Sep 15 22:06:17 UTC 2011
On Wed, Sep 14, 2011 at 11:14 PM, Joe Hurd <joe at gilith.com> wrote:
> Hi Ramana,
>
> I added some more debugging information to the opentheory tool, so
> running it on your example article now produces the output below. The
> most important lines are the last ones:
>
> different constants:
> combinatoryLogicExample.cl.rep
> vs combinatoryLogicExample.cl.rep
> different constant provenances: defined vs undefined
>
> What may have caused this situation is that one of these constants is
> the result of a type definition, but the other has been created using
> a "const" command (which results in an "undefined" constant). If this
> is indeed the cause of your problem the way to solve it is to save
> into the dictionary the constants that appear on the stack as a result
> of definition commands, and consistently use these versions throughout
> the article.
Yes, you were right about this - thanks.
I find it mildly disturbing that constants aren't determined solely by
their names.
I've updated my article at http://cam.xrchz.net/cl.art.gz
Try reading it, if you want, and tell me what should be improved...
I got some warnings from the opentheory tool.
Also the tool is really slow! (I compiled with mosml though and maybe
should try mlton.)
A next step for me would be to upload my (locally installed) package
somewhere - the infrastructure is in place for that I presume..?
>
> Cheers,
>
> Joe
>
> _______________________________________________
>
> FATAL ERROR: opentheory failed:
> in Article.fromTextFile:
> error in file "-" around line 23288:
> eqMp
> 2767
> def
> while executing eqMp command:
> stack =
> [|- (let a0' <- r in
> !'cl'.
> (!a0'.
> a0' =
> HOL4.Datatype.CONSTR Number.Numeral.zero arb
> (\n. HOL4.Datatype.BOTTOM) \/
> a0' =
> HOL4.Datatype.CONSTR (Number.Natural.suc Number.Numeral.zero)
> arb (\n. HOL4.Datatype.BOTTOM) \/
> (?a0 a1.
> a0' =
> (let a0 <- a0 in
> \a1.
> HOL4.Datatype.CONSTR
> (Number.Natural.suc
> (Number.Natural.suc Number.Numeral.zero)) arb
> (HOL4.Datatype.FCONS a0
> (HOL4.Datatype.FCONS a1
> (\n. HOL4.Datatype.BOTTOM)))) a1 /\ 'cl' a0 /\
> 'cl' a1) ==> 'cl' a0') ==> 'cl' a0') <=>
> combinatoryLogicExample.cl.rep (combinatoryLogicExample.cl.abs r) =
> r,
> |- ((let a0' <- r in
> !'cl'.
> (!a0'.
> a0' =
> HOL4.Datatype.CONSTR Number.Numeral.zero arb
> (\n. HOL4.Datatype.BOTTOM) \/
> a0' =
> HOL4.Datatype.CONSTR
> (Number.Natural.suc Number.Numeral.zero) arb
> (\n. HOL4.Datatype.BOTTOM) \/
> (?a0 a1.
> a0' =
> (let a0 <- a0 in
> \a1.
> HOL4.Datatype.CONSTR
> (Number.Natural.suc
> (Number.Natural.suc Number.Numeral.zero)) arb
> (HOL4.Datatype.FCONS a0
> (HOL4.Datatype.FCONS a1
> (\n. HOL4.Datatype.BOTTOM)))) a1 /\ 'cl' a0 /\
> 'cl' a1) ==> 'cl' a0') ==> 'cl' a0') <=>
> combinatoryLogicExample.cl.rep
> (combinatoryLogicExample.cl.abs r) = r) <=>
> ((let a0' <- r in
> !'cl'.
> (!a0'.
> a0' =
> HOL4.Datatype.CONSTR Number.Numeral.zero arb
> (\n. HOL4.Datatype.BOTTOM) \/
> a0' =
> HOL4.Datatype.CONSTR
> (Number.Natural.suc Number.Numeral.zero) arb
> (\n. HOL4.Datatype.BOTTOM) \/
> (?a0 a1.
> a0' =
> (let a0 <- a0 in
> \a1.
> HOL4.Datatype.CONSTR
> (Number.Natural.suc
> (Number.Natural.suc Number.Numeral.zero)) arb
> (HOL4.Datatype.FCONS a0
> (HOL4.Datatype.FCONS a1
> (\n. HOL4.Datatype.BOTTOM)))) a1 /\ 'cl' a0 /\
> 'cl' a1) ==> 'cl' a0') ==> 'cl' a0') <=>
> combinatoryLogicExample.cl.rep
> (combinatoryLogicExample.cl.abs r) = r) <=> T, r]
> in ObjectProv.mkEqMp:
> in Thm.eqMp:
> terms not alpha-equivalent:
> (let a0' <- r in
> !'cl'.
> (!a0'.
> a0' =
> HOL4.Datatype.CONSTR Number.Numeral.zero arb
> (\n. HOL4.Datatype.BOTTOM) \/
> a0' =
> HOL4.Datatype.CONSTR (Number.Natural.suc Number.Numeral.zero)
> arb (\n. HOL4.Datatype.BOTTOM) \/
> (?a0 a1.
> a0' =
> (let a0 <- a0 in
> \a1.
> HOL4.Datatype.CONSTR
> (Number.Natural.suc
> (Number.Natural.suc Number.Numeral.zero)) arb
> (HOL4.Datatype.FCONS a0
> (HOL4.Datatype.FCONS a1 (\n. HOL4.Datatype.BOTTOM))))
> a1 /\ 'cl' a0 /\ 'cl' a1) ==> 'cl' a0') ==> 'cl' a0') <=>
> combinatoryLogicExample.cl.rep (combinatoryLogicExample.cl.abs r) = r
> vs (let a0' <- r in
> !'cl'.
> (!a0'.
> a0' =
> HOL4.Datatype.CONSTR Number.Numeral.zero arb
> (\n. HOL4.Datatype.BOTTOM) \/
> a0' =
> HOL4.Datatype.CONSTR (Number.Natural.suc Number.Numeral.zero)
> arb (\n. HOL4.Datatype.BOTTOM) \/
> (?a0 a1.
> a0' =
> (let a0 <- a0 in
> \a1.
> HOL4.Datatype.CONSTR
> (Number.Natural.suc
> (Number.Natural.suc Number.Numeral.zero)) arb
> (HOL4.Datatype.FCONS a0
> (HOL4.Datatype.FCONS a1 (\n. HOL4.Datatype.BOTTOM))))
> a1 /\ 'cl' a0 /\ 'cl' a1) ==> 'cl' a0') ==> 'cl' a0') <=>
> combinatoryLogicExample.cl.rep (combinatoryLogicExample.cl.abs r) = r
> different constants at path 1010 subterms:
> combinatoryLogicExample.cl.rep
> vs combinatoryLogicExample.cl.rep
> different constants:
> combinatoryLogicExample.cl.rep
> vs combinatoryLogicExample.cl.rep
> different constant provenances: defined vs undefined
>
> _______________________________________________
> opentheory-users mailing list
> opentheory-users at gilith.com
> http://www.gilith.com/opentheory/mailing-list
>
More information about the opentheory-users
mailing list