equal
deleted
inserted
replaced
44 using continuous_proj compact by (rule compact_continuous_image) |
44 using continuous_proj compact by (rule compact_continuous_image) |
45 |
45 |
46 end |
46 end |
47 |
47 |
48 lemma compactE': |
48 lemma compactE': |
|
49 fixes S :: "'a :: metric_space set" |
49 assumes "compact S" "\<forall>n\<ge>m. f n \<in> S" |
50 assumes "compact S" "\<forall>n\<ge>m. f n \<in> S" |
50 obtains l r where "l \<in> S" "subseq r" "((f \<circ> r) ---> l) sequentially" |
51 obtains l r where "l \<in> S" "subseq r" "((f \<circ> r) ---> l) sequentially" |
51 proof atomize_elim |
52 proof atomize_elim |
52 have "subseq (op + m)" by (simp add: subseq_def) |
53 have "subseq (op + m)" by (simp add: subseq_def) |
53 have "\<forall>n. (f o (\<lambda>i. m + i)) n \<in> S" using assms by auto |
54 have "\<forall>n. (f o (\<lambda>i. m + i)) n \<in> S" using assms by auto |
54 from compactE[OF `compact S` this] guess l r . |
55 from seq_compactE[OF `compact S`[unfolded compact_eq_seq_compact_metric] this] guess l r . |
55 hence "l \<in> S" "subseq ((\<lambda>i. m + i) o r) \<and> (f \<circ> ((\<lambda>i. m + i) o r)) ----> l" |
56 hence "l \<in> S" "subseq ((\<lambda>i. m + i) o r) \<and> (f \<circ> ((\<lambda>i. m + i) o r)) ----> l" |
56 using subseq_o[OF `subseq (op + m)` `subseq r`] by (auto simp: o_def) |
57 using subseq_o[OF `subseq (op + m)` `subseq r`] by (auto simp: o_def) |
57 thus "\<exists>l r. l \<in> S \<and> subseq r \<and> (f \<circ> r) ----> l" by blast |
58 thus "\<exists>l r. l \<in> S \<and> subseq r \<and> (f \<circ> r) ----> l" by blast |
58 qed |
59 qed |
59 |
60 |