4341 assume A: "\<forall>a\<in>A. closed a" "\<forall>B\<subseteq>A. finite B \<longrightarrow> U \<inter> \<Inter>B \<noteq> {}" "U \<inter> \<Inter>A = {}" |
4341 assume A: "\<forall>a\<in>A. closed a" "\<forall>B\<subseteq>A. finite B \<longrightarrow> U \<inter> \<Inter>B \<noteq> {}" "U \<inter> \<Inter>A = {}" |
4342 define F where "F = (INF a:insert U A. principal a)" |
4342 define F where "F = (INF a:insert U A. principal a)" |
4343 have "F \<noteq> bot" |
4343 have "F \<noteq> bot" |
4344 unfolding F_def |
4344 unfolding F_def |
4345 proof (rule INF_filter_not_bot) |
4345 proof (rule INF_filter_not_bot) |
4346 fix X assume "X \<subseteq> insert U A" "finite X" |
4346 fix X |
4347 moreover with A(2)[THEN spec, of "X - {U}"] have "U \<inter> \<Inter>(X - {U}) \<noteq> {}" |
4347 assume X: "X \<subseteq> insert U A" "finite X" |
|
4348 with A(2)[THEN spec, of "X - {U}"] have "U \<inter> \<Inter>(X - {U}) \<noteq> {}" |
4348 by auto |
4349 by auto |
4349 ultimately show "(INF a:X. principal a) \<noteq> bot" |
4350 with X show "(INF a:X. principal a) \<noteq> bot" |
4350 by (auto simp add: INF_principal_finite principal_eq_bot_iff) |
4351 by (auto simp add: INF_principal_finite principal_eq_bot_iff) |
4351 qed |
4352 qed |
4352 moreover |
4353 moreover |
4353 have "F \<le> principal U" |
4354 have "F \<le> principal U" |
4354 unfolding F_def by auto |
4355 unfolding F_def by auto |
6599 assume "x \<notin> X" |
6600 assume "x \<notin> X" |
6600 have "x \<in> closure X" using Y by auto |
6601 have "x \<in> closure X" using Y by auto |
6601 then obtain xs where xs: "xs \<longlonglongrightarrow> x" "\<And>n. xs n \<in> X" |
6602 then obtain xs where xs: "xs \<longlonglongrightarrow> x" "\<And>n. xs n \<in> X" |
6602 by (auto simp: closure_sequential) |
6603 by (auto simp: closure_sequential) |
6603 from continuous_on_tendsto_compose[OF cont_h xs(1)] xs(2) Y |
6604 from continuous_on_tendsto_compose[OF cont_h xs(1)] xs(2) Y |
6604 have "(\<lambda>x. f (xs x)) \<longlonglongrightarrow> h x" |
6605 have hx: "(\<lambda>x. f (xs x)) \<longlonglongrightarrow> h x" |
6605 by (auto simp: set_mp extension) |
6606 by (auto simp: set_mp extension) |
6606 moreover |
|
6607 then have "(\<lambda>x. f (xs x)) \<longlonglongrightarrow> y x" |
6607 then have "(\<lambda>x. f (xs x)) \<longlonglongrightarrow> y x" |
6608 using \<open>x \<notin> X\<close> not_eventuallyD xs(2) |
6608 using \<open>x \<notin> X\<close> not_eventuallyD xs(2) |
6609 by (force intro!: filterlim_compose[OF y[OF \<open>x \<in> closure X\<close>]] simp: filterlim_at xs) |
6609 by (force intro!: filterlim_compose[OF y[OF \<open>x \<in> closure X\<close>]] simp: filterlim_at xs) |
6610 ultimately have "h x = y x" by (rule LIMSEQ_unique) |
6610 with hx have "h x = y x" by (rule LIMSEQ_unique) |
6611 } then |
6611 } then |
6612 have "h x = ?g x" |
6612 have "h x = ?g x" |
6613 using extension by auto |
6613 using extension by auto |
6614 } |
6614 } |
6615 ultimately show ?thesis .. |
6615 ultimately show ?thesis .. |