3369 next |
3369 next |
3370 case True then show ?thesis |
3370 case True then show ?thesis |
3371 using empty_completely_metrizable_space by auto |
3371 using empty_completely_metrizable_space by auto |
3372 qed |
3372 qed |
3373 |
3373 |
3374 |
|
3375 subsection \<open>The "atin-within" filter for topologies\<close> |
|
3376 |
|
3377 (*FIXME: replace original definition of atin to be an abbreviation, like at / at_within |
|
3378 ("atin (_) (_)/ within (_)" [1000, 60] 60)*) |
|
3379 definition atin_within :: "['a topology, 'a, 'a set] \<Rightarrow> 'a filter" |
|
3380 where "atin_within X a S = inf (nhdsin X a) (principal (topspace X \<inter> S - {a}))" |
|
3381 |
|
3382 lemma atin_within_UNIV [simp]: |
|
3383 shows "atin_within X a UNIV = atin X a" |
|
3384 by (simp add: atin_def atin_within_def) |
|
3385 |
|
3386 lemma eventually_atin_subtopology: |
|
3387 assumes "a \<in> topspace X" |
|
3388 shows "eventually P (atin (subtopology X S) a) \<longleftrightarrow> |
|
3389 (a \<in> S \<longrightarrow> (\<exists>U. openin (subtopology X S) U \<and> a \<in> U \<and> (\<forall>x\<in>U - {a}. P x)))" |
|
3390 using assms by (simp add: eventually_atin) |
|
3391 |
|
3392 lemma eventually_atin_within: |
|
3393 "eventually P (atin_within X a S) \<longleftrightarrow> a \<notin> topspace X \<or> (\<exists>T. openin X T \<and> a \<in> T \<and> (\<forall>x\<in>T. x \<in> S \<and> x \<noteq> a \<longrightarrow> P x))" |
|
3394 proof (cases "a \<in> topspace X") |
|
3395 case True |
|
3396 hence "eventually P (atin_within X a S) \<longleftrightarrow> |
|
3397 (\<exists>T. openin X T \<and> a \<in> T \<and> |
|
3398 (\<forall>x\<in>T. x \<in> topspace X \<and> x \<in> S \<and> x \<noteq> a \<longrightarrow> P x))" |
|
3399 by (simp add: atin_within_def eventually_inf_principal eventually_nhdsin) |
|
3400 also have "\<dots> \<longleftrightarrow> (\<exists>T. openin X T \<and> a \<in> T \<and> (\<forall>x\<in>T. x \<in> S \<and> x \<noteq> a \<longrightarrow> P x))" |
|
3401 using openin_subset by (intro ex_cong) auto |
|
3402 finally show ?thesis by (simp add: True) |
|
3403 qed (simp add: atin_within_def) |
|
3404 |
|
3405 lemma eventually_within_imp: |
|
3406 "eventually P (atin_within X a S) \<longleftrightarrow> eventually (\<lambda>x. x \<in> S \<longrightarrow> P x) (atin X a)" |
|
3407 by (auto simp add: eventually_atin_within eventually_atin) |
|
3408 |
|
3409 lemma limit_within_subset: |
|
3410 "\<lbrakk>limitin X f l (atin_within Y a S); T \<subseteq> S\<rbrakk> \<Longrightarrow> limitin X f l (atin_within Y a T)" |
|
3411 by (smt (verit) eventually_atin_within limitin_def subset_eq) |
|
3412 |
|
3413 lemma atin_subtopology_within: |
|
3414 assumes "a \<in> S" |
|
3415 shows "atin (subtopology X S) a = atin_within X a S" |
|
3416 proof - |
|
3417 have "eventually P (atin (subtopology X S) a) \<longleftrightarrow> eventually P (atin_within X a S)" for P |
|
3418 unfolding eventually_atin eventually_atin_within openin_subtopology |
|
3419 using assms by auto |
|
3420 then show ?thesis |
|
3421 by (meson le_filter_def order.eq_iff) |
|
3422 qed |
|
3423 |
|
3424 lemma limit_continuous_map_within: |
|
3425 "\<lbrakk>continuous_map (subtopology X S) Y f; a \<in> S; a \<in> topspace X\<rbrakk> |
|
3426 \<Longrightarrow> limitin Y f (f a) (atin_within X a S)" |
|
3427 by (metis Int_iff atin_subtopology_within continuous_map_atin topspace_subtopology) |
|
3428 |
|
3429 lemma atin_subtopology_within_if: |
|
3430 shows "atin (subtopology X S) a = (if a \<in> S then atin_within X a S else bot)" |
|
3431 by (simp add: atin_subtopology_within) |
|
3432 |
|
3433 lemma trivial_limit_atpointof_within: |
|
3434 "trivial_limit(atin_within X a S) \<longleftrightarrow> |
|
3435 (a \<notin> X derived_set_of S)" |
|
3436 by (auto simp: trivial_limit_def eventually_atin_within in_derived_set_of) |
|
3437 |
|
3438 lemma derived_set_of_trivial_limit: |
|
3439 "a \<in> X derived_set_of S \<longleftrightarrow> \<not> trivial_limit(atin_within X a S)" |
|
3440 by (simp add: trivial_limit_atpointof_within) |
|
3441 |
|
3442 |
3374 |
3443 subsection\<open>More sequential characterizations in a metric space\<close> |
3375 subsection\<open>More sequential characterizations in a metric space\<close> |
3444 |
3376 |
3445 context Metric_space |
3377 context Metric_space |
3446 begin |
3378 begin |