equal
deleted
inserted
replaced
245 have "finite (range ?gt)" |
245 have "finite (range ?gt)" |
246 by (simp add: finite_nat_iff_bounded rangeg) |
246 by (simp add: finite_nat_iff_bounded rangeg) |
247 then obtain s' and n' |
247 then obtain s' and n' |
248 where s': "s' = ?gt n'" |
248 where s': "s' = ?gt n'" |
249 and infeqs': "infinite {n. ?gt n = s'}" |
249 and infeqs': "infinite {n. ?gt n = s'}" |
250 by (rule inf_img_fin_domE) (auto simp add: vimage_def intro: nat_infinite) |
250 by (rule inf_img_fin_domE) (auto simp add: vimage_def intro: infinite_UNIV_nat) |
251 with pg [of n'] have less': "s'<s" by (cases "g n'") auto |
251 with pg [of n'] have less': "s'<s" by (cases "g n'") auto |
252 have inj_gy: "inj ?gy" |
252 have inj_gy: "inj ?gy" |
253 proof (rule linorder_injI) |
253 proof (rule linorder_injI) |
254 fix m m' :: nat assume less: "m < m'" show "?gy m \<noteq> ?gy m'" |
254 fix m m' :: nat assume less: "m < m'" show "?gy m \<noteq> ?gy m'" |
255 using rg [OF less] pg [of m] by (cases "g m", cases "g m'") auto |
255 using rg [OF less] pg [of m] by (cases "g m", cases "g m'") auto |
408 apply (blast dest: s_in_T transition_idx_less) |
408 apply (blast dest: s_in_T transition_idx_less) |
409 done |
409 done |
410 have |
410 have |
411 "\<exists>K k. K \<subseteq> UNIV & infinite K & k < n & |
411 "\<exists>K k. K \<subseteq> UNIV & infinite K & k < n & |
412 (\<forall>i\<in>K. \<forall>j\<in>K. i\<noteq>j --> transition_idx s T {i,j} = k)" |
412 (\<forall>i\<in>K. \<forall>j\<in>K. i\<noteq>j --> transition_idx s T {i,j} = k)" |
413 by (rule Ramsey2) (auto intro: trless nat_infinite) |
413 by (rule Ramsey2) (auto intro: trless infinite_UNIV_nat) |
414 then obtain K and k |
414 then obtain K and k |
415 where infK: "infinite K" and less: "k < n" and |
415 where infK: "infinite K" and less: "k < n" and |
416 allk: "\<forall>i\<in>K. \<forall>j\<in>K. i\<noteq>j --> transition_idx s T {i,j} = k" |
416 allk: "\<forall>i\<in>K. \<forall>j\<in>K. i\<noteq>j --> transition_idx s T {i,j} = k" |
417 by auto |
417 by auto |
418 have "\<forall>m. (s (enumerate K (Suc m)), s(enumerate K m)) \<in> T k" |
418 have "\<forall>m. (s (enumerate K (Suc m)), s(enumerate K m)) \<in> T k" |