[opentheory-users] opentheory tool implementing eqMp incorrectly
Ramana Kumar
ramana.kumar at gmail.com
Thu Sep 8 13:06:22 UTC 2011
I think there's an argument order problem. It's hard keeping track of
which argument is which though :)
The article file format says, roughly,
a :: a = b :: stack --[eqMp]--> b :: stack
Now in the opentheory tool source code,
...
| Command.EqMp =>
let
val (stack,objA,objB) = ObjectStack.pop2 stack
val obj = ObjectProv.mkEqMp {savable = savable} objA objB
...
fun pop2 stack =
...
| obj1 :: obj0 :: objs =>
...
in
(stack,obj0,obj1)
end
...
fun mkEqMp {savable} objA objB =
...
in
Object.Thm (Thm.eqMp a b)
end
...
fun eqMp th1 th2 =
...
val (c2',concl) = Term.destEq c1
val () =
if Term.alphaEqual c2 c2' then ()
else raise Error "Thm.eqMp: not alpha equivalent"
...
(c2 is the conclusion of th2, c1 of th1)
But I think th2 will be the equality (a=b), not th1.
More information about the opentheory-users
mailing list