--- 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