Pure equality is a regular cpde operation
authorhaftmann
Mon, 20 Sep 2010 18:43:18 +0200
changeset 39566 87a5704673f0
parent 39565 f4f87c6e2fad
child 39567 5ee997fbe5cc
Pure equality is a regular cpde operation
src/HOL/HOL.thy
src/Tools/Code/code_thingol.ML
--- a/src/HOL/HOL.thy	Mon Sep 20 15:25:32 2010 +0200
+++ b/src/HOL/HOL.thy	Mon Sep 20 18:43:18 2010 +0200
@@ -742,7 +742,7 @@
   then show False by (rule notE)
 qed
 
-lemma atomize_eq [atomize]: "(x == y) == Trueprop (x = y)"
+lemma atomize_eq [atomize, code]: "(x == y) == Trueprop (x = y)"
 proof
   assume "x == y"
   show "x = y" by (unfold `x == y`) (rule refl)
--- a/src/Tools/Code/code_thingol.ML	Mon Sep 20 15:25:32 2010 +0200
+++ b/src/Tools/Code/code_thingol.ML	Mon Sep 20 18:43:18 2010 +0200
@@ -275,6 +275,7 @@
        of SOME (tyco, _) => Codegen.thyname_of_type thy tyco
         | NONE => Codegen.thyname_of_const thy c);
   fun purify_base "==>" = "follows"
+    | purify_base "==" = "meta_eq"
     | purify_base s = Name.desymbolize false s;
   fun namify thy get_basename get_thyname name =
     let