src/HOL/Cardinals/Wellorder_Constructions.thy
changeset 63040 eb4ddd18d635
parent 61605 1bf7b186542e
child 63167 0909deb8059b
equal deleted inserted replaced
63039:1a20fd9cf281 63040:eb4ddd18d635
   656 lemmas succ_pred[simp] = pred_Field_succ[THEN conjunct2, THEN conjunct2]
   656 lemmas succ_pred[simp] = pred_Field_succ[THEN conjunct2, THEN conjunct2]
   657 
   657 
   658 lemma isSucc_pred_in:
   658 lemma isSucc_pred_in:
   659 assumes "isSucc i"  shows "(pred i, i) \<in> r"
   659 assumes "isSucc i"  shows "(pred i, i) \<in> r"
   660 proof-
   660 proof-
   661   def j \<equiv> "pred i"
   661   define j where "j = pred i"
   662   have i: "i = succ j" using assms unfolding j_def by simp
   662   have i: "i = succ j" using assms unfolding j_def by simp
   663   have a: "aboveS j \<noteq> {}" unfolding j_def using assms by auto
   663   have a: "aboveS j \<noteq> {}" unfolding j_def using assms by auto
   664   show ?thesis unfolding j_def[symmetric] unfolding i using succ_in[OF a] .
   664   show ?thesis unfolding j_def[symmetric] unfolding i using succ_in[OF a] .
   665 qed
   665 qed
   666 
   666 
   764 
   764 
   765 lemma worecSL_succ:
   765 lemma worecSL_succ:
   766 assumes a: "adm_woL L" and i: "aboveS j \<noteq> {}"
   766 assumes a: "adm_woL L" and i: "aboveS j \<noteq> {}"
   767 shows "worecSL S L (succ j) = S j (worecSL S L j)"
   767 shows "worecSL S L (succ j) = S j (worecSL S L j)"
   768 proof-
   768 proof-
   769   def i \<equiv> "succ j"
   769   define i where "i = succ j"
   770   have i: "isSucc i" by (metis i i_def isSucc_succ)
   770   have i: "isSucc i" by (metis i i_def isSucc_succ)
   771   have ij: "j = pred i" unfolding i_def using assms by simp
   771   have ij: "j = pred i" unfolding i_def using assms by simp
   772   have 0: "succ (pred i) = i" using i by simp
   772   have 0: "succ (pred i) = i" using i by simp
   773   show ?thesis unfolding ij using worecSL_isSucc[OF a i] unfolding 0 .
   773   show ?thesis unfolding ij using worecSL_isSucc[OF a i] unfolding 0 .
   774 qed
   774 qed
   933 shows "\<exists> g. embed r s g"
   933 shows "\<exists> g. embed r s g"
   934 proof-
   934 proof-
   935   interpret r: wo_rel r by unfold_locales (rule r)
   935   interpret r: wo_rel r by unfold_locales (rule r)
   936   interpret s: wo_rel s by unfold_locales (rule s)
   936   interpret s: wo_rel s by unfold_locales (rule s)
   937   let ?G = "\<lambda> g a. suc s (g ` underS r a)"
   937   let ?G = "\<lambda> g a. suc s (g ` underS r a)"
   938   def g \<equiv> "worec r ?G"
   938   define g where "g = worec r ?G"
   939   have adm: "adm_wo r ?G" unfolding r.adm_wo_def image_def by auto
   939   have adm: "adm_wo r ?G" unfolding r.adm_wo_def image_def by auto
   940   (*  *)
   940   (*  *)
   941   {fix a assume "a \<in> Field r"
   941   {fix a assume "a \<in> Field r"
   942    hence "bij_betw g (under r a) (under s (g a)) \<and>
   942    hence "bij_betw g (under r a) (under s (g a)) \<and>
   943           g a \<in> under s (f a)"
   943           g a \<in> under s (f a)"