Merge
authorCezary Kaliszyk <kaliszyk@in.tum.de>
Wed, 14 Oct 2009 09:50:13 +0200
changeset 90 19c662f8b9d6
parent 89 072f2f8dc694 (current diff)
parent 88 19d3856abb81 (diff)
child 91 bdcfb24461f8
Merge
QuotMain.thy
--- a/QuotMain.thy	Wed Oct 14 09:47:16 2009 +0200
+++ b/QuotMain.thy	Wed Oct 14 09:50:13 2009 +0200
@@ -418,24 +418,18 @@
 *}
 
 
-term Respects
-
 ML {*
-fun atomize_thm t =
-  MetaSimplifier.rewrite_rule [ObjectLogic.atomize (cterm_of @{theory} (prop_of t))] t
+fun atomize_thm thm =
+let
+  val thm' = forall_intr_vars thm
+  val thm'' = ObjectLogic.atomize (cprop_of thm')
+in
+  Simplifier.rewrite_rule [thm''] thm'
+end
 *}
 
-ML {*
-fun meta_quantify t =
-  let
-    val vars = Term.add_vars (prop_of t) [];
-    val cvars = map (fn x => cterm_of @{theory} (Var x)) vars
-  in
-    fold forall_intr cvars t
-  end
-*}
-
-ML {* atomize_thm (meta_quantify @{thm list.induct}) *}
+thm list.induct
+ML {* atomize_thm @{thm list.induct} *}
 
 (*fun prove_reg trm \<Rightarrow> thm (we might need some facts to do this)
   trm == new_trm
@@ -1119,7 +1113,7 @@
 
 thm list.induct
 
-ML {* val li = Thm.freezeT (atomize_thm (meta_quantify @{thm list.induct})) *}
+ML {* val li = Thm.freezeT (atomize_thm @{thm list.induct}) *}
 
 ML {*
 Syntax.string_of_term @{context}  (regularise (prop_of li) @{typ "'a List.list"} @{term "op \<approx>"} @{context})
@@ -1181,7 +1175,7 @@
   fun lift_theorem_fset name thm lthy =
     let
       val lifted_thm = lift_theorem_fset_aux thm lthy;
-      val (_, lthy2) = note_thm (name, lifted_thm) lthy;
+      val (_, lthy2) = note (name, lifted_thm) lthy;
     in
       lthy2
     end;