src/HOL/Wellfounded.thy
changeset 45970 b6d0cff57d96
parent 45139 bdcaa3f3a2f4
child 46177 adac34829e10
equal deleted inserted replaced
45969:562e99c3d316 45970:b6d0cff57d96
   296 apply (blast elim!: allE)  
   296 apply (blast elim!: allE)  
   297 done
   297 done
   298 
   298 
   299 lemma wfP_SUP:
   299 lemma wfP_SUP:
   300   "\<forall>i. wfP (r i) \<Longrightarrow> \<forall>i j. r i \<noteq> r j \<longrightarrow> inf (DomainP (r i)) (RangeP (r j)) = bot \<Longrightarrow> wfP (SUPR UNIV r)"
   300   "\<forall>i. wfP (r i) \<Longrightarrow> \<forall>i j. r i \<noteq> r j \<longrightarrow> inf (DomainP (r i)) (RangeP (r j)) = bot \<Longrightarrow> wfP (SUPR UNIV r)"
   301   by (rule wf_UN [where I=UNIV and r="\<lambda>i. {(x, y). r i x y}", to_pred SUP_UN_eq2])
   301   apply (rule wf_UN [where I=UNIV and r="\<lambda>i. {(x, y). r i x y}", to_pred SUP_UN_eq2])
   302     (simp_all add: Collect_def)
   302   apply (simp_all add: inf_set_def)
       
   303   apply auto
       
   304   done
   303 
   305 
   304 lemma wf_Union: 
   306 lemma wf_Union: 
   305  "[| ALL r:R. wf r;  
   307  "[| ALL r:R. wf r;  
   306      ALL r:R. ALL s:R. r ~= s --> Domain r Int Range s = {}  
   308      ALL r:R. ALL s:R. r ~= s --> Domain r Int Range s = {}  
   307   |] ==> wf(Union R)"
   309   |] ==> wf(Union R)"