
diff -r ca1a24aa822e -r b97f3f5fbc18 QuotMain.thy
--- a/QuotMain.thy	Mon Oct 26 11:55:36 2009 +0100
+++ b/QuotMain.thy	Mon Oct 26 13:33:28 2009 +0100
@@ -709,6 +709,7 @@
     ),
     (instantiate_tac @{thm REP_ABS_RSP(1)} ctxt THEN' (RANGE [quotient_tac quot_thm])),
     rtac refl,
+    rtac @{thm arg_cong2[of _ _ _ _ "op ="]},
     (instantiate_tac @{thm APPLY_RSP} ctxt THEN' (RANGE [quotient_tac quot_thm, quotient_tac quot_thm])),
     rtac reflex_thm,
     atac,
@@ -787,5 +788,19 @@
   end
 *}
 
+text {* the proper way to do it *}
+ML {*
+  fun findabs rty tm =
+    case tm of
+      Abs(_, T, b) =>
+        let
+          val b' = subst_bound ((Free ("x", T)), b);
+          val tys = findabs rty b'
+          val ty = fastype_of tm
+        in if needs_lift rty ty then (ty :: tys) else tys
+        end
+    | f $ a => (findabs rty f) @ (findabs rty a)
+    | _ => []
+*}
 
 end




