equal
deleted
inserted
replaced
390 } |
390 } |
391 thus False using assms(2) `r:R` |
391 thus False using assms(2) `r:R` |
392 by(simp add:wf_iff_no_infinite_down_chain) blast |
392 by(simp add:wf_iff_no_infinite_down_chain) blast |
393 qed |
393 qed |
394 |
394 |
|
395 lemma initial_segment_of_Diff: |
|
396 "p initial_segment_of q \<Longrightarrow> p - s initial_segment_of q - s" |
|
397 unfolding init_seg_of_def by blast |
|
398 |
395 lemma Chain_inits_DiffI: |
399 lemma Chain_inits_DiffI: |
396 "R \<in> Chain init_seg_of \<Longrightarrow> {r - s |r. r \<in> R} \<in> Chain init_seg_of" |
400 "R \<in> Chain init_seg_of \<Longrightarrow> {r - s |r. r \<in> R} \<in> Chain init_seg_of" |
397 apply(auto simp:Chain_def init_seg_of_def) |
401 unfolding Chain_def by (blast intro: initial_segment_of_Diff) |
398 apply (metis subsetD) |
|
399 apply (metis subsetD) |
|
400 done |
|
401 |
402 |
402 theorem well_ordering: "\<exists>r::('a*'a)set. Well_order r \<and> Field r = UNIV" |
403 theorem well_ordering: "\<exists>r::('a*'a)set. Well_order r \<and> Field r = UNIV" |
403 proof- |
404 proof- |
404 -- {*The initial segment relation on well-orders: *} |
405 -- {*The initial segment relation on well-orders: *} |
405 let ?WO = "{r::('a*'a)set. Well_order r}" |
406 let ?WO = "{r::('a*'a)set. Well_order r}" |