equal
deleted
inserted
replaced
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)" |