Fixes for atomize
authorCezary Kaliszyk <kaliszyk@in.tum.de>
Mon, 23 Nov 2009 15:47:14 +0100
changeset 344 0aba42afedad
parent 343 cc96aaf6484c
child 346 959ef7f6ecdb
Fixes for atomize
IntEx.thy
QuotMain.thy
--- a/IntEx.thy	Mon Nov 23 15:08:25 2009 +0100
+++ b/IntEx.thy	Mon Nov 23 15:47:14 2009 +0100
@@ -181,6 +181,23 @@
 *}
 
 
+
+ML {*
+fun atomize_goal thy gl =
+  let
+    val vars = map Free (Term.add_frees gl []);
+    fun lambda_all (var as Free(_, T)) trm = (Term.all T) $ lambda var trm;
+    val gla = fold lambda_all vars (@{term "Trueprop"} $ gl)
+    val glf = Type.legacy_freeze gla
+    val glac = (snd o Thm.dest_equals o cprop_of) (ObjectLogic.atomize (cterm_of thy glf))
+  in
+    term_of glac
+  end
+*}
+
+ML {* atomize_goal @{theory} @{term "PLUS a b = PLUS b a"} *}
+
+
 ML {*
 fun lift_thm_goal lthy qty qty_name rsp_thms defs rthm goal =
 let
@@ -232,7 +249,7 @@
 *}
 
 ML {*
-  lift_thm_g_my_int @{context} @{thm plus_sym_pre} @{term "Trueprop (\<forall>a b. PLUS a b = PLUS b a)"}
+  lift_thm_g_my_int @{context} @{thm plus_sym_pre} @{term "PLUS a b = PLUS b a"}
 *}
 
 
@@ -401,3 +418,5 @@
 ML {* val t_d = repeat_eqsubst_thm @{context} defs_sym t_l *}
 ML {* val t_r = MetaSimplifier.rewrite_rule [reps_same] t_d *}
 ML {* ObjectLogic.rulify t_r *}
+ML {* @{term "Trueprop"} *}
+
--- a/QuotMain.thy	Mon Nov 23 15:08:25 2009 +0100
+++ b/QuotMain.thy	Mon Nov 23 15:47:14 2009 +0100
@@ -1118,7 +1118,7 @@
   let
     val vars = map Free (Term.add_frees gl []);
     fun lambda_all (var as Free(_, T)) trm = (Term.all T) $ lambda var trm;
-    val gla = fold lambda_all vars gl
+    val gla = fold lambda_all vars (@{term "Trueprop"} $ gl)
     val glf = Type.legacy_freeze gla
     val glac = (snd o Thm.dest_equals o cprop_of) (ObjectLogic.atomize (cterm_of thy glf))
   in