Equality = is translated by Isabelle into Haskell as a new function definition equal_T (with T the type). HipSpec gets an additional function, obtaining corresponding properties. When brought back into the Isabelle theory, the symbol for equal_T is not defined and will stand for a free variable symbol in the lemmas obtained.
eg.: with the usual naturals Nat and
fun lez :: "Nat ⇒ bool" where
"lez x = (x = Z)"
the call hipster lez returns (with equal_Nat a free variable) the refutable lemma
lemma unknown [thy_expl]: "equal_Nat x y = equal_Nat y x"
oops
Not a problem for the purpose of researching automated theorem proving, but ultimately something to work on for usability with already existing Isabelle/HOL theories.
Equality
=
is translated by Isabelle into Haskell as a new function definitionequal_T
(withT
the type). HipSpec gets an additional function, obtaining corresponding properties. When brought back into the Isabelle theory, the symbol forequal_T
is not defined and will stand for a free variable symbol in the lemmas obtained.eg.: with the usual naturals
Nat
andthe call
hipster lez
returns (withequal_Nat
a free variable) the refutable lemmaSee theory
Examples/NatsBug.thy
.