# HG changeset patch # User Cezary Kaliszyk # Date 1258987634 -3600 # Node ID 0aba42afedad536e13ae7cf82c28e2e4c12ff921 # Parent cc96aaf6484c5318c564b45f3da6b73b9dc229a1 Fixes for atomize 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"} *} + diff -r cc96aaf6484c -r 0aba42afedad QuotMain.thy --- 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