replaced implodeable_Ext by set_like
authorobua
Mon, 18 Sep 2006 15:11:31 +0200
changeset 20565 4440dd392048
parent 20564 6857bd9f1a79
child 20566 499500b1e348
replaced implodeable_Ext by set_like
src/HOL/ZF/HOLZF.thy
--- a/src/HOL/ZF/HOLZF.thy	Mon Sep 18 10:09:57 2006 +0200
+++ b/src/HOL/ZF/HOLZF.thy	Mon Sep 18 15:11:31 2006 +0200
@@ -701,19 +701,19 @@
 constdefs
   regular :: "(ZF * ZF) set \<Rightarrow> bool"
   "regular R == ! A. A \<noteq> Empty \<longrightarrow> (? x. Elem x A & (! y. (y, x) \<in> R \<longrightarrow> Not (Elem y A)))"
-  implodeable_Ext :: "(ZF * ZF) set \<Rightarrow> bool"
-  "implodeable_Ext R == ! y. Ext R y \<in> range explode"
+  set_like :: "(ZF * ZF) set \<Rightarrow> bool"
+  "set_like R == ! y. Ext R y \<in> range explode"
   wfzf :: "(ZF * ZF) set \<Rightarrow> bool"
-  "wfzf R == regular R & implodeable_Ext R"
+  "wfzf R == regular R & set_like R"
 
 lemma regular_Elem: "regular is_Elem_of"
   by (simp add: regular_def is_Elem_of_def Regularity)
 
-lemma implodeable_Elem: "implodeable_Ext is_Elem_of"
-  by (auto simp add: implodeable_Ext_def image_def Ext_Elem)
+lemma set_like_Elem: "set_like is_Elem_of"
+  by (auto simp add: set_like_def image_def Ext_Elem)
 
 lemma wfzf_is_Elem_of: "wfzf is_Elem_of"
-  by (auto simp add: wfzf_def regular_Elem implodeable_Elem)
+  by (auto simp add: wfzf_def regular_Elem set_like_Elem)
 
 constdefs
   SeqSum :: "(nat \<Rightarrow> ZF) \<Rightarrow> ZF"
@@ -734,10 +734,10 @@
   apply (simp_all add: explode_def)
   done
 
-lemma Elem_Ext_ZF: "implodeable_Ext R \<Longrightarrow> Elem x (Ext_ZF R s) = ((x,s) \<in> R)"
+lemma Elem_Ext_ZF: "set_like R \<Longrightarrow> Elem x (Ext_ZF R s) = ((x,s) \<in> R)"
   apply (simp add: Ext_ZF_def)
   apply (subst Elem_implode)
-  apply (simp add: implodeable_Ext_def)
+  apply (simp add: set_like_def)
   apply (simp add: Ext_def)
   done
 
@@ -753,25 +753,25 @@
   "Ext_ZF_hull R s == SeqSum (Ext_ZF_n R s)"
 
 lemma Elem_Ext_ZF_hull:
-  assumes implodeable_R: "implodeable_Ext R" 
+  assumes set_like_R: "set_like R" 
   shows "Elem x (Ext_ZF_hull R S) = (? n. Elem x (Ext_ZF_n R S n))"
   by (simp add: Ext_ZF_hull_def SeqSum)
   
 lemma Elem_Elem_Ext_ZF_hull:
-  assumes implodeable_R: "implodeable_Ext R" 
+  assumes set_like_R: "set_like R" 
           and x_hull: "Elem x (Ext_ZF_hull R S)"
           and y_R_x: "(y, x) \<in> R"
   shows "Elem y (Ext_ZF_hull R S)"
 proof -
-  from Elem_Ext_ZF_hull[OF implodeable_R] x_hull 
+  from Elem_Ext_ZF_hull[OF set_like_R] x_hull 
   have "? n. Elem x (Ext_ZF_n R S n)" by auto
   then obtain n where n:"Elem x (Ext_ZF_n R S n)" ..
   with y_R_x have "Elem y (Ext_ZF_n R S (Suc n))"
     apply (auto simp add: Repl Sum)
     apply (rule_tac x="Ext_ZF R x" in exI) 
-    apply (auto simp add: Elem_Ext_ZF[OF implodeable_R])
+    apply (auto simp add: Elem_Ext_ZF[OF set_like_R])
     done
-  with Elem_Ext_ZF_hull[OF implodeable_R, where x=y] show ?thesis
+  with Elem_Ext_ZF_hull[OF set_like_R, where x=y] show ?thesis
     by (auto simp del: Ext_ZF_n.simps)
 qed
 
@@ -782,7 +782,7 @@
   from hyps have "\<exists>S. S \<in> C" by auto
   then obtain S where S:"S \<in> C" by auto  
   let ?T = "Sep (Ext_ZF_hull R S) (\<lambda> s. s \<in> C)"
-  from hyps have implodeable_R: "implodeable_Ext R" by (simp add: wfzf_def)
+  from hyps have set_like_R: "set_like R" by (simp add: wfzf_def)
   show ?thesis
   proof (cases "?T = Empty")
     case True
@@ -795,14 +795,14 @@
       apply (rule_tac exI[where x=S])
       apply (auto simp add: Sep Empty S)
       apply (erule_tac x=y in allE)
-      apply (simp add: implodeable_R Elem_Ext_ZF)
+      apply (simp add: set_like_R Elem_Ext_ZF)
       done
   next
     case False
     from hyps have regular_R: "regular R" by (simp add: wfzf_def)
     from 
       regular_R[simplified regular_def, rule_format, OF False, simplified Sep] 
-      Elem_Elem_Ext_ZF_hull[OF implodeable_R]
+      Elem_Elem_Ext_ZF_hull[OF set_like_R]
     show ?thesis by blast
   qed
 qed
@@ -836,7 +836,7 @@
   by (auto simp add: wfzf_is_Elem_of wfzf_implies_wf)
 
 lemma in_Ext_RTrans_implies_Elem_Ext_ZF_hull:  
-  "implodeable_Ext R \<Longrightarrow> x \<in> (Ext (R^+) s) \<Longrightarrow> Elem x (Ext_ZF_hull R s)"
+  "set_like R \<Longrightarrow> x \<in> (Ext (R^+) s) \<Longrightarrow> Elem x (Ext_ZF_hull R s)"
   apply (simp add: Ext_def Elem_Ext_ZF_hull)
   apply (erule converse_trancl_induct[where r="R"])
   apply (rule exI[where x=0])
@@ -848,8 +848,8 @@
   apply (auto simp add: Elem_Ext_ZF)
   done
 
-lemma implodeable_Ext_trancl: "implodeable_Ext R \<Longrightarrow> implodeable_Ext (R^+)"
-  apply (subst implodeable_Ext_def)
+lemma implodeable_Ext_trancl: "set_like R \<Longrightarrow> set_like (R^+)"
+  apply (subst set_like_def)
   apply (auto simp add: image_def)
   apply (rule_tac x="Sep (Ext_ZF_hull R y) (\<lambda> z. z \<in> (Ext (R^+) y))" in exI)
   apply (auto simp add: explode_def Sep set_ext 
@@ -857,12 +857,12 @@
   done
  
 lemma Elem_Ext_ZF_hull_implies_in_Ext_RTrans[rule_format]:
-  "implodeable_Ext R \<Longrightarrow> ! x. Elem x (Ext_ZF_n R s n) \<longrightarrow> x \<in> (Ext (R^+) s)"
+  "set_like R \<Longrightarrow> ! x. Elem x (Ext_ZF_n R s n) \<longrightarrow> x \<in> (Ext (R^+) s)"
   apply (induct_tac n)
   apply (auto simp add: Elem_Ext_ZF Ext_def Sum Repl)
   done
 
-lemma "implodeable_Ext R \<Longrightarrow> Ext_ZF (R^+) s = Ext_ZF_hull R s"
+lemma "set_like R \<Longrightarrow> Ext_ZF (R^+) s = Ext_ZF_hull R s"
   apply (frule implodeable_Ext_trancl)
   apply (auto simp add: Ext)
   apply (erule in_Ext_RTrans_implies_Elem_Ext_ZF_hull)
@@ -890,7 +890,7 @@
   qed
 qed
 
-lemma wf_eq_wfzf: "(wf R \<and> implodeable_Ext R) = wfzf R"
+lemma wf_eq_wfzf: "(wf R \<and> set_like R) = wfzf R"
   apply (auto simp add: wfzf_implies_wf)
   apply (auto simp add: wfzf_def wf_implies_regular)
   done
@@ -901,8 +901,8 @@
 lemma Ext_subset_mono: "R \<subseteq> S \<Longrightarrow> Ext R y \<subseteq> Ext S y"
   by (auto simp add: Ext_def)
 
-lemma implodeable_Ext_subset: "implodeable_Ext R \<Longrightarrow> S \<subseteq> R \<Longrightarrow> implodeable_Ext S"
-  apply (auto simp add: implodeable_Ext_def)
+lemma set_like_subset: "set_like R \<Longrightarrow> S \<subseteq> R \<Longrightarrow> set_like S"
+  apply (auto simp add: set_like_def)
   apply (erule_tac x=y in allE)
   apply (drule_tac y=y in Ext_subset_mono)
   apply (auto simp add: image_def)
@@ -911,6 +911,6 @@
   done
 
 lemma wfzf_subset: "wfzf S \<Longrightarrow> R \<subseteq> S \<Longrightarrow> wfzf R"
-  by (auto intro: implodeable_Ext_subset wf_subset simp add: wf_eq_wfzf[symmetric])  
+  by (auto intro: set_like_subset wf_subset simp add: wf_eq_wfzf[symmetric])  
 
 end