--- a/IntEx.thy Mon Nov 23 16:12:50 2009 +0100
+++ b/IntEx.thy Mon Nov 23 16:13:19 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 16:12:50 2009 +0100
+++ b/QuotMain.thy Mon Nov 23 16:13:19 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