one further improvement to unlam_def
authorChristian Urban <urbanc@in.tum.de>
Tue, 06 Oct 2009 02:02:51 +0200
changeset 65 da982cded326
parent 64 33d7bcfd5603
child 66 564bf4343f63
one further improvement to unlam_def
QuotMain.thy
--- a/QuotMain.thy	Tue Oct 06 01:50:13 2009 +0200
+++ b/QuotMain.thy	Tue Oct 06 02:02:51 2009 +0200
@@ -737,17 +737,20 @@
   val (lhs, rhs) = Thm.dest_equals (cprop_of def)
   val xs = strip_abs_vars (term_of rhs)
   val (_, ctxt') = Variable.add_fixes (map fst xs) ctxt
-
-  fun get_lhs [] = lhs
-    | get_lhs (x::xs) =  
-        let val cx = cterm_of (ProofContext.theory_of ctxt') (Free x)
-        in Thm.capply (get_lhs xs) cx end
+  
+  val thy = ProofContext.theory_of ctxt'
+  fun get_lhs xs = 
+  let 
+    val cxs = map (cterm_of thy o Free) xs
+  in
+    Drule.list_comb (lhs, cxs)
+  end
 
   fun get_conv [] = Conv.rewr_conv def
     | get_conv (x::xs) = Conv.fun_conv (get_conv xs)
  
 in
-  get_conv xs (get_lhs (rev xs)) |>  
+  get_conv xs (get_lhs xs) |>  
   singleton (ProofContext.export ctxt' ctxt)
 end
 *}