
diff -r cf1ad0e59d97 -r fa0f6fdac5de Quot/QuotMain.thy
--- a/Quot/QuotMain.thy	Thu Dec 10 04:35:08 2009 +0100
+++ b/Quot/QuotMain.thy	Thu Dec 10 04:53:48 2009 +0100
@@ -1058,11 +1058,11 @@
 lemma lifting_procedure:
   assumes a: "A"
   and     b: "A \<longrightarrow> B"
-  and     c: "B = C"
+  and     c: "QUOT_TRUE D \<Longrightarrow> B = C"
   and     d: "C = D"
   shows   "D"
 using a b c d
-by simp
+by (simp add: QUOT_TRUE_def)
 
 ML {*
 fun lift_match_error ctxt fun_str rtrm qtrm =
@@ -1092,6 +1092,7 @@
   Drule.instantiate' []
     [SOME (cterm_of thy rtrm'),
      SOME (cterm_of thy reg_goal),
+     NONE,
      SOME (cterm_of thy inj_goal)] @{thm lifting_procedure}
 end
 *}
@@ -1105,10 +1106,8 @@
     let
       val rthm' = atomize_thm rthm
       val rule = procedure_inst ctxt (prop_of rthm') (term_of goal)
-      val bare_goal = snd (Thm.dest_comb goal)
-      val quot_weak = Drule.instantiate' [] [SOME bare_goal] @{thm QUOT_TRUE_i}
     in
-      (rtac rule THEN' RANGE [rtac rthm', K all_tac, rtac quot_weak]) i
+      (rtac rule THEN' rtac rthm') i
     end)
 *}
 
@@ -1127,9 +1126,10 @@
 ML {*
 fun lift_tac ctxt rthm =
   procedure_tac ctxt rthm
-  THEN' RANGE_WARN [(regularize_tac ctxt,     "Regularize proof failed."),
-                    (all_inj_repabs_tac ctxt, "Injection proof failed."),
-                    (clean_tac ctxt,          "Cleaning proof failed.")]
+  THEN' RANGE_WARN 
+     [(regularize_tac ctxt,     "Regularize proof failed."),
+      (all_inj_repabs_tac ctxt, "Injection proof failed."),
+      (clean_tac ctxt,          "Cleaning proof failed.")]
 *}
 
 section {* methods / interface *}




