--- a/FSet.thy Sun Nov 29 19:48:55 2009 +0100
+++ b/FSet.thy Sun Nov 29 23:59:37 2009 +0100
@@ -303,8 +303,20 @@
ML {* val consts = lookup_quot_consts defs *}
ML {* fun lift_tac_fset lthy t = lift_tac lthy t [rel_eqv] rty [quot] defs *}
+thm m1
+
lemma "IN x EMPTY = False"
-by (tactic {* lift_tac_fset @{context} @{thm m1} 1 *})
+apply(tactic {* procedure_tac @{context} @{thm m1} 1 *})
+apply(tactic {* regularize_tac @{context} [rel_eqv] 1 *})
+apply(tactic {* all_inj_repabs_tac @{context} rty [quot] [rel_refl] [trans2] 1 *})
+ML_prf {*
+ val rtrm = @{term "\<forall>x. IN x EMPTY = False"}
+ val qtrm = @{term "\<forall>x. x memb [] = False"}
+ val aps = find_aps rtrm qtrm
+*}
+unfolding IN_def EMPTY_def
+apply(tactic {* clean_tac @{context} [quot] defs aps 1*})
+done
lemma "IN x (INSERT y xa) = (x = y \<or> IN x xa)"
by (tactic {* lift_tac_fset @{context} @{thm m2} 1 *})