diff -r cc96aaf6484c -r 0aba42afedad IntEx.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 (\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"} *} +