src/HOL/Library/Cset.thy
changeset 45970 b6d0cff57d96
parent 44563 01b2732cf4ad
child 45986 c9e50153e5ae
--- a/src/HOL/Library/Cset.thy	Sat Dec 24 15:53:10 2011 +0100
+++ b/src/HOL/Library/Cset.thy	Sat Dec 24 15:53:10 2011 +0100
@@ -24,10 +24,6 @@
 definition member :: "'a Cset.set \<Rightarrow> 'a \<Rightarrow> bool" where
   "member A x \<longleftrightarrow> x \<in> set_of A"
 
-lemma member_set_of:
-  "set_of = member"
-  by (rule ext)+ (simp add: member_def mem_def)
-
 lemma member_Set [simp]:
   "member (Set A) x \<longleftrightarrow> x \<in> A"
   by (simp add: member_def)
@@ -38,7 +34,7 @@
 
 lemma set_eq_iff:
   "A = B \<longleftrightarrow> member A = member B"
-  by (auto simp add: fun_eq_iff set_of_inject [symmetric] member_def mem_def)
+  by (auto simp add: fun_eq_iff set_of_inject [symmetric] member_def)
 hide_fact (open) set_eq_iff
 
 lemma set_eqI:
@@ -76,7 +72,7 @@
   [simp]: "A - B = Set (set_of A - set_of B)"
 
 instance proof
-qed (auto intro!: Cset.set_eqI simp add: member_def mem_def)
+qed (auto intro!: Cset.set_eqI simp add: member_def)
 
 end
 
@@ -364,19 +360,13 @@
      Predicate.Empty \<Rightarrow> Cset.empty
    | Predicate.Insert x P \<Rightarrow> Cset.insert x (of_pred P)
    | Predicate.Join P xq \<Rightarrow> sup (of_pred P) (of_seq xq))"
-  apply (auto split: seq.split simp add: Predicate.Seq_def of_pred_def Cset.set_eq_iff sup_apply eval_member [symmetric] member_def [symmetric] Collect_def mem_def member_set_of)
-  apply (unfold Set.insert_def Collect_def sup_apply member_set_of)
-  apply simp_all
-  done
+  by (auto split: seq.split simp add: Predicate.Seq_def of_pred_def Cset.set_eq_iff sup_apply eval_member [symmetric] member_def [symmetric])
 
 lemma of_seq_code [code]:
   "of_seq Predicate.Empty = Cset.empty"
   "of_seq (Predicate.Insert x P) = Cset.insert x (of_pred P)"
   "of_seq (Predicate.Join P xq) = sup (of_pred P) (of_seq xq)"
-  apply (auto simp add: of_seq_def of_pred_def Cset.set_eq_iff mem_def Collect_def)
-  apply (unfold Set.insert_def Collect_def sup_apply member_set_of)
-  apply simp_all
-  done
+  by (auto simp add: of_seq_def of_pred_def Cset.set_eq_iff)
 
 lemma bind_set:
   "Cset.bind (Cset.set xs) f = fold (sup \<circ> f) xs (Cset.set [])"
@@ -387,9 +377,9 @@
   "pred_of_cset (Cset.set xs) = foldr sup (List.map Predicate.single xs) bot"
 proof -
   have "pred_of_cset (Cset.set xs) = Predicate.Pred (\<lambda>x. x \<in> set xs)"
-    by (simp add: Cset.pred_of_cset_def member_set)
+    by (simp add: Cset.pred_of_cset_def)
   moreover have "foldr sup (List.map Predicate.single xs) bot = \<dots>"
-    by (induct xs) (auto simp add: bot_pred_def intro: pred_eqI, simp add: mem_def)
+    by (induct xs) (auto simp add: bot_pred_def intro: pred_eqI)
   ultimately show ?thesis by simp
 qed
 hide_fact (open) pred_of_cset_set