author | immler |
Mon, 07 Jan 2019 18:50:41 +0100 | |
changeset 69622 | 003475955593 |
parent 69600 | 86e8e7347ac0 |
child 69661 | a03a63b81f44 |
permissions | -rw-r--r-- |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1 |
(* Author: L C Paulson, University of Cambridge [ported from HOL Light] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2 |
*) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
4 |
section \<open>Operators involving abstract topology\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
5 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
6 |
theory Abstract_Topology |
69544
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
7 |
imports |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
8 |
Complex_Main |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
9 |
"HOL-Library.Set_Idioms" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
10 |
"HOL-Library.FuncSet" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
11 |
(* Path_Connected *) |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
12 |
begin |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
13 |
|
69544
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
14 |
subsection \<open>General notion of a topology as a value\<close> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
15 |
|
69600 | 16 |
definition%important istopology :: "('a set \<Rightarrow> bool) \<Rightarrow> bool" where |
17 |
"istopology L \<longleftrightarrow> |
|
69544
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
18 |
L {} \<and> (\<forall>S T. L S \<longrightarrow> L T \<longrightarrow> L (S \<inter> T)) \<and> (\<forall>K. Ball K L \<longrightarrow> L (\<Union>K))" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
19 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
20 |
typedef%important 'a topology = "{L::('a set) \<Rightarrow> bool. istopology L}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
21 |
morphisms "openin" "topology" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
22 |
unfolding istopology_def by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
23 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
24 |
lemma istopology_openin[intro]: "istopology(openin U)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
25 |
using openin[of U] by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
26 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
27 |
lemma topology_inverse': "istopology U \<Longrightarrow> openin (topology U) = U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
28 |
using topology_inverse[unfolded mem_Collect_eq] . |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
29 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
30 |
lemma topology_inverse_iff: "istopology U \<longleftrightarrow> openin (topology U) = U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
31 |
using topology_inverse[of U] istopology_openin[of "topology U"] by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
32 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
33 |
lemma topology_eq: "T1 = T2 \<longleftrightarrow> (\<forall>S. openin T1 S \<longleftrightarrow> openin T2 S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
34 |
proof |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
35 |
assume "T1 = T2" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
36 |
then show "\<forall>S. openin T1 S \<longleftrightarrow> openin T2 S" by simp |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
37 |
next |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
38 |
assume H: "\<forall>S. openin T1 S \<longleftrightarrow> openin T2 S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
39 |
then have "openin T1 = openin T2" by (simp add: fun_eq_iff) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
40 |
then have "topology (openin T1) = topology (openin T2)" by simp |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
41 |
then show "T1 = T2" unfolding openin_inverse . |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
42 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
43 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
44 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
45 |
text\<open>The "universe": the union of all sets in the topology.\<close> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
46 |
definition "topspace T = \<Union>{S. openin T S}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
47 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
48 |
subsubsection \<open>Main properties of open sets\<close> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
49 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
50 |
proposition openin_clauses: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
51 |
fixes U :: "'a topology" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
52 |
shows |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
53 |
"openin U {}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
54 |
"\<And>S T. openin U S \<Longrightarrow> openin U T \<Longrightarrow> openin U (S\<inter>T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
55 |
"\<And>K. (\<forall>S \<in> K. openin U S) \<Longrightarrow> openin U (\<Union>K)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
56 |
using openin[of U] unfolding istopology_def mem_Collect_eq by fast+ |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
57 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
58 |
lemma openin_subset[intro]: "openin U S \<Longrightarrow> S \<subseteq> topspace U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
59 |
unfolding topspace_def by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
60 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
61 |
lemma openin_empty[simp]: "openin U {}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
62 |
by (rule openin_clauses) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
63 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
64 |
lemma openin_Int[intro]: "openin U S \<Longrightarrow> openin U T \<Longrightarrow> openin U (S \<inter> T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
65 |
by (rule openin_clauses) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
66 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
67 |
lemma openin_Union[intro]: "(\<And>S. S \<in> K \<Longrightarrow> openin U S) \<Longrightarrow> openin U (\<Union>K)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
68 |
using openin_clauses by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
69 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
70 |
lemma openin_Un[intro]: "openin U S \<Longrightarrow> openin U T \<Longrightarrow> openin U (S \<union> T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
71 |
using openin_Union[of "{S,T}" U] by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
72 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
73 |
lemma openin_topspace[intro, simp]: "openin U (topspace U)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
74 |
by (force simp: openin_Union topspace_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
75 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
76 |
lemma openin_subopen: "openin U S \<longleftrightarrow> (\<forall>x \<in> S. \<exists>T. openin U T \<and> x \<in> T \<and> T \<subseteq> S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
77 |
(is "?lhs \<longleftrightarrow> ?rhs") |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
78 |
proof |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
79 |
assume ?lhs |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
80 |
then show ?rhs by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
81 |
next |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
82 |
assume H: ?rhs |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
83 |
let ?t = "\<Union>{T. openin U T \<and> T \<subseteq> S}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
84 |
have "openin U ?t" by (force simp: openin_Union) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
85 |
also have "?t = S" using H by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
86 |
finally show "openin U S" . |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
87 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
88 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
89 |
lemma openin_INT [intro]: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
90 |
assumes "finite I" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
91 |
"\<And>i. i \<in> I \<Longrightarrow> openin T (U i)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
92 |
shows "openin T ((\<Inter>i \<in> I. U i) \<inter> topspace T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
93 |
using assms by (induct, auto simp: inf_sup_aci(2) openin_Int) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
94 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
95 |
lemma openin_INT2 [intro]: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
96 |
assumes "finite I" "I \<noteq> {}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
97 |
"\<And>i. i \<in> I \<Longrightarrow> openin T (U i)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
98 |
shows "openin T (\<Inter>i \<in> I. U i)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
99 |
proof - |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
100 |
have "(\<Inter>i \<in> I. U i) \<subseteq> topspace T" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
101 |
using \<open>I \<noteq> {}\<close> openin_subset[OF assms(3)] by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
102 |
then show ?thesis |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
103 |
using openin_INT[of _ _ U, OF assms(1) assms(3)] by (simp add: inf.absorb2 inf_commute) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
104 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
105 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
106 |
lemma openin_Inter [intro]: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
107 |
assumes "finite \<F>" "\<F> \<noteq> {}" "\<And>X. X \<in> \<F> \<Longrightarrow> openin T X" shows "openin T (\<Inter>\<F>)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
108 |
by (metis (full_types) assms openin_INT2 image_ident) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
109 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
110 |
lemma openin_Int_Inter: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
111 |
assumes "finite \<F>" "openin T U" "\<And>X. X \<in> \<F> \<Longrightarrow> openin T X" shows "openin T (U \<inter> \<Inter>\<F>)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
112 |
using openin_Inter [of "insert U \<F>"] assms by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
113 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
114 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
115 |
subsubsection \<open>Closed sets\<close> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
116 |
|
69600 | 117 |
definition%important closedin :: "'a topology \<Rightarrow> 'a set \<Rightarrow> bool" where |
118 |
"closedin U S \<longleftrightarrow> S \<subseteq> topspace U \<and> openin U (topspace U - S)" |
|
69544
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
119 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
120 |
lemma closedin_subset: "closedin U S \<Longrightarrow> S \<subseteq> topspace U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
121 |
by (metis closedin_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
122 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
123 |
lemma closedin_empty[simp]: "closedin U {}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
124 |
by (simp add: closedin_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
125 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
126 |
lemma closedin_topspace[intro, simp]: "closedin U (topspace U)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
127 |
by (simp add: closedin_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
128 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
129 |
lemma closedin_Un[intro]: "closedin U S \<Longrightarrow> closedin U T \<Longrightarrow> closedin U (S \<union> T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
130 |
by (auto simp: Diff_Un closedin_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
131 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
132 |
lemma Diff_Inter[intro]: "A - \<Inter>S = \<Union>{A - s|s. s\<in>S}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
133 |
by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
134 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
135 |
lemma closedin_Union: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
136 |
assumes "finite S" "\<And>T. T \<in> S \<Longrightarrow> closedin U T" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
137 |
shows "closedin U (\<Union>S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
138 |
using assms by induction auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
139 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
140 |
lemma closedin_Inter[intro]: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
141 |
assumes Ke: "K \<noteq> {}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
142 |
and Kc: "\<And>S. S \<in>K \<Longrightarrow> closedin U S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
143 |
shows "closedin U (\<Inter>K)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
144 |
using Ke Kc unfolding closedin_def Diff_Inter by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
145 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
146 |
lemma closedin_INT[intro]: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
147 |
assumes "A \<noteq> {}" "\<And>x. x \<in> A \<Longrightarrow> closedin U (B x)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
148 |
shows "closedin U (\<Inter>x\<in>A. B x)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
149 |
apply (rule closedin_Inter) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
150 |
using assms |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
151 |
apply auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
152 |
done |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
153 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
154 |
lemma closedin_Int[intro]: "closedin U S \<Longrightarrow> closedin U T \<Longrightarrow> closedin U (S \<inter> T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
155 |
using closedin_Inter[of "{S,T}" U] by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
156 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
157 |
lemma openin_closedin_eq: "openin U S \<longleftrightarrow> S \<subseteq> topspace U \<and> closedin U (topspace U - S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
158 |
apply (auto simp: closedin_def Diff_Diff_Int inf_absorb2) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
159 |
apply (metis openin_subset subset_eq) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
160 |
done |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
161 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
162 |
lemma openin_closedin: "S \<subseteq> topspace U \<Longrightarrow> (openin U S \<longleftrightarrow> closedin U (topspace U - S))" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
163 |
by (simp add: openin_closedin_eq) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
164 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
165 |
lemma openin_diff[intro]: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
166 |
assumes oS: "openin U S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
167 |
and cT: "closedin U T" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
168 |
shows "openin U (S - T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
169 |
proof - |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
170 |
have "S - T = S \<inter> (topspace U - T)" using openin_subset[of U S] oS cT |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
171 |
by (auto simp: topspace_def openin_subset) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
172 |
then show ?thesis using oS cT |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
173 |
by (auto simp: closedin_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
174 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
175 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
176 |
lemma closedin_diff[intro]: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
177 |
assumes oS: "closedin U S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
178 |
and cT: "openin U T" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
179 |
shows "closedin U (S - T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
180 |
proof - |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
181 |
have "S - T = S \<inter> (topspace U - T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
182 |
using closedin_subset[of U S] oS cT by (auto simp: topspace_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
183 |
then show ?thesis |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
184 |
using oS cT by (auto simp: openin_closedin_eq) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
185 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
186 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
187 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
188 |
subsection\<open>The discrete topology\<close> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
189 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
190 |
definition discrete_topology where "discrete_topology U \<equiv> topology (\<lambda>S. S \<subseteq> U)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
191 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
192 |
lemma openin_discrete_topology [simp]: "openin (discrete_topology U) S \<longleftrightarrow> S \<subseteq> U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
193 |
proof - |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
194 |
have "istopology (\<lambda>S. S \<subseteq> U)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
195 |
by (auto simp: istopology_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
196 |
then show ?thesis |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
197 |
by (simp add: discrete_topology_def topology_inverse') |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
198 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
199 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
200 |
lemma topspace_discrete_topology [simp]: "topspace(discrete_topology U) = U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
201 |
by (meson openin_discrete_topology openin_subset openin_topspace order_refl subset_antisym) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
202 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
203 |
lemma closedin_discrete_topology [simp]: "closedin (discrete_topology U) S \<longleftrightarrow> S \<subseteq> U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
204 |
by (simp add: closedin_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
205 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
206 |
lemma discrete_topology_unique: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
207 |
"discrete_topology U = X \<longleftrightarrow> topspace X = U \<and> (\<forall>x \<in> U. openin X {x})" (is "?lhs = ?rhs") |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
208 |
proof |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
209 |
assume R: ?rhs |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
210 |
then have "openin X S" if "S \<subseteq> U" for S |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
211 |
using openin_subopen subsetD that by fastforce |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
212 |
moreover have "x \<in> topspace X" if "openin X S" and "x \<in> S" for x S |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
213 |
using openin_subset that by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
214 |
ultimately |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
215 |
show ?lhs |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
216 |
using R by (auto simp: topology_eq) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
217 |
qed auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
218 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
219 |
lemma discrete_topology_unique_alt: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
220 |
"discrete_topology U = X \<longleftrightarrow> topspace X \<subseteq> U \<and> (\<forall>x \<in> U. openin X {x})" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
221 |
using openin_subset |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
222 |
by (auto simp: discrete_topology_unique) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
223 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
224 |
lemma subtopology_eq_discrete_topology_empty: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
225 |
"X = discrete_topology {} \<longleftrightarrow> topspace X = {}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
226 |
using discrete_topology_unique [of "{}" X] by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
227 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
228 |
lemma subtopology_eq_discrete_topology_sing: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
229 |
"X = discrete_topology {a} \<longleftrightarrow> topspace X = {a}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
230 |
by (metis discrete_topology_unique openin_topspace singletonD) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
231 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
232 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
233 |
subsection \<open>Subspace topology\<close> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
234 |
|
69600 | 235 |
definition%important subtopology :: "'a topology \<Rightarrow> 'a set \<Rightarrow> 'a topology" where |
236 |
"subtopology U V = topology (\<lambda>T. \<exists>S. T = S \<inter> V \<and> openin U S)" |
|
69544
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
237 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
238 |
lemma istopology_subtopology: "istopology (\<lambda>T. \<exists>S. T = S \<inter> V \<and> openin U S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
239 |
(is "istopology ?L") |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
240 |
proof - |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
241 |
have "?L {}" by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
242 |
{ |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
243 |
fix A B |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
244 |
assume A: "?L A" and B: "?L B" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
245 |
from A B obtain Sa and Sb where Sa: "openin U Sa" "A = Sa \<inter> V" and Sb: "openin U Sb" "B = Sb \<inter> V" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
246 |
by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
247 |
have "A \<inter> B = (Sa \<inter> Sb) \<inter> V" "openin U (Sa \<inter> Sb)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
248 |
using Sa Sb by blast+ |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
249 |
then have "?L (A \<inter> B)" by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
250 |
} |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
251 |
moreover |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
252 |
{ |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
253 |
fix K |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
254 |
assume K: "K \<subseteq> Collect ?L" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
255 |
have th0: "Collect ?L = (\<lambda>S. S \<inter> V) ` Collect (openin U)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
256 |
by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
257 |
from K[unfolded th0 subset_image_iff] |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
258 |
obtain Sk where Sk: "Sk \<subseteq> Collect (openin U)" "K = (\<lambda>S. S \<inter> V) ` Sk" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
259 |
by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
260 |
have "\<Union>K = (\<Union>Sk) \<inter> V" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
261 |
using Sk by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
262 |
moreover have "openin U (\<Union>Sk)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
263 |
using Sk by (auto simp: subset_eq) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
264 |
ultimately have "?L (\<Union>K)" by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
265 |
} |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
266 |
ultimately show ?thesis |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
267 |
unfolding subset_eq mem_Collect_eq istopology_def by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
268 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
269 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
270 |
lemma openin_subtopology: "openin (subtopology U V) S \<longleftrightarrow> (\<exists>T. openin U T \<and> S = T \<inter> V)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
271 |
unfolding subtopology_def topology_inverse'[OF istopology_subtopology] |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
272 |
by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
273 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
274 |
lemma openin_subtopology_Int: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
275 |
"openin X S \<Longrightarrow> openin (subtopology X T) (S \<inter> T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
276 |
using openin_subtopology by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
277 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
278 |
lemma openin_subtopology_Int2: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
279 |
"openin X T \<Longrightarrow> openin (subtopology X S) (S \<inter> T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
280 |
using openin_subtopology by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
281 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
282 |
lemma openin_subtopology_diff_closed: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
283 |
"\<lbrakk>S \<subseteq> topspace X; closedin X T\<rbrakk> \<Longrightarrow> openin (subtopology X S) (S - T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
284 |
unfolding closedin_def openin_subtopology |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
285 |
by (rule_tac x="topspace X - T" in exI) auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
286 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
287 |
lemma openin_relative_to: "(openin X relative_to S) = openin (subtopology X S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
288 |
by (force simp: relative_to_def openin_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
289 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
290 |
lemma topspace_subtopology: "topspace (subtopology U V) = topspace U \<inter> V" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
291 |
by (auto simp: topspace_def openin_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
292 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
293 |
lemma closedin_subtopology: "closedin (subtopology U V) S \<longleftrightarrow> (\<exists>T. closedin U T \<and> S = T \<inter> V)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
294 |
unfolding closedin_def topspace_subtopology |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
295 |
by (auto simp: openin_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
296 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
297 |
lemma openin_subtopology_refl: "openin (subtopology U V) V \<longleftrightarrow> V \<subseteq> topspace U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
298 |
unfolding openin_subtopology |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
299 |
by auto (metis IntD1 in_mono openin_subset) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
300 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
301 |
lemma subtopology_subtopology: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
302 |
"subtopology (subtopology X S) T = subtopology X (S \<inter> T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
303 |
proof - |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
304 |
have eq: "\<And>T'. (\<exists>S'. T' = S' \<inter> T \<and> (\<exists>T. openin X T \<and> S' = T \<inter> S)) = (\<exists>Sa. T' = Sa \<inter> (S \<inter> T) \<and> openin X Sa)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
305 |
by (metis inf_assoc) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
306 |
have "subtopology (subtopology X S) T = topology (\<lambda>Ta. \<exists>Sa. Ta = Sa \<inter> T \<and> openin (subtopology X S) Sa)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
307 |
by (simp add: subtopology_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
308 |
also have "\<dots> = subtopology X (S \<inter> T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
309 |
by (simp add: openin_subtopology eq) (simp add: subtopology_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
310 |
finally show ?thesis . |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
311 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
312 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
313 |
lemma openin_subtopology_alt: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
314 |
"openin (subtopology X U) S \<longleftrightarrow> S \<in> (\<lambda>T. U \<inter> T) ` Collect (openin X)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
315 |
by (simp add: image_iff inf_commute openin_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
316 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
317 |
lemma closedin_subtopology_alt: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
318 |
"closedin (subtopology X U) S \<longleftrightarrow> S \<in> (\<lambda>T. U \<inter> T) ` Collect (closedin X)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
319 |
by (simp add: image_iff inf_commute closedin_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
320 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
321 |
lemma subtopology_superset: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
322 |
assumes UV: "topspace U \<subseteq> V" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
323 |
shows "subtopology U V = U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
324 |
proof - |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
325 |
{ |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
326 |
fix S |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
327 |
{ |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
328 |
fix T |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
329 |
assume T: "openin U T" "S = T \<inter> V" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
330 |
from T openin_subset[OF T(1)] UV have eq: "S = T" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
331 |
by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
332 |
have "openin U S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
333 |
unfolding eq using T by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
334 |
} |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
335 |
moreover |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
336 |
{ |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
337 |
assume S: "openin U S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
338 |
then have "\<exists>T. openin U T \<and> S = T \<inter> V" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
339 |
using openin_subset[OF S] UV by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
340 |
} |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
341 |
ultimately have "(\<exists>T. openin U T \<and> S = T \<inter> V) \<longleftrightarrow> openin U S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
342 |
by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
343 |
} |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
344 |
then show ?thesis |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
345 |
unfolding topology_eq openin_subtopology by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
346 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
347 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
348 |
lemma subtopology_topspace[simp]: "subtopology U (topspace U) = U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
349 |
by (simp add: subtopology_superset) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
350 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
351 |
lemma subtopology_UNIV[simp]: "subtopology U UNIV = U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
352 |
by (simp add: subtopology_superset) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
353 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
354 |
lemma openin_subtopology_empty: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
355 |
"openin (subtopology U {}) S \<longleftrightarrow> S = {}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
356 |
by (metis Int_empty_right openin_empty openin_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
357 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
358 |
lemma closedin_subtopology_empty: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
359 |
"closedin (subtopology U {}) S \<longleftrightarrow> S = {}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
360 |
by (metis Int_empty_right closedin_empty closedin_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
361 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
362 |
lemma closedin_subtopology_refl [simp]: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
363 |
"closedin (subtopology U X) X \<longleftrightarrow> X \<subseteq> topspace U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
364 |
by (metis closedin_def closedin_topspace inf.absorb_iff2 le_inf_iff topspace_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
365 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
366 |
lemma closedin_topspace_empty: "topspace T = {} \<Longrightarrow> (closedin T S \<longleftrightarrow> S = {})" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
367 |
by (simp add: closedin_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
368 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
369 |
lemma openin_imp_subset: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
370 |
"openin (subtopology U S) T \<Longrightarrow> T \<subseteq> S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
371 |
by (metis Int_iff openin_subtopology subsetI) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
372 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
373 |
lemma closedin_imp_subset: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
374 |
"closedin (subtopology U S) T \<Longrightarrow> T \<subseteq> S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
375 |
by (simp add: closedin_def topspace_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
376 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
377 |
lemma openin_open_subtopology: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
378 |
"openin X S \<Longrightarrow> openin (subtopology X S) T \<longleftrightarrow> openin X T \<and> T \<subseteq> S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
379 |
by (metis inf.orderE openin_Int openin_imp_subset openin_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
380 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
381 |
lemma closedin_closed_subtopology: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
382 |
"closedin X S \<Longrightarrow> (closedin (subtopology X S) T \<longleftrightarrow> closedin X T \<and> T \<subseteq> S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
383 |
by (metis closedin_Int closedin_imp_subset closedin_subtopology inf.orderE) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
384 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
385 |
lemma openin_subtopology_Un: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
386 |
"\<lbrakk>openin (subtopology X T) S; openin (subtopology X U) S\<rbrakk> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
387 |
\<Longrightarrow> openin (subtopology X (T \<union> U)) S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
388 |
by (simp add: openin_subtopology) blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
389 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
390 |
lemma closedin_subtopology_Un: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
391 |
"\<lbrakk>closedin (subtopology X T) S; closedin (subtopology X U) S\<rbrakk> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
392 |
\<Longrightarrow> closedin (subtopology X (T \<union> U)) S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
393 |
by (simp add: closedin_subtopology) blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
394 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
395 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
396 |
subsection \<open>The standard Euclidean topology\<close> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
397 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
398 |
definition%important euclidean :: "'a::topological_space topology" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
399 |
where "euclidean = topology open" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
400 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
401 |
lemma open_openin: "open S \<longleftrightarrow> openin euclidean S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
402 |
unfolding euclidean_def |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
403 |
apply (rule cong[where x=S and y=S]) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
404 |
apply (rule topology_inverse[symmetric]) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
405 |
apply (auto simp: istopology_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
406 |
done |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
407 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
408 |
declare open_openin [symmetric, simp] |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
409 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
410 |
lemma topspace_euclidean [simp]: "topspace euclidean = UNIV" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
411 |
by (force simp: topspace_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
412 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
413 |
lemma topspace_euclidean_subtopology[simp]: "topspace (subtopology euclidean S) = S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
414 |
by (simp add: topspace_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
415 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
416 |
lemma closed_closedin: "closed S \<longleftrightarrow> closedin euclidean S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
417 |
by (simp add: closed_def closedin_def Compl_eq_Diff_UNIV) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
418 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
419 |
declare closed_closedin [symmetric, simp] |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
420 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
421 |
lemma openin_subtopology_self [simp]: "openin (subtopology euclidean S) S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
422 |
by (metis openin_topspace topspace_euclidean_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
423 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
424 |
subsubsection\<open>The most basic facts about the usual topology and metric on R\<close> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
425 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
426 |
abbreviation euclideanreal :: "real topology" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
427 |
where "euclideanreal \<equiv> topology open" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
428 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
429 |
lemma real_openin [simp]: "openin euclideanreal S = open S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
430 |
by (simp add: euclidean_def open_openin) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
431 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
432 |
lemma topspace_euclideanreal [simp]: "topspace euclideanreal = UNIV" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
433 |
using openin_subset open_UNIV real_openin by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
434 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
435 |
lemma topspace_euclideanreal_subtopology [simp]: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
436 |
"topspace (subtopology euclideanreal S) = S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
437 |
by (simp add: topspace_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
438 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
439 |
lemma real_closedin [simp]: "closedin euclideanreal S = closed S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
440 |
by (simp add: closed_closedin euclidean_def) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
441 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
442 |
subsection \<open>Basic "localization" results are handy for connectedness.\<close> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
443 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
444 |
lemma openin_open: "openin (subtopology euclidean U) S \<longleftrightarrow> (\<exists>T. open T \<and> (S = U \<inter> T))" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
445 |
by (auto simp: openin_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
446 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
447 |
lemma openin_Int_open: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
448 |
"\<lbrakk>openin (subtopology euclidean U) S; open T\<rbrakk> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
449 |
\<Longrightarrow> openin (subtopology euclidean U) (S \<inter> T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
450 |
by (metis open_Int Int_assoc openin_open) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
451 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
452 |
lemma openin_open_Int[intro]: "open S \<Longrightarrow> openin (subtopology euclidean U) (U \<inter> S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
453 |
by (auto simp: openin_open) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
454 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
455 |
lemma open_openin_trans[trans]: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
456 |
"open S \<Longrightarrow> open T \<Longrightarrow> T \<subseteq> S \<Longrightarrow> openin (subtopology euclidean S) T" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
457 |
by (metis Int_absorb1 openin_open_Int) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
458 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
459 |
lemma open_subset: "S \<subseteq> T \<Longrightarrow> open S \<Longrightarrow> openin (subtopology euclidean T) S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
460 |
by (auto simp: openin_open) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
461 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
462 |
lemma closedin_closed: "closedin (subtopology euclidean U) S \<longleftrightarrow> (\<exists>T. closed T \<and> S = U \<inter> T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
463 |
by (simp add: closedin_subtopology Int_ac) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
464 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
465 |
lemma closedin_closed_Int: "closed S \<Longrightarrow> closedin (subtopology euclidean U) (U \<inter> S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
466 |
by (metis closedin_closed) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
467 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
468 |
lemma closed_subset: "S \<subseteq> T \<Longrightarrow> closed S \<Longrightarrow> closedin (subtopology euclidean T) S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
469 |
by (auto simp: closedin_closed) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
470 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
471 |
lemma closedin_closed_subset: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
472 |
"\<lbrakk>closedin (subtopology euclidean U) V; T \<subseteq> U; S = V \<inter> T\<rbrakk> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
473 |
\<Longrightarrow> closedin (subtopology euclidean T) S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
474 |
by (metis (no_types, lifting) Int_assoc Int_commute closedin_closed inf.orderE) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
475 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
476 |
lemma finite_imp_closedin: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
477 |
fixes S :: "'a::t1_space set" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
478 |
shows "\<lbrakk>finite S; S \<subseteq> T\<rbrakk> \<Longrightarrow> closedin (subtopology euclidean T) S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
479 |
by (simp add: finite_imp_closed closed_subset) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
480 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
481 |
lemma closedin_singleton [simp]: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
482 |
fixes a :: "'a::t1_space" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
483 |
shows "closedin (subtopology euclidean U) {a} \<longleftrightarrow> a \<in> U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
484 |
using closedin_subset by (force intro: closed_subset) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
485 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
486 |
lemma openin_euclidean_subtopology_iff: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
487 |
fixes S U :: "'a::metric_space set" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
488 |
shows "openin (subtopology euclidean U) S \<longleftrightarrow> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
489 |
S \<subseteq> U \<and> (\<forall>x\<in>S. \<exists>e>0. \<forall>x'\<in>U. dist x' x < e \<longrightarrow> x'\<in> S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
490 |
(is "?lhs \<longleftrightarrow> ?rhs") |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
491 |
proof |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
492 |
assume ?lhs |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
493 |
then show ?rhs |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
494 |
unfolding openin_open open_dist by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
495 |
next |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
496 |
define T where "T = {x. \<exists>a\<in>S. \<exists>d>0. (\<forall>y\<in>U. dist y a < d \<longrightarrow> y \<in> S) \<and> dist x a < d}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
497 |
have 1: "\<forall>x\<in>T. \<exists>e>0. \<forall>y. dist y x < e \<longrightarrow> y \<in> T" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
498 |
unfolding T_def |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
499 |
apply clarsimp |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
500 |
apply (rule_tac x="d - dist x a" in exI) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
501 |
apply (clarsimp simp add: less_diff_eq) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
502 |
by (metis dist_commute dist_triangle_lt) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
503 |
assume ?rhs then have 2: "S = U \<inter> T" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
504 |
unfolding T_def |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
505 |
by auto (metis dist_self) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
506 |
from 1 2 show ?lhs |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
507 |
unfolding openin_open open_dist by fast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
508 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
509 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
510 |
lemma connected_openin: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
511 |
"connected S \<longleftrightarrow> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
512 |
\<not>(\<exists>E1 E2. openin (subtopology euclidean S) E1 \<and> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
513 |
openin (subtopology euclidean S) E2 \<and> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
514 |
S \<subseteq> E1 \<union> E2 \<and> E1 \<inter> E2 = {} \<and> E1 \<noteq> {} \<and> E2 \<noteq> {})" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
515 |
apply (simp add: connected_def openin_open disjoint_iff_not_equal, safe) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
516 |
by (simp_all, blast+) (* SLOW *) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
517 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
518 |
lemma connected_openin_eq: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
519 |
"connected S \<longleftrightarrow> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
520 |
\<not>(\<exists>E1 E2. openin (subtopology euclidean S) E1 \<and> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
521 |
openin (subtopology euclidean S) E2 \<and> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
522 |
E1 \<union> E2 = S \<and> E1 \<inter> E2 = {} \<and> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
523 |
E1 \<noteq> {} \<and> E2 \<noteq> {})" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
524 |
apply (simp add: connected_openin, safe, blast) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
525 |
by (metis Int_lower1 Un_subset_iff openin_open subset_antisym) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
526 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
527 |
lemma connected_closedin: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
528 |
"connected S \<longleftrightarrow> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
529 |
(\<nexists>E1 E2. |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
530 |
closedin (subtopology euclidean S) E1 \<and> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
531 |
closedin (subtopology euclidean S) E2 \<and> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
532 |
S \<subseteq> E1 \<union> E2 \<and> E1 \<inter> E2 = {} \<and> E1 \<noteq> {} \<and> E2 \<noteq> {})" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
533 |
(is "?lhs = ?rhs") |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
534 |
proof |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
535 |
assume ?lhs |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
536 |
then show ?rhs |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
537 |
by (auto simp add: connected_closed closedin_closed) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
538 |
next |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
539 |
assume R: ?rhs |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
540 |
then show ?lhs |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
541 |
proof (clarsimp simp add: connected_closed closedin_closed) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
542 |
fix A B |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
543 |
assume s_sub: "S \<subseteq> A \<union> B" "B \<inter> S \<noteq> {}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
544 |
and disj: "A \<inter> B \<inter> S = {}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
545 |
and cl: "closed A" "closed B" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
546 |
have "S \<inter> (A \<union> B) = S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
547 |
using s_sub(1) by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
548 |
have "S - A = B \<inter> S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
549 |
using Diff_subset_conv Un_Diff_Int disj s_sub(1) by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
550 |
then have "S \<inter> A = {}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
551 |
by (metis Diff_Diff_Int Diff_disjoint Un_Diff_Int R cl closedin_closed_Int inf_commute order_refl s_sub(2)) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
552 |
then show "A \<inter> S = {}" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
553 |
by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
554 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
555 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
556 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
557 |
lemma connected_closedin_eq: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
558 |
"connected S \<longleftrightarrow> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
559 |
\<not>(\<exists>E1 E2. |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
560 |
closedin (subtopology euclidean S) E1 \<and> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
561 |
closedin (subtopology euclidean S) E2 \<and> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
562 |
E1 \<union> E2 = S \<and> E1 \<inter> E2 = {} \<and> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
563 |
E1 \<noteq> {} \<and> E2 \<noteq> {})" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
564 |
apply (simp add: connected_closedin, safe, blast) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
565 |
by (metis Int_lower1 Un_subset_iff closedin_closed subset_antisym) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
566 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
567 |
text \<open>These "transitivity" results are handy too\<close> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
568 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
569 |
lemma openin_trans[trans]: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
570 |
"openin (subtopology euclidean T) S \<Longrightarrow> openin (subtopology euclidean U) T \<Longrightarrow> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
571 |
openin (subtopology euclidean U) S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
572 |
unfolding open_openin openin_open by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
573 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
574 |
lemma openin_open_trans: "openin (subtopology euclidean T) S \<Longrightarrow> open T \<Longrightarrow> open S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
575 |
by (auto simp: openin_open intro: openin_trans) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
576 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
577 |
lemma closedin_trans[trans]: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
578 |
"closedin (subtopology euclidean T) S \<Longrightarrow> closedin (subtopology euclidean U) T \<Longrightarrow> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
579 |
closedin (subtopology euclidean U) S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
580 |
by (auto simp: closedin_closed closed_Inter Int_assoc) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
581 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
582 |
lemma closedin_closed_trans: "closedin (subtopology euclidean T) S \<Longrightarrow> closed T \<Longrightarrow> closed S" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
583 |
by (auto simp: closedin_closed intro: closedin_trans) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
584 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
585 |
lemma openin_subtopology_Int_subset: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
586 |
"\<lbrakk>openin (subtopology euclidean u) (u \<inter> S); v \<subseteq> u\<rbrakk> \<Longrightarrow> openin (subtopology euclidean v) (v \<inter> S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
587 |
by (auto simp: openin_subtopology) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
588 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
589 |
lemma openin_open_eq: "open s \<Longrightarrow> (openin (subtopology euclidean s) t \<longleftrightarrow> open t \<and> t \<subseteq> s)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
590 |
using open_subset openin_open_trans openin_subset by fastforce |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
591 |
|
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
592 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
593 |
subsection\<open>Derived set (set of limit points)\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
594 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
595 |
definition derived_set_of :: "'a topology \<Rightarrow> 'a set \<Rightarrow> 'a set" (infixl "derived'_set'_of" 80) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
596 |
where "X derived_set_of S \<equiv> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
597 |
{x \<in> topspace X. |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
598 |
(\<forall>T. x \<in> T \<and> openin X T \<longrightarrow> (\<exists>y\<noteq>x. y \<in> S \<and> y \<in> T))}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
599 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
600 |
lemma derived_set_of_restrict: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
601 |
"X derived_set_of (topspace X \<inter> S) = X derived_set_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
602 |
by (simp add: derived_set_of_def) (metis openin_subset subset_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
603 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
604 |
lemma in_derived_set_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
605 |
"x \<in> X derived_set_of S \<longleftrightarrow> x \<in> topspace X \<and> (\<forall>T. x \<in> T \<and> openin X T \<longrightarrow> (\<exists>y\<noteq>x. y \<in> S \<and> y \<in> T))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
606 |
by (simp add: derived_set_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
607 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
608 |
lemma derived_set_of_subset_topspace: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
609 |
"X derived_set_of S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
610 |
by (auto simp add: derived_set_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
611 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
612 |
lemma derived_set_of_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
613 |
"(subtopology X U) derived_set_of S = U \<inter> (X derived_set_of (U \<inter> S))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
614 |
by (simp add: derived_set_of_def openin_subtopology topspace_subtopology) blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
615 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
616 |
lemma derived_set_of_subset_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
617 |
"(subtopology X S) derived_set_of T \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
618 |
by (simp add: derived_set_of_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
619 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
620 |
lemma derived_set_of_empty [simp]: "X derived_set_of {} = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
621 |
by (auto simp: derived_set_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
622 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
623 |
lemma derived_set_of_mono: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
624 |
"S \<subseteq> T \<Longrightarrow> X derived_set_of S \<subseteq> X derived_set_of T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
625 |
unfolding derived_set_of_def by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
626 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
627 |
lemma derived_set_of_union: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
628 |
"X derived_set_of (S \<union> T) = X derived_set_of S \<union> X derived_set_of T" (is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
629 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
630 |
show "?lhs \<subseteq> ?rhs" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
631 |
apply (clarsimp simp: in_derived_set_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
632 |
by (metis IntE IntI openin_Int) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
633 |
show "?rhs \<subseteq> ?lhs" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
634 |
by (simp add: derived_set_of_mono) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
635 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
636 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
637 |
lemma derived_set_of_unions: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
638 |
"finite \<F> \<Longrightarrow> X derived_set_of (\<Union>\<F>) = (\<Union>S \<in> \<F>. X derived_set_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
639 |
proof (induction \<F> rule: finite_induct) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
640 |
case (insert S \<F>) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
641 |
then show ?case |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
642 |
by (simp add: derived_set_of_union) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
643 |
qed auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
644 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
645 |
lemma derived_set_of_topspace: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
646 |
"X derived_set_of (topspace X) = {x \<in> topspace X. \<not> openin X {x}}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
647 |
apply (auto simp: in_derived_set_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
648 |
by (metis Set.set_insert all_not_in_conv insertCI openin_subset subsetCE) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
649 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
650 |
lemma discrete_topology_unique_derived_set: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
651 |
"discrete_topology U = X \<longleftrightarrow> topspace X = U \<and> X derived_set_of U = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
652 |
by (auto simp: discrete_topology_unique derived_set_of_topspace) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
653 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
654 |
lemma subtopology_eq_discrete_topology_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
655 |
"subtopology X U = discrete_topology U \<longleftrightarrow> U \<subseteq> topspace X \<and> U \<inter> X derived_set_of U = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
656 |
using discrete_topology_unique_derived_set [of U "subtopology X U"] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
657 |
by (auto simp: eq_commute topspace_subtopology derived_set_of_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
658 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
659 |
lemma subtopology_eq_discrete_topology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
660 |
"S \<subseteq> topspace X \<and> S \<inter> X derived_set_of S = {} |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
661 |
\<Longrightarrow> subtopology X S = discrete_topology S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
662 |
by (simp add: subtopology_eq_discrete_topology_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
663 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
664 |
lemma subtopology_eq_discrete_topology_gen: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
665 |
"S \<inter> X derived_set_of S = {} \<Longrightarrow> subtopology X S = discrete_topology(topspace X \<inter> S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
666 |
by (metis Int_lower1 derived_set_of_restrict inf_assoc inf_bot_right subtopology_eq_discrete_topology_eq subtopology_subtopology subtopology_topspace) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
667 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
668 |
lemma openin_Int_derived_set_of_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
669 |
"openin X S \<Longrightarrow> S \<inter> X derived_set_of T \<subseteq> X derived_set_of (S \<inter> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
670 |
by (auto simp: derived_set_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
671 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
672 |
lemma openin_Int_derived_set_of_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
673 |
"openin X S \<Longrightarrow> S \<inter> X derived_set_of T = S \<inter> X derived_set_of (S \<inter> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
674 |
apply auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
675 |
apply (meson IntI openin_Int_derived_set_of_subset subsetCE) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
676 |
by (meson derived_set_of_mono inf_sup_ord(2) subset_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
677 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
678 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
679 |
subsection\<open> Closure with respect to a topological space\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
680 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
681 |
definition closure_of :: "'a topology \<Rightarrow> 'a set \<Rightarrow> 'a set" (infixr "closure'_of" 80) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
682 |
where "X closure_of S \<equiv> {x \<in> topspace X. \<forall>T. x \<in> T \<and> openin X T \<longrightarrow> (\<exists>y \<in> S. y \<in> T)}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
683 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
684 |
lemma closure_of_restrict: "X closure_of S = X closure_of (topspace X \<inter> S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
685 |
unfolding closure_of_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
686 |
apply safe |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
687 |
apply (meson IntI openin_subset subset_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
688 |
by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
689 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
690 |
lemma in_closure_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
691 |
"x \<in> X closure_of S \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
692 |
x \<in> topspace X \<and> (\<forall>T. x \<in> T \<and> openin X T \<longrightarrow> (\<exists>y. y \<in> S \<and> y \<in> T))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
693 |
by (auto simp: closure_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
694 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
695 |
lemma closure_of: "X closure_of S = topspace X \<inter> (S \<union> X derived_set_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
696 |
by (fastforce simp: in_closure_of in_derived_set_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
697 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
698 |
lemma closure_of_alt: "X closure_of S = topspace X \<inter> S \<union> X derived_set_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
699 |
using derived_set_of_subset_topspace [of X S] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
700 |
unfolding closure_of_def in_derived_set_of |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
701 |
by safe (auto simp: in_derived_set_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
702 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
703 |
lemma derived_set_of_subset_closure_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
704 |
"X derived_set_of S \<subseteq> X closure_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
705 |
by (fastforce simp: closure_of_def in_derived_set_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
706 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
707 |
lemma closure_of_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
708 |
"(subtopology X U) closure_of S = U \<inter> (X closure_of (U \<inter> S))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
709 |
unfolding closure_of_def topspace_subtopology openin_subtopology |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
710 |
by safe (metis (full_types) IntI Int_iff inf.commute)+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
711 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
712 |
lemma closure_of_empty [simp]: "X closure_of {} = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
713 |
by (simp add: closure_of_alt) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
714 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
715 |
lemma closure_of_topspace [simp]: "X closure_of topspace X = topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
716 |
by (simp add: closure_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
717 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
718 |
lemma closure_of_UNIV [simp]: "X closure_of UNIV = topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
719 |
by (simp add: closure_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
720 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
721 |
lemma closure_of_subset_topspace: "X closure_of S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
722 |
by (simp add: closure_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
723 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
724 |
lemma closure_of_subset_subtopology: "(subtopology X S) closure_of T \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
725 |
by (simp add: closure_of_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
726 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
727 |
lemma closure_of_mono: "S \<subseteq> T \<Longrightarrow> X closure_of S \<subseteq> X closure_of T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
728 |
by (fastforce simp add: closure_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
729 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
730 |
lemma closure_of_subtopology_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
731 |
"(subtopology X U) closure_of S \<subseteq> (X closure_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
732 |
unfolding closure_of_subtopology |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
733 |
by clarsimp (meson closure_of_mono contra_subsetD inf.cobounded2) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
734 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
735 |
lemma closure_of_subtopology_mono: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
736 |
"T \<subseteq> U \<Longrightarrow> (subtopology X T) closure_of S \<subseteq> (subtopology X U) closure_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
737 |
unfolding closure_of_subtopology |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
738 |
by auto (meson closure_of_mono inf_mono subset_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
739 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
740 |
lemma closure_of_Un [simp]: "X closure_of (S \<union> T) = X closure_of S \<union> X closure_of T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
741 |
by (simp add: Un_assoc Un_left_commute closure_of_alt derived_set_of_union inf_sup_distrib1) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
742 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
743 |
lemma closure_of_Union: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
744 |
"finite \<F> \<Longrightarrow> X closure_of (\<Union>\<F>) = (\<Union>S \<in> \<F>. X closure_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
745 |
by (induction \<F> rule: finite_induct) auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
746 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
747 |
lemma closure_of_subset: "S \<subseteq> topspace X \<Longrightarrow> S \<subseteq> X closure_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
748 |
by (auto simp: closure_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
749 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
750 |
lemma closure_of_subset_Int: "topspace X \<inter> S \<subseteq> X closure_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
751 |
by (auto simp: closure_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
752 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
753 |
lemma closure_of_subset_eq: "S \<subseteq> topspace X \<and> X closure_of S \<subseteq> S \<longleftrightarrow> closedin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
754 |
proof (cases "S \<subseteq> topspace X") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
755 |
case True |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
756 |
then have "\<forall>x. x \<in> topspace X \<and> (\<forall>T. x \<in> T \<and> openin X T \<longrightarrow> (\<exists>y\<in>S. y \<in> T)) \<longrightarrow> x \<in> S |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
757 |
\<Longrightarrow> openin X (topspace X - S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
758 |
apply (subst openin_subopen, safe) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
759 |
by (metis DiffI subset_eq openin_subset [of X]) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
760 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
761 |
by (auto simp: closedin_def closure_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
762 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
763 |
case False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
764 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
765 |
by (simp add: closedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
766 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
767 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
768 |
lemma closure_of_eq: "X closure_of S = S \<longleftrightarrow> closedin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
769 |
proof (cases "S \<subseteq> topspace X") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
770 |
case True |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
771 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
772 |
by (metis closure_of_subset closure_of_subset_eq set_eq_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
773 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
774 |
case False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
775 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
776 |
using closure_of closure_of_subset_eq by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
777 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
778 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
779 |
lemma closedin_contains_derived_set: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
780 |
"closedin X S \<longleftrightarrow> X derived_set_of S \<subseteq> S \<and> S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
781 |
proof (intro iffI conjI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
782 |
show "closedin X S \<Longrightarrow> X derived_set_of S \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
783 |
using closure_of_eq derived_set_of_subset_closure_of by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
784 |
show "closedin X S \<Longrightarrow> S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
785 |
using closedin_subset by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
786 |
show "X derived_set_of S \<subseteq> S \<and> S \<subseteq> topspace X \<Longrightarrow> closedin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
787 |
by (metis closure_of closure_of_eq inf.absorb_iff2 sup.orderE) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
788 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
789 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
790 |
lemma derived_set_subset_gen: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
791 |
"X derived_set_of S \<subseteq> S \<longleftrightarrow> closedin X (topspace X \<inter> S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
792 |
by (simp add: closedin_contains_derived_set derived_set_of_restrict derived_set_of_subset_topspace) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
793 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
794 |
lemma derived_set_subset: "S \<subseteq> topspace X \<Longrightarrow> (X derived_set_of S \<subseteq> S \<longleftrightarrow> closedin X S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
795 |
by (simp add: closedin_contains_derived_set) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
796 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
797 |
lemma closedin_derived_set: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
798 |
"closedin (subtopology X T) S \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
799 |
S \<subseteq> topspace X \<and> S \<subseteq> T \<and> (\<forall>x. x \<in> X derived_set_of S \<and> x \<in> T \<longrightarrow> x \<in> S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
800 |
by (auto simp: closedin_contains_derived_set topspace_subtopology derived_set_of_subtopology Int_absorb1) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
801 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
802 |
lemma closedin_Int_closure_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
803 |
"closedin (subtopology X S) T \<longleftrightarrow> S \<inter> X closure_of T = T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
804 |
by (metis Int_left_absorb closure_of_eq closure_of_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
805 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
806 |
lemma closure_of_closedin: "closedin X S \<Longrightarrow> X closure_of S = S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
807 |
by (simp add: closure_of_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
808 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
809 |
lemma closure_of_eq_diff: "X closure_of S = topspace X - \<Union>{T. openin X T \<and> disjnt S T}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
810 |
by (auto simp: closure_of_def disjnt_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
811 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
812 |
lemma closedin_closure_of [simp]: "closedin X (X closure_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
813 |
unfolding closure_of_eq_diff by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
814 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
815 |
lemma closure_of_closure_of [simp]: "X closure_of (X closure_of S) = X closure_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
816 |
by (simp add: closure_of_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
817 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
818 |
lemma closure_of_hull: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
819 |
assumes "S \<subseteq> topspace X" shows "X closure_of S = (closedin X) hull S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
820 |
proof (rule hull_unique [THEN sym]) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
821 |
show "S \<subseteq> X closure_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
822 |
by (simp add: closure_of_subset assms) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
823 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
824 |
show "closedin X (X closure_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
825 |
by simp |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
826 |
show "\<And>T. \<lbrakk>S \<subseteq> T; closedin X T\<rbrakk> \<Longrightarrow> X closure_of S \<subseteq> T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
827 |
by (metis closure_of_eq closure_of_mono) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
828 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
829 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
830 |
lemma closure_of_minimal: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
831 |
"\<lbrakk>S \<subseteq> T; closedin X T\<rbrakk> \<Longrightarrow> (X closure_of S) \<subseteq> T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
832 |
by (metis closure_of_eq closure_of_mono) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
833 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
834 |
lemma closure_of_minimal_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
835 |
"\<lbrakk>S \<subseteq> topspace X; closedin X T\<rbrakk> \<Longrightarrow> (X closure_of S) \<subseteq> T \<longleftrightarrow> S \<subseteq> T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
836 |
by (meson closure_of_minimal closure_of_subset subset_trans) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
837 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
838 |
lemma closure_of_unique: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
839 |
"\<lbrakk>S \<subseteq> T; closedin X T; |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
840 |
\<And>T'. \<lbrakk>S \<subseteq> T'; closedin X T'\<rbrakk> \<Longrightarrow> T \<subseteq> T'\<rbrakk> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
841 |
\<Longrightarrow> X closure_of S = T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
842 |
by (meson closedin_closure_of closedin_subset closure_of_minimal closure_of_subset eq_iff order.trans) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
843 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
844 |
lemma closure_of_eq_empty_gen: "X closure_of S = {} \<longleftrightarrow> disjnt (topspace X) S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
845 |
unfolding disjnt_def closure_of_restrict [where S=S] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
846 |
using closure_of by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
847 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
848 |
lemma closure_of_eq_empty: "S \<subseteq> topspace X \<Longrightarrow> X closure_of S = {} \<longleftrightarrow> S = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
849 |
using closure_of_subset by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
850 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
851 |
lemma openin_Int_closure_of_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
852 |
assumes "openin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
853 |
shows "S \<inter> X closure_of T \<subseteq> X closure_of (S \<inter> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
854 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
855 |
have "S \<inter> X derived_set_of T = S \<inter> X derived_set_of (S \<inter> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
856 |
by (meson assms openin_Int_derived_set_of_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
857 |
moreover have "S \<inter> (S \<inter> T) = S \<inter> T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
858 |
by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
859 |
ultimately show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
860 |
by (metis closure_of_alt inf.cobounded2 inf_left_commute inf_sup_distrib1) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
861 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
862 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
863 |
lemma closure_of_openin_Int_closure_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
864 |
assumes "openin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
865 |
shows "X closure_of (S \<inter> X closure_of T) = X closure_of (S \<inter> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
866 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
867 |
show "X closure_of (S \<inter> X closure_of T) \<subseteq> X closure_of (S \<inter> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
868 |
by (simp add: assms closure_of_minimal openin_Int_closure_of_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
869 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
870 |
show "X closure_of (S \<inter> T) \<subseteq> X closure_of (S \<inter> X closure_of T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
871 |
by (metis Int_lower1 Int_subset_iff assms closedin_closure_of closure_of_minimal_eq closure_of_mono inf_le2 le_infI1 openin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
872 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
873 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
874 |
lemma openin_Int_closure_of_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
875 |
"openin X S \<Longrightarrow> S \<inter> X closure_of T = S \<inter> X closure_of (S \<inter> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
876 |
apply (rule equalityI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
877 |
apply (simp add: openin_Int_closure_of_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
878 |
by (meson closure_of_mono inf.cobounded2 inf_mono subset_refl) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
879 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
880 |
lemma openin_Int_closure_of_eq_empty: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
881 |
"openin X S \<Longrightarrow> S \<inter> X closure_of T = {} \<longleftrightarrow> S \<inter> T = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
882 |
apply (subst openin_Int_closure_of_eq, auto) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
883 |
by (meson IntI closure_of_subset_Int disjoint_iff_not_equal openin_subset subset_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
884 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
885 |
lemma closure_of_openin_Int_superset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
886 |
"openin X S \<and> S \<subseteq> X closure_of T |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
887 |
\<Longrightarrow> X closure_of (S \<inter> T) = X closure_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
888 |
by (metis closure_of_openin_Int_closure_of inf.orderE) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
889 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
890 |
lemma closure_of_openin_subtopology_Int_closure_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
891 |
assumes S: "openin (subtopology X U) S" and "T \<subseteq> U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
892 |
shows "X closure_of (S \<inter> X closure_of T) = X closure_of (S \<inter> T)" (is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
893 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
894 |
obtain S0 where S0: "openin X S0" "S = S0 \<inter> U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
895 |
using assms by (auto simp: openin_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
896 |
show "?lhs \<subseteq> ?rhs" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
897 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
898 |
have "S0 \<inter> X closure_of T = S0 \<inter> X closure_of (S0 \<inter> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
899 |
by (meson S0(1) openin_Int_closure_of_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
900 |
moreover have "S0 \<inter> T = S0 \<inter> U \<inter> T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
901 |
using \<open>T \<subseteq> U\<close> by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
902 |
ultimately have "S \<inter> X closure_of T \<subseteq> X closure_of (S \<inter> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
903 |
using S0(2) by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
904 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
905 |
by (meson closedin_closure_of closure_of_minimal) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
906 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
907 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
908 |
show "?rhs \<subseteq> ?lhs" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
909 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
910 |
have "T \<inter> S \<subseteq> T \<union> X derived_set_of T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
911 |
by force |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
912 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
913 |
by (metis Int_subset_iff S closure_of closure_of_mono inf.cobounded2 inf.coboundedI2 inf_commute openin_closedin_eq topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
914 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
915 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
916 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
917 |
lemma closure_of_subtopology_open: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
918 |
"openin X U \<or> S \<subseteq> U \<Longrightarrow> (subtopology X U) closure_of S = U \<inter> X closure_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
919 |
by (metis closure_of_subtopology inf_absorb2 openin_Int_closure_of_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
920 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
921 |
lemma discrete_topology_closure_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
922 |
"(discrete_topology U) closure_of S = U \<inter> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
923 |
by (metis closedin_discrete_topology closure_of_restrict closure_of_unique discrete_topology_unique inf_sup_ord(1) order_refl) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
924 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
925 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
926 |
text\<open> Interior with respect to a topological space. \<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
927 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
928 |
definition interior_of :: "'a topology \<Rightarrow> 'a set \<Rightarrow> 'a set" (infixr "interior'_of" 80) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
929 |
where "X interior_of S \<equiv> {x. \<exists>T. openin X T \<and> x \<in> T \<and> T \<subseteq> S}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
930 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
931 |
lemma interior_of_restrict: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
932 |
"X interior_of S = X interior_of (topspace X \<inter> S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
933 |
using openin_subset by (auto simp: interior_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
934 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
935 |
lemma interior_of_eq: "(X interior_of S = S) \<longleftrightarrow> openin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
936 |
unfolding interior_of_def using openin_subopen by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
937 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
938 |
lemma interior_of_openin: "openin X S \<Longrightarrow> X interior_of S = S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
939 |
by (simp add: interior_of_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
940 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
941 |
lemma interior_of_empty [simp]: "X interior_of {} = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
942 |
by (simp add: interior_of_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
943 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
944 |
lemma interior_of_topspace [simp]: "X interior_of (topspace X) = topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
945 |
by (simp add: interior_of_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
946 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
947 |
lemma openin_interior_of [simp]: "openin X (X interior_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
948 |
unfolding interior_of_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
949 |
using openin_subopen by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
950 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
951 |
lemma interior_of_interior_of [simp]: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
952 |
"X interior_of X interior_of S = X interior_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
953 |
by (simp add: interior_of_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
954 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
955 |
lemma interior_of_subset: "X interior_of S \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
956 |
by (auto simp: interior_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
957 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
958 |
lemma interior_of_subset_closure_of: "X interior_of S \<subseteq> X closure_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
959 |
by (metis closure_of_subset_Int dual_order.trans interior_of_restrict interior_of_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
960 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
961 |
lemma subset_interior_of_eq: "S \<subseteq> X interior_of S \<longleftrightarrow> openin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
962 |
by (metis interior_of_eq interior_of_subset subset_antisym) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
963 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
964 |
lemma interior_of_mono: "S \<subseteq> T \<Longrightarrow> X interior_of S \<subseteq> X interior_of T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
965 |
by (auto simp: interior_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
966 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
967 |
lemma interior_of_maximal: "\<lbrakk>T \<subseteq> S; openin X T\<rbrakk> \<Longrightarrow> T \<subseteq> X interior_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
968 |
by (auto simp: interior_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
969 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
970 |
lemma interior_of_maximal_eq: "openin X T \<Longrightarrow> T \<subseteq> X interior_of S \<longleftrightarrow> T \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
971 |
by (meson interior_of_maximal interior_of_subset order_trans) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
972 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
973 |
lemma interior_of_unique: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
974 |
"\<lbrakk>T \<subseteq> S; openin X T; \<And>T'. \<lbrakk>T' \<subseteq> S; openin X T'\<rbrakk> \<Longrightarrow> T' \<subseteq> T\<rbrakk> \<Longrightarrow> X interior_of S = T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
975 |
by (simp add: interior_of_maximal_eq interior_of_subset subset_antisym) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
976 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
977 |
lemma interior_of_subset_topspace: "X interior_of S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
978 |
by (simp add: openin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
979 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
980 |
lemma interior_of_subset_subtopology: "(subtopology X S) interior_of T \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
981 |
by (meson openin_imp_subset openin_interior_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
982 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
983 |
lemma interior_of_Int: "X interior_of (S \<inter> T) = X interior_of S \<inter> X interior_of T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
984 |
apply (rule equalityI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
985 |
apply (simp add: interior_of_mono) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
986 |
apply (auto simp: interior_of_maximal_eq openin_Int interior_of_subset le_infI1 le_infI2) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
987 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
988 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
989 |
lemma interior_of_Inter_subset: "X interior_of (\<Inter>\<F>) \<subseteq> (\<Inter>S \<in> \<F>. X interior_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
990 |
by (simp add: INT_greatest Inf_lower interior_of_mono) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
991 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
992 |
lemma union_interior_of_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
993 |
"X interior_of S \<union> X interior_of T \<subseteq> X interior_of (S \<union> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
994 |
by (simp add: interior_of_mono) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
995 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
996 |
lemma interior_of_eq_empty: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
997 |
"X interior_of S = {} \<longleftrightarrow> (\<forall>T. openin X T \<and> T \<subseteq> S \<longrightarrow> T = {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
998 |
by (metis bot.extremum_uniqueI interior_of_maximal interior_of_subset openin_interior_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
999 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1000 |
lemma interior_of_eq_empty_alt: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1001 |
"X interior_of S = {} \<longleftrightarrow> (\<forall>T. openin X T \<and> T \<noteq> {} \<longrightarrow> T - S \<noteq> {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1002 |
by (auto simp: interior_of_eq_empty) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1003 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1004 |
lemma interior_of_Union_openin_subsets: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1005 |
"\<Union>{T. openin X T \<and> T \<subseteq> S} = X interior_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1006 |
by (rule interior_of_unique [symmetric]) auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1007 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1008 |
lemma interior_of_complement: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1009 |
"X interior_of (topspace X - S) = topspace X - X closure_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1010 |
by (auto simp: interior_of_def closure_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1011 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1012 |
lemma interior_of_closure_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1013 |
"X interior_of S = topspace X - X closure_of (topspace X - S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1014 |
unfolding interior_of_complement [symmetric] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1015 |
by (metis Diff_Diff_Int interior_of_restrict) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1016 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1017 |
lemma closure_of_interior_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1018 |
"X closure_of S = topspace X - X interior_of (topspace X - S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1019 |
by (simp add: interior_of_complement Diff_Diff_Int closure_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1020 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1021 |
lemma closure_of_complement: "X closure_of (topspace X - S) = topspace X - X interior_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1022 |
unfolding interior_of_def closure_of_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1023 |
by (blast dest: openin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1024 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1025 |
lemma interior_of_eq_empty_complement: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1026 |
"X interior_of S = {} \<longleftrightarrow> X closure_of (topspace X - S) = topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1027 |
using interior_of_subset_topspace [of X S] closure_of_complement by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1028 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1029 |
lemma closure_of_eq_topspace: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1030 |
"X closure_of S = topspace X \<longleftrightarrow> X interior_of (topspace X - S) = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1031 |
using closure_of_subset_topspace [of X S] interior_of_complement by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1032 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1033 |
lemma interior_of_subtopology_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1034 |
"U \<inter> X interior_of S \<subseteq> (subtopology X U) interior_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1035 |
by (auto simp: interior_of_def openin_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1036 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1037 |
lemma interior_of_subtopology_subsets: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1038 |
"T \<subseteq> U \<Longrightarrow> T \<inter> (subtopology X U) interior_of S \<subseteq> (subtopology X T) interior_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1039 |
by (metis inf.absorb_iff2 interior_of_subtopology_subset subtopology_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1040 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1041 |
lemma interior_of_subtopology_mono: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1042 |
"\<lbrakk>S \<subseteq> T; T \<subseteq> U\<rbrakk> \<Longrightarrow> (subtopology X U) interior_of S \<subseteq> (subtopology X T) interior_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1043 |
by (metis dual_order.trans inf.orderE inf_commute interior_of_subset interior_of_subtopology_subsets) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1044 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1045 |
lemma interior_of_subtopology_open: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1046 |
assumes "openin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1047 |
shows "(subtopology X U) interior_of S = U \<inter> X interior_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1048 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1049 |
have "\<forall>A. U \<inter> X closure_of (U \<inter> A) = U \<inter> X closure_of A" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1050 |
using assms openin_Int_closure_of_eq by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1051 |
then have "topspace X \<inter> U - U \<inter> X closure_of (topspace X \<inter> U - S) = U \<inter> (topspace X - X closure_of (topspace X - S))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1052 |
by (metis (no_types) Diff_Int_distrib Int_Diff inf_commute) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1053 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1054 |
unfolding interior_of_closure_of closure_of_subtopology_open topspace_subtopology |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1055 |
using openin_Int_closure_of_eq [OF assms] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1056 |
by (metis assms closure_of_subtopology_open) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1057 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1058 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1059 |
lemma dense_intersects_open: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1060 |
"X closure_of S = topspace X \<longleftrightarrow> (\<forall>T. openin X T \<and> T \<noteq> {} \<longrightarrow> S \<inter> T \<noteq> {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1061 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1062 |
have "X closure_of S = topspace X \<longleftrightarrow> (topspace X - X interior_of (topspace X - S) = topspace X)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1063 |
by (simp add: closure_of_interior_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1064 |
also have "\<dots> \<longleftrightarrow> X interior_of (topspace X - S) = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1065 |
by (simp add: closure_of_complement interior_of_eq_empty_complement) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1066 |
also have "\<dots> \<longleftrightarrow> (\<forall>T. openin X T \<and> T \<noteq> {} \<longrightarrow> S \<inter> T \<noteq> {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1067 |
unfolding interior_of_eq_empty_alt |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1068 |
using openin_subset by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1069 |
finally show ?thesis . |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1070 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1071 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1072 |
lemma interior_of_closedin_union_empty_interior_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1073 |
assumes "closedin X S" and disj: "X interior_of T = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1074 |
shows "X interior_of (S \<union> T) = X interior_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1075 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1076 |
have "X closure_of (topspace X - T) = topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1077 |
by (metis Diff_Diff_Int disj closure_of_eq_topspace closure_of_restrict interior_of_closure_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1078 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1079 |
unfolding interior_of_closure_of |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1080 |
by (metis Diff_Un Diff_subset assms(1) closedin_def closure_of_openin_Int_superset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1081 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1082 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1083 |
lemma interior_of_union_eq_empty: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1084 |
"closedin X S |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1085 |
\<Longrightarrow> (X interior_of (S \<union> T) = {} \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1086 |
X interior_of S = {} \<and> X interior_of T = {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1087 |
by (metis interior_of_closedin_union_empty_interior_of le_sup_iff subset_empty union_interior_of_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1088 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1089 |
lemma discrete_topology_interior_of [simp]: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1090 |
"(discrete_topology U) interior_of S = U \<inter> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1091 |
by (simp add: interior_of_restrict [of _ S] interior_of_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1092 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1093 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1094 |
subsection \<open>Frontier with respect to topological space \<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1095 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1096 |
definition frontier_of :: "'a topology \<Rightarrow> 'a set \<Rightarrow> 'a set" (infixr "frontier'_of" 80) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1097 |
where "X frontier_of S \<equiv> X closure_of S - X interior_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1098 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1099 |
lemma frontier_of_closures: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1100 |
"X frontier_of S = X closure_of S \<inter> X closure_of (topspace X - S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1101 |
by (metis Diff_Diff_Int closure_of_complement closure_of_subset_topspace double_diff frontier_of_def interior_of_subset_closure_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1102 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1103 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1104 |
lemma interior_of_union_frontier_of [simp]: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1105 |
"X interior_of S \<union> X frontier_of S = X closure_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1106 |
by (simp add: frontier_of_def interior_of_subset_closure_of subset_antisym) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1107 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1108 |
lemma frontier_of_restrict: "X frontier_of S = X frontier_of (topspace X \<inter> S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1109 |
by (metis closure_of_restrict frontier_of_def interior_of_restrict) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1110 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1111 |
lemma closedin_frontier_of: "closedin X (X frontier_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1112 |
by (simp add: closedin_Int frontier_of_closures) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1113 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1114 |
lemma frontier_of_subset_topspace: "X frontier_of S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1115 |
by (simp add: closedin_frontier_of closedin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1116 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1117 |
lemma frontier_of_subset_subtopology: "(subtopology X S) frontier_of T \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1118 |
by (metis (no_types) closedin_derived_set closedin_frontier_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1119 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1120 |
lemma frontier_of_subtopology_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1121 |
"U \<inter> (subtopology X U) frontier_of S \<subseteq> (X frontier_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1122 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1123 |
have "U \<inter> X interior_of S - subtopology X U interior_of S = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1124 |
by (simp add: interior_of_subtopology_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1125 |
moreover have "X closure_of S \<inter> subtopology X U closure_of S = subtopology X U closure_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1126 |
by (meson closure_of_subtopology_subset inf.absorb_iff2) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1127 |
ultimately show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1128 |
unfolding frontier_of_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1129 |
by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1130 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1131 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1132 |
lemma frontier_of_subtopology_mono: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1133 |
"\<lbrakk>S \<subseteq> T; T \<subseteq> U\<rbrakk> \<Longrightarrow> (subtopology X T) frontier_of S \<subseteq> (subtopology X U) frontier_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1134 |
by (simp add: frontier_of_def Diff_mono closure_of_subtopology_mono interior_of_subtopology_mono) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1135 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1136 |
lemma clopenin_eq_frontier_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1137 |
"closedin X S \<and> openin X S \<longleftrightarrow> S \<subseteq> topspace X \<and> X frontier_of S = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1138 |
proof (cases "S \<subseteq> topspace X") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1139 |
case True |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1140 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1141 |
by (metis Diff_eq_empty_iff closure_of_eq closure_of_subset_eq frontier_of_def interior_of_eq interior_of_subset interior_of_union_frontier_of sup_bot_right) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1142 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1143 |
case False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1144 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1145 |
by (simp add: frontier_of_closures openin_closedin_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1146 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1147 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1148 |
lemma frontier_of_eq_empty: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1149 |
"S \<subseteq> topspace X \<Longrightarrow> (X frontier_of S = {} \<longleftrightarrow> closedin X S \<and> openin X S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1150 |
by (simp add: clopenin_eq_frontier_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1151 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1152 |
lemma frontier_of_openin: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1153 |
"openin X S \<Longrightarrow> X frontier_of S = X closure_of S - S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1154 |
by (metis (no_types) frontier_of_def interior_of_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1155 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1156 |
lemma frontier_of_openin_straddle_Int: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1157 |
assumes "openin X U" "U \<inter> X frontier_of S \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1158 |
shows "U \<inter> S \<noteq> {}" "U - S \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1159 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1160 |
have "U \<inter> (X closure_of S \<inter> X closure_of (topspace X - S)) \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1161 |
using assms by (simp add: frontier_of_closures) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1162 |
then show "U \<inter> S \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1163 |
using assms openin_Int_closure_of_eq_empty by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1164 |
show "U - S \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1165 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1166 |
have "\<exists>A. X closure_of (A - S) \<inter> U \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1167 |
using \<open>U \<inter> (X closure_of S \<inter> X closure_of (topspace X - S)) \<noteq> {}\<close> by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1168 |
then have "\<not> U \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1169 |
by (metis Diff_disjoint Diff_eq_empty_iff Int_Diff assms(1) inf_commute openin_Int_closure_of_eq_empty) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1170 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1171 |
by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1172 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1173 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1174 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1175 |
lemma frontier_of_subset_closedin: "closedin X S \<Longrightarrow> (X frontier_of S) \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1176 |
using closure_of_eq frontier_of_def by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1177 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1178 |
lemma frontier_of_empty [simp]: "X frontier_of {} = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1179 |
by (simp add: frontier_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1180 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1181 |
lemma frontier_of_topspace [simp]: "X frontier_of topspace X = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1182 |
by (simp add: frontier_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1183 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1184 |
lemma frontier_of_subset_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1185 |
assumes "S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1186 |
shows "(X frontier_of S) \<subseteq> S \<longleftrightarrow> closedin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1187 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1188 |
show "X frontier_of S \<subseteq> S \<Longrightarrow> closedin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1189 |
by (metis assms closure_of_subset_eq interior_of_subset interior_of_union_frontier_of le_sup_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1190 |
show "closedin X S \<Longrightarrow> X frontier_of S \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1191 |
by (simp add: frontier_of_subset_closedin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1192 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1193 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1194 |
lemma frontier_of_complement: "X frontier_of (topspace X - S) = X frontier_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1195 |
by (metis Diff_Diff_Int closure_of_restrict frontier_of_closures inf_commute) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1196 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1197 |
lemma frontier_of_disjoint_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1198 |
assumes "S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1199 |
shows "((X frontier_of S) \<inter> S = {} \<longleftrightarrow> openin X S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1200 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1201 |
assume "X frontier_of S \<inter> S = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1202 |
then have "closedin X (topspace X - S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1203 |
using assms closure_of_subset frontier_of_def interior_of_eq interior_of_subset by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1204 |
then show "openin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1205 |
using assms by (simp add: openin_closedin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1206 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1207 |
show "openin X S \<Longrightarrow> X frontier_of S \<inter> S = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1208 |
by (simp add: Diff_Diff_Int closedin_def frontier_of_openin inf.absorb_iff2 inf_commute) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1209 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1210 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1211 |
lemma frontier_of_disjoint_eq_alt: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1212 |
"S \<subseteq> (topspace X - X frontier_of S) \<longleftrightarrow> openin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1213 |
proof (cases "S \<subseteq> topspace X") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1214 |
case True |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1215 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1216 |
using True frontier_of_disjoint_eq by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1217 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1218 |
case False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1219 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1220 |
by (meson Diff_subset openin_subset subset_trans) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1221 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1222 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1223 |
lemma frontier_of_Int: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1224 |
"X frontier_of (S \<inter> T) = |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1225 |
X closure_of (S \<inter> T) \<inter> (X frontier_of S \<union> X frontier_of T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1226 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1227 |
have *: "U \<subseteq> S \<and> U \<subseteq> T \<Longrightarrow> U \<inter> (S \<inter> A \<union> T \<inter> B) = U \<inter> (A \<union> B)" for U S T A B :: "'a set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1228 |
by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1229 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1230 |
by (simp add: frontier_of_closures closure_of_mono Diff_Int * flip: closure_of_Un) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1231 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1232 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1233 |
lemma frontier_of_Int_subset: "X frontier_of (S \<inter> T) \<subseteq> X frontier_of S \<union> X frontier_of T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1234 |
by (simp add: frontier_of_Int) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1235 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1236 |
lemma frontier_of_Int_closedin: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1237 |
"\<lbrakk>closedin X S; closedin X T\<rbrakk> \<Longrightarrow> X frontier_of(S \<inter> T) = X frontier_of S \<inter> T \<union> S \<inter> X frontier_of T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1238 |
apply (simp add: frontier_of_Int closedin_Int closure_of_closedin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1239 |
using frontier_of_subset_closedin by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1240 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1241 |
lemma frontier_of_Un_subset: "X frontier_of(S \<union> T) \<subseteq> X frontier_of S \<union> X frontier_of T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1242 |
by (metis Diff_Un frontier_of_Int_subset frontier_of_complement) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1243 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1244 |
lemma frontier_of_Union_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1245 |
"finite \<F> \<Longrightarrow> X frontier_of (\<Union>\<F>) \<subseteq> (\<Union>T \<in> \<F>. X frontier_of T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1246 |
proof (induction \<F> rule: finite_induct) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1247 |
case (insert A \<F>) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1248 |
then show ?case |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1249 |
using frontier_of_Un_subset by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1250 |
qed simp |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1251 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1252 |
lemma frontier_of_frontier_of_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1253 |
"X frontier_of (X frontier_of S) \<subseteq> X frontier_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1254 |
by (simp add: closedin_frontier_of frontier_of_subset_closedin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1255 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1256 |
lemma frontier_of_subtopology_open: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1257 |
"openin X U \<Longrightarrow> (subtopology X U) frontier_of S = U \<inter> X frontier_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1258 |
by (simp add: Diff_Int_distrib closure_of_subtopology_open frontier_of_def interior_of_subtopology_open) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1259 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1260 |
lemma discrete_topology_frontier_of [simp]: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1261 |
"(discrete_topology U) frontier_of S = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1262 |
by (simp add: Diff_eq discrete_topology_closure_of frontier_of_closures) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1263 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1264 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1265 |
subsection\<open>Continuous maps\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1266 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1267 |
definition continuous_map where |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1268 |
"continuous_map X Y f \<equiv> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1269 |
(\<forall>x \<in> topspace X. f x \<in> topspace Y) \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1270 |
(\<forall>U. openin Y U \<longrightarrow> openin X {x \<in> topspace X. f x \<in> U})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1271 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1272 |
lemma continuous_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1273 |
"continuous_map X Y f \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1274 |
f ` (topspace X) \<subseteq> topspace Y \<and> (\<forall>U. openin Y U \<longrightarrow> openin X {x \<in> topspace X. f x \<in> U})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1275 |
by (auto simp: continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1276 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1277 |
lemma continuous_map_image_subset_topspace: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1278 |
"continuous_map X Y f \<Longrightarrow> f ` (topspace X) \<subseteq> topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1279 |
by (auto simp: continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1280 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1281 |
lemma continuous_map_on_empty: "topspace X = {} \<Longrightarrow> continuous_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1282 |
by (auto simp: continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1283 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1284 |
lemma continuous_map_closedin: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1285 |
"continuous_map X Y f \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1286 |
(\<forall>x \<in> topspace X. f x \<in> topspace Y) \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1287 |
(\<forall>C. closedin Y C \<longrightarrow> closedin X {x \<in> topspace X. f x \<in> C})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1288 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1289 |
have "(\<forall>U. openin Y U \<longrightarrow> openin X {x \<in> topspace X. f x \<in> U}) = |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1290 |
(\<forall>C. closedin Y C \<longrightarrow> closedin X {x \<in> topspace X. f x \<in> C})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1291 |
if "\<And>x. x \<in> topspace X \<Longrightarrow> f x \<in> topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1292 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1293 |
have eq: "{x \<in> topspace X. f x \<in> topspace Y \<and> f x \<notin> C} = (topspace X - {x \<in> topspace X. f x \<in> C})" for C |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1294 |
using that by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1295 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1296 |
proof (intro iffI allI impI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1297 |
fix C |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1298 |
assume "\<forall>U. openin Y U \<longrightarrow> openin X {x \<in> topspace X. f x \<in> U}" and "closedin Y C" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1299 |
then have "openin X {x \<in> topspace X. f x \<in> topspace Y - C}" by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1300 |
then show "closedin X {x \<in> topspace X. f x \<in> C}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1301 |
by (auto simp add: closedin_def eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1302 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1303 |
fix U |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1304 |
assume "\<forall>C. closedin Y C \<longrightarrow> closedin X {x \<in> topspace X. f x \<in> C}" and "openin Y U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1305 |
then have "closedin X {x \<in> topspace X. f x \<in> topspace Y - U}" by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1306 |
then show "openin X {x \<in> topspace X. f x \<in> U}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1307 |
by (auto simp add: openin_closedin_eq eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1308 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1309 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1310 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1311 |
by (auto simp: continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1312 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1313 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1314 |
lemma openin_continuous_map_preimage: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1315 |
"\<lbrakk>continuous_map X Y f; openin Y U\<rbrakk> \<Longrightarrow> openin X {x \<in> topspace X. f x \<in> U}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1316 |
by (simp add: continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1317 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1318 |
lemma closedin_continuous_map_preimage: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1319 |
"\<lbrakk>continuous_map X Y f; closedin Y C\<rbrakk> \<Longrightarrow> closedin X {x \<in> topspace X. f x \<in> C}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1320 |
by (simp add: continuous_map_closedin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1321 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1322 |
lemma openin_continuous_map_preimage_gen: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1323 |
assumes "continuous_map X Y f" "openin X U" "openin Y V" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1324 |
shows "openin X {x \<in> U. f x \<in> V}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1325 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1326 |
have eq: "{x \<in> U. f x \<in> V} = U \<inter> {x \<in> topspace X. f x \<in> V}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1327 |
using assms(2) openin_closedin_eq by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1328 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1329 |
unfolding eq |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1330 |
using assms openin_continuous_map_preimage by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1331 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1332 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1333 |
lemma closedin_continuous_map_preimage_gen: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1334 |
assumes "continuous_map X Y f" "closedin X U" "closedin Y V" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1335 |
shows "closedin X {x \<in> U. f x \<in> V}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1336 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1337 |
have eq: "{x \<in> U. f x \<in> V} = U \<inter> {x \<in> topspace X. f x \<in> V}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1338 |
using assms(2) closedin_def by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1339 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1340 |
unfolding eq |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1341 |
using assms closedin_continuous_map_preimage by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1342 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1343 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1344 |
lemma continuous_map_image_closure_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1345 |
assumes "continuous_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1346 |
shows "f ` (X closure_of S) \<subseteq> Y closure_of f ` S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1347 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1348 |
have *: "f ` (topspace X) \<subseteq> topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1349 |
by (meson assms continuous_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1350 |
have "X closure_of T \<subseteq> {x \<in> X closure_of T. f x \<in> Y closure_of (f ` T)}" if "T \<subseteq> topspace X" for T |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1351 |
proof (rule closure_of_minimal) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1352 |
show "T \<subseteq> {x \<in> X closure_of T. f x \<in> Y closure_of f ` T}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1353 |
using closure_of_subset * that by (fastforce simp: in_closure_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1354 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1355 |
show "closedin X {x \<in> X closure_of T. f x \<in> Y closure_of f ` T}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1356 |
using assms closedin_continuous_map_preimage_gen by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1357 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1358 |
then have "f ` (X closure_of (topspace X \<inter> S)) \<subseteq> Y closure_of (f ` (topspace X \<inter> S))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1359 |
by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1360 |
also have "\<dots> \<subseteq> Y closure_of (topspace Y \<inter> f ` S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1361 |
using * by (blast intro!: closure_of_mono) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1362 |
finally have "f ` (X closure_of (topspace X \<inter> S)) \<subseteq> Y closure_of (topspace Y \<inter> f ` S)" . |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1363 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1364 |
by (metis closure_of_restrict) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1365 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1366 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1367 |
lemma continuous_map_subset_aux1: "continuous_map X Y f \<Longrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1368 |
(\<forall>S. f ` (X closure_of S) \<subseteq> Y closure_of f ` S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1369 |
using continuous_map_image_closure_subset by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1370 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1371 |
lemma continuous_map_subset_aux2: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1372 |
assumes "\<forall>S. S \<subseteq> topspace X \<longrightarrow> f ` (X closure_of S) \<subseteq> Y closure_of f ` S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1373 |
shows "continuous_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1374 |
unfolding continuous_map_closedin |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1375 |
proof (intro conjI ballI allI impI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1376 |
fix x |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1377 |
assume "x \<in> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1378 |
then show "f x \<in> topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1379 |
using assms closure_of_subset_topspace by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1380 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1381 |
fix C |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1382 |
assume "closedin Y C" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1383 |
then show "closedin X {x \<in> topspace X. f x \<in> C}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1384 |
proof (clarsimp simp flip: closure_of_subset_eq, intro conjI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1385 |
fix x |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1386 |
assume x: "x \<in> X closure_of {x \<in> topspace X. f x \<in> C}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1387 |
and "C \<subseteq> topspace Y" and "Y closure_of C \<subseteq> C" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1388 |
show "x \<in> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1389 |
by (meson x in_closure_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1390 |
have "{a \<in> topspace X. f a \<in> C} \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1391 |
by simp |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1392 |
moreover have "Y closure_of f ` {a \<in> topspace X. f a \<in> C} \<subseteq> C" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1393 |
by (simp add: \<open>closedin Y C\<close> closure_of_minimal image_subset_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1394 |
ultimately have "f ` (X closure_of {a \<in> topspace X. f a \<in> C}) \<subseteq> C" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1395 |
using assms by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1396 |
then show "f x \<in> C" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1397 |
using x by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1398 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1399 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1400 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1401 |
lemma continuous_map_eq_image_closure_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1402 |
"continuous_map X Y f \<longleftrightarrow> (\<forall>S. f ` (X closure_of S) \<subseteq> Y closure_of f ` S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1403 |
using continuous_map_subset_aux1 continuous_map_subset_aux2 by metis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1404 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1405 |
lemma continuous_map_eq_image_closure_subset_alt: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1406 |
"continuous_map X Y f \<longleftrightarrow> (\<forall>S. S \<subseteq> topspace X \<longrightarrow> f ` (X closure_of S) \<subseteq> Y closure_of f ` S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1407 |
using continuous_map_subset_aux1 continuous_map_subset_aux2 by metis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1408 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1409 |
lemma continuous_map_eq_image_closure_subset_gen: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1410 |
"continuous_map X Y f \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1411 |
f ` (topspace X) \<subseteq> topspace Y \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1412 |
(\<forall>S. f ` (X closure_of S) \<subseteq> Y closure_of f ` S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1413 |
using continuous_map_subset_aux1 continuous_map_subset_aux2 continuous_map_image_subset_topspace by metis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1414 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1415 |
lemma continuous_map_closure_preimage_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1416 |
"continuous_map X Y f |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1417 |
\<Longrightarrow> X closure_of {x \<in> topspace X. f x \<in> T} |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1418 |
\<subseteq> {x \<in> topspace X. f x \<in> Y closure_of T}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1419 |
unfolding continuous_map_closedin |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1420 |
by (rule closure_of_minimal) (use in_closure_of in \<open>fastforce+\<close>) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1421 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1422 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1423 |
lemma continuous_map_frontier_frontier_preimage_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1424 |
assumes "continuous_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1425 |
shows "X frontier_of {x \<in> topspace X. f x \<in> T} \<subseteq> {x \<in> topspace X. f x \<in> Y frontier_of T}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1426 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1427 |
have eq: "topspace X - {x \<in> topspace X. f x \<in> T} = {x \<in> topspace X. f x \<in> topspace Y - T}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1428 |
using assms unfolding continuous_map_def by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1429 |
have "X closure_of {x \<in> topspace X. f x \<in> T} \<subseteq> {x \<in> topspace X. f x \<in> Y closure_of T}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1430 |
by (simp add: assms continuous_map_closure_preimage_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1431 |
moreover |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1432 |
have "X closure_of (topspace X - {x \<in> topspace X. f x \<in> T}) \<subseteq> {x \<in> topspace X. f x \<in> Y closure_of (topspace Y - T)}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1433 |
using continuous_map_closure_preimage_subset [OF assms] eq by presburger |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1434 |
ultimately show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1435 |
by (auto simp: frontier_of_closures) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1436 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1437 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1438 |
lemma continuous_map_id [simp]: "continuous_map X X id" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1439 |
unfolding continuous_map_def using openin_subopen topspace_def by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1440 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1441 |
lemma topology_finer_continuous_id: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1442 |
"topspace X = topspace Y \<Longrightarrow> ((\<forall>S. openin X S \<longrightarrow> openin Y S) \<longleftrightarrow> continuous_map Y X id)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1443 |
unfolding continuous_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1444 |
apply auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1445 |
using openin_subopen openin_subset apply fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1446 |
using openin_subopen topspace_def by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1447 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1448 |
lemma continuous_map_const [simp]: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1449 |
"continuous_map X Y (\<lambda>x. C) \<longleftrightarrow> topspace X = {} \<or> C \<in> topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1450 |
proof (cases "topspace X = {}") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1451 |
case False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1452 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1453 |
proof (cases "C \<in> topspace Y") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1454 |
case True |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1455 |
with openin_subopen show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1456 |
by (auto simp: continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1457 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1458 |
case False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1459 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1460 |
unfolding continuous_map_def by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1461 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1462 |
qed (auto simp: continuous_map_on_empty) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1463 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1464 |
lemma continuous_map_compose: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1465 |
assumes f: "continuous_map X X' f" and g: "continuous_map X' X'' g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1466 |
shows "continuous_map X X'' (g \<circ> f)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1467 |
unfolding continuous_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1468 |
proof (intro conjI ballI allI impI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1469 |
fix x |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1470 |
assume "x \<in> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1471 |
then show "(g \<circ> f) x \<in> topspace X''" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1472 |
using assms unfolding continuous_map_def by force |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1473 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1474 |
fix U |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1475 |
assume "openin X'' U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1476 |
have eq: "{x \<in> topspace X. (g \<circ> f) x \<in> U} = {x \<in> topspace X. f x \<in> {y. y \<in> topspace X' \<and> g y \<in> U}}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1477 |
by auto (meson f continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1478 |
show "openin X {x \<in> topspace X. (g \<circ> f) x \<in> U}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1479 |
unfolding eq |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1480 |
using assms unfolding continuous_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1481 |
using \<open>openin X'' U\<close> by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1482 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1483 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1484 |
lemma continuous_map_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1485 |
assumes "continuous_map X X' f" and "\<And>x. x \<in> topspace X \<Longrightarrow> f x = g x" shows "continuous_map X X' g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1486 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1487 |
have eq: "{x \<in> topspace X. f x \<in> U} = {x \<in> topspace X. g x \<in> U}" for U |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1488 |
using assms by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1489 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1490 |
using assms by (simp add: continuous_map_def eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1491 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1492 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1493 |
lemma restrict_continuous_map [simp]: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1494 |
"topspace X \<subseteq> S \<Longrightarrow> continuous_map X X' (restrict f S) \<longleftrightarrow> continuous_map X X' f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1495 |
by (auto simp: elim!: continuous_map_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1496 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1497 |
lemma continuous_map_in_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1498 |
"continuous_map X (subtopology X' S) f \<longleftrightarrow> continuous_map X X' f \<and> f ` (topspace X) \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1499 |
(is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1500 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1501 |
assume L: ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1502 |
show ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1503 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1504 |
have "\<And>A. f ` (X closure_of A) \<subseteq> subtopology X' S closure_of f ` A" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1505 |
by (meson L continuous_map_image_closure_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1506 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1507 |
by (metis (no_types) closure_of_subset_subtopology closure_of_subtopology_subset closure_of_topspace continuous_map_eq_image_closure_subset dual_order.trans) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1508 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1509 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1510 |
assume R: ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1511 |
then have eq: "{x \<in> topspace X. f x \<in> U} = {x \<in> topspace X. f x \<in> U \<and> f x \<in> S}" for U |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1512 |
by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1513 |
show ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1514 |
using R |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1515 |
unfolding continuous_map |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1516 |
by (auto simp: topspace_subtopology openin_subtopology eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1517 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1518 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1519 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1520 |
lemma continuous_map_from_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1521 |
"continuous_map X X' f \<Longrightarrow> continuous_map (subtopology X S) X' f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1522 |
by (auto simp: continuous_map topspace_subtopology openin_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1523 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1524 |
lemma continuous_map_into_fulltopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1525 |
"continuous_map X (subtopology X' T) f \<Longrightarrow> continuous_map X X' f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1526 |
by (auto simp: continuous_map_in_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1527 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1528 |
lemma continuous_map_into_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1529 |
"\<lbrakk>continuous_map X X' f; f ` topspace X \<subseteq> T\<rbrakk> \<Longrightarrow> continuous_map X (subtopology X' T) f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1530 |
by (auto simp: continuous_map_in_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1531 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1532 |
lemma continuous_map_from_subtopology_mono: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1533 |
"\<lbrakk>continuous_map (subtopology X T) X' f; S \<subseteq> T\<rbrakk> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1534 |
\<Longrightarrow> continuous_map (subtopology X S) X' f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1535 |
by (metis inf.absorb_iff2 continuous_map_from_subtopology subtopology_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1536 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1537 |
lemma continuous_map_from_discrete_topology [simp]: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1538 |
"continuous_map (discrete_topology U) X f \<longleftrightarrow> f ` U \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1539 |
by (auto simp: continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1540 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1541 |
lemma continuous_map_iff_continuous_real [simp]: "continuous_map (subtopology euclideanreal S) euclideanreal g = continuous_on S g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1542 |
by (force simp: continuous_map openin_subtopology continuous_on_open_invariant) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1543 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1544 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1545 |
subsection\<open>Open and closed maps (not a priori assumed continuous)\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1546 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1547 |
definition open_map :: "'a topology \<Rightarrow> 'b topology \<Rightarrow> ('a \<Rightarrow> 'b) \<Rightarrow> bool" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1548 |
where "open_map X1 X2 f \<equiv> \<forall>U. openin X1 U \<longrightarrow> openin X2 (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1549 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1550 |
definition closed_map :: "'a topology \<Rightarrow> 'b topology \<Rightarrow> ('a \<Rightarrow> 'b) \<Rightarrow> bool" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1551 |
where "closed_map X1 X2 f \<equiv> \<forall>U. closedin X1 U \<longrightarrow> closedin X2 (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1552 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1553 |
lemma open_map_imp_subset_topspace: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1554 |
"open_map X1 X2 f \<Longrightarrow> f ` (topspace X1) \<subseteq> topspace X2" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1555 |
unfolding open_map_def by (simp add: openin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1556 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1557 |
lemma open_map_imp_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1558 |
"\<lbrakk>open_map X1 X2 f; S \<subseteq> topspace X1\<rbrakk> \<Longrightarrow> f ` S \<subseteq> topspace X2" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1559 |
by (meson order_trans open_map_imp_subset_topspace subset_image_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1560 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1561 |
lemma topology_finer_open_id: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1562 |
"(\<forall>S. openin X S \<longrightarrow> openin X' S) \<longleftrightarrow> open_map X X' id" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1563 |
unfolding open_map_def by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1564 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1565 |
lemma open_map_id: "open_map X X id" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1566 |
unfolding open_map_def by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1567 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1568 |
lemma open_map_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1569 |
"\<lbrakk>open_map X X' f; \<And>x. x \<in> topspace X \<Longrightarrow> f x = g x\<rbrakk> \<Longrightarrow> open_map X X' g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1570 |
unfolding open_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1571 |
by (metis image_cong openin_subset subset_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1572 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1573 |
lemma open_map_inclusion_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1574 |
"open_map (subtopology X S) X id \<longleftrightarrow> openin X (topspace X \<inter> S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1575 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1576 |
have *: "openin X (T \<inter> S)" if "openin X (S \<inter> topspace X)" "openin X T" for T |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1577 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1578 |
have "T \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1579 |
using that by (simp add: openin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1580 |
with that show "openin X (T \<inter> S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1581 |
by (metis inf.absorb1 inf.left_commute inf_commute openin_Int) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1582 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1583 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1584 |
by (fastforce simp add: open_map_def Int_commute openin_subtopology_alt intro: *) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1585 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1586 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1587 |
lemma open_map_inclusion: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1588 |
"openin X S \<Longrightarrow> open_map (subtopology X S) X id" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1589 |
by (simp add: open_map_inclusion_eq openin_Int) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1590 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1591 |
lemma open_map_compose: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1592 |
"\<lbrakk>open_map X X' f; open_map X' X'' g\<rbrakk> \<Longrightarrow> open_map X X'' (g \<circ> f)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1593 |
by (metis (no_types, lifting) image_comp open_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1594 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1595 |
lemma closed_map_imp_subset_topspace: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1596 |
"closed_map X1 X2 f \<Longrightarrow> f ` (topspace X1) \<subseteq> topspace X2" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1597 |
by (simp add: closed_map_def closedin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1598 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1599 |
lemma closed_map_imp_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1600 |
"\<lbrakk>closed_map X1 X2 f; S \<subseteq> topspace X1\<rbrakk> \<Longrightarrow> f ` S \<subseteq> topspace X2" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1601 |
using closed_map_imp_subset_topspace by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1602 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1603 |
lemma topology_finer_closed_id: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1604 |
"(\<forall>S. closedin X S \<longrightarrow> closedin X' S) \<longleftrightarrow> closed_map X X' id" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1605 |
by (simp add: closed_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1606 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1607 |
lemma closed_map_id: "closed_map X X id" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1608 |
by (simp add: closed_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1609 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1610 |
lemma closed_map_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1611 |
"\<lbrakk>closed_map X X' f; \<And>x. x \<in> topspace X \<Longrightarrow> f x = g x\<rbrakk> \<Longrightarrow> closed_map X X' g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1612 |
unfolding closed_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1613 |
by (metis image_cong closedin_subset subset_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1614 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1615 |
lemma closed_map_compose: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1616 |
"\<lbrakk>closed_map X X' f; closed_map X' X'' g\<rbrakk> \<Longrightarrow> closed_map X X'' (g \<circ> f)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1617 |
by (metis (no_types, lifting) closed_map_def image_comp) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1618 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1619 |
lemma closed_map_inclusion_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1620 |
"closed_map (subtopology X S) X id \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1621 |
closedin X (topspace X \<inter> S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1622 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1623 |
have *: "closedin X (T \<inter> S)" if "closedin X (S \<inter> topspace X)" "closedin X T" for T |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1624 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1625 |
have "T \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1626 |
using that by (simp add: closedin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1627 |
with that show "closedin X (T \<inter> S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1628 |
by (metis inf.absorb1 inf.left_commute inf_commute closedin_Int) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1629 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1630 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1631 |
by (fastforce simp add: closed_map_def Int_commute closedin_subtopology_alt intro: *) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1632 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1633 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1634 |
lemma closed_map_inclusion: "closedin X S \<Longrightarrow> closed_map (subtopology X S) X id" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1635 |
by (simp add: closed_map_inclusion_eq closedin_Int) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1636 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1637 |
lemma open_map_into_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1638 |
"\<lbrakk>open_map X X' f; f ` topspace X \<subseteq> S\<rbrakk> \<Longrightarrow> open_map X (subtopology X' S) f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1639 |
unfolding open_map_def openin_subtopology |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1640 |
using openin_subset by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1641 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1642 |
lemma closed_map_into_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1643 |
"\<lbrakk>closed_map X X' f; f ` topspace X \<subseteq> S\<rbrakk> \<Longrightarrow> closed_map X (subtopology X' S) f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1644 |
unfolding closed_map_def closedin_subtopology |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1645 |
using closedin_subset by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1646 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1647 |
lemma open_map_into_discrete_topology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1648 |
"open_map X (discrete_topology U) f \<longleftrightarrow> f ` (topspace X) \<subseteq> U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1649 |
unfolding open_map_def openin_discrete_topology using openin_subset by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1650 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1651 |
lemma closed_map_into_discrete_topology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1652 |
"closed_map X (discrete_topology U) f \<longleftrightarrow> f ` (topspace X) \<subseteq> U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1653 |
unfolding closed_map_def closedin_discrete_topology using closedin_subset by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1654 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1655 |
lemma bijective_open_imp_closed_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1656 |
"\<lbrakk>open_map X X' f; f ` (topspace X) = topspace X'; inj_on f (topspace X)\<rbrakk> \<Longrightarrow> closed_map X X' f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1657 |
unfolding open_map_def closed_map_def closedin_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1658 |
by auto (metis Diff_subset inj_on_image_set_diff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1659 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1660 |
lemma bijective_closed_imp_open_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1661 |
"\<lbrakk>closed_map X X' f; f ` (topspace X) = topspace X'; inj_on f (topspace X)\<rbrakk> \<Longrightarrow> open_map X X' f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1662 |
unfolding closed_map_def open_map_def openin_closedin_eq |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1663 |
by auto (metis Diff_subset inj_on_image_set_diff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1664 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1665 |
lemma open_map_from_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1666 |
"\<lbrakk>open_map X X' f; openin X U\<rbrakk> \<Longrightarrow> open_map (subtopology X U) X' f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1667 |
unfolding open_map_def openin_subtopology_alt by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1668 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1669 |
lemma closed_map_from_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1670 |
"\<lbrakk>closed_map X X' f; closedin X U\<rbrakk> \<Longrightarrow> closed_map (subtopology X U) X' f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1671 |
unfolding closed_map_def closedin_subtopology_alt by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1672 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1673 |
lemma open_map_restriction: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1674 |
"\<lbrakk>open_map X X' f; {x. x \<in> topspace X \<and> f x \<in> V} = U\<rbrakk> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1675 |
\<Longrightarrow> open_map (subtopology X U) (subtopology X' V) f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1676 |
unfolding open_map_def openin_subtopology_alt |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1677 |
apply clarify |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1678 |
apply (rename_tac T) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1679 |
apply (rule_tac x="f ` T" in image_eqI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1680 |
using openin_closedin_eq by force+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1681 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1682 |
lemma closed_map_restriction: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1683 |
"\<lbrakk>closed_map X X' f; {x. x \<in> topspace X \<and> f x \<in> V} = U\<rbrakk> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1684 |
\<Longrightarrow> closed_map (subtopology X U) (subtopology X' V) f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1685 |
unfolding closed_map_def closedin_subtopology_alt |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1686 |
apply clarify |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1687 |
apply (rename_tac T) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1688 |
apply (rule_tac x="f ` T" in image_eqI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1689 |
using closedin_def by force+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1690 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1691 |
subsection\<open>Quotient maps\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1692 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1693 |
definition quotient_map where |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1694 |
"quotient_map X X' f \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1695 |
f ` (topspace X) = topspace X' \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1696 |
(\<forall>U. U \<subseteq> topspace X' \<longrightarrow> (openin X {x. x \<in> topspace X \<and> f x \<in> U} \<longleftrightarrow> openin X' U))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1697 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1698 |
lemma quotient_map_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1699 |
assumes "quotient_map X X' f" "\<And>x. x \<in> topspace X \<Longrightarrow> f x = g x" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1700 |
shows "quotient_map X X' g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1701 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1702 |
have eq: "{x \<in> topspace X. f x \<in> U} = {x \<in> topspace X. g x \<in> U}" for U |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1703 |
using assms by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1704 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1705 |
using assms |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1706 |
unfolding quotient_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1707 |
by (metis (mono_tags, lifting) eq image_cong) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1708 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1709 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1710 |
lemma quotient_map_compose: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1711 |
assumes f: "quotient_map X X' f" and g: "quotient_map X' X'' g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1712 |
shows "quotient_map X X'' (g \<circ> f)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1713 |
unfolding quotient_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1714 |
proof (intro conjI allI impI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1715 |
show "(g \<circ> f) ` topspace X = topspace X''" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1716 |
using assms image_comp unfolding quotient_map_def by force |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1717 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1718 |
fix U'' |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1719 |
assume "U'' \<subseteq> topspace X''" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1720 |
define U' where "U' \<equiv> {y \<in> topspace X'. g y \<in> U''}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1721 |
have "U' \<subseteq> topspace X'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1722 |
by (auto simp add: U'_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1723 |
then have U': "openin X {x \<in> topspace X. f x \<in> U'} = openin X' U'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1724 |
using assms unfolding quotient_map_def by simp |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1725 |
have eq: "{x \<in> topspace X. f x \<in> topspace X' \<and> g (f x) \<in> U''} = {x \<in> topspace X. (g \<circ> f) x \<in> U''}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1726 |
using f quotient_map_def by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1727 |
have "openin X {x \<in> topspace X. (g \<circ> f) x \<in> U''} = openin X {x \<in> topspace X. f x \<in> U'}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1728 |
using assms by (simp add: quotient_map_def U'_def eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1729 |
also have "\<dots> = openin X'' U''" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1730 |
using U'_def \<open>U'' \<subseteq> topspace X''\<close> U' g quotient_map_def by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1731 |
finally show "openin X {x \<in> topspace X. (g \<circ> f) x \<in> U''} = openin X'' U''" . |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1732 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1733 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1734 |
lemma quotient_map_from_composition: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1735 |
assumes f: "continuous_map X X' f" and g: "continuous_map X' X'' g" and gf: "quotient_map X X'' (g \<circ> f)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1736 |
shows "quotient_map X' X'' g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1737 |
unfolding quotient_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1738 |
proof (intro conjI allI impI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1739 |
show "g ` topspace X' = topspace X''" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1740 |
using assms unfolding continuous_map_def quotient_map_def by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1741 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1742 |
fix U'' :: "'c set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1743 |
assume U'': "U'' \<subseteq> topspace X''" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1744 |
have eq: "{x \<in> topspace X. g (f x) \<in> U''} = {x \<in> topspace X. f x \<in> {y. y \<in> topspace X' \<and> g y \<in> U''}}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1745 |
using continuous_map_def f by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1746 |
show "openin X' {x \<in> topspace X'. g x \<in> U''} = openin X'' U''" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1747 |
using assms unfolding continuous_map_def quotient_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1748 |
by (metis (mono_tags, lifting) Collect_cong U'' comp_apply eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1749 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1750 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1751 |
lemma quotient_imp_continuous_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1752 |
"quotient_map X X' f \<Longrightarrow> continuous_map X X' f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1753 |
by (simp add: continuous_map openin_subset quotient_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1754 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1755 |
lemma quotient_imp_surjective_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1756 |
"quotient_map X X' f \<Longrightarrow> f ` (topspace X) = topspace X'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1757 |
by (simp add: quotient_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1758 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1759 |
lemma quotient_map_closedin: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1760 |
"quotient_map X X' f \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1761 |
f ` (topspace X) = topspace X' \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1762 |
(\<forall>U. U \<subseteq> topspace X' \<longrightarrow> (closedin X {x. x \<in> topspace X \<and> f x \<in> U} \<longleftrightarrow> closedin X' U))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1763 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1764 |
have eq: "(topspace X - {x \<in> topspace X. f x \<in> U'}) = {x \<in> topspace X. f x \<in> topspace X' \<and> f x \<notin> U'}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1765 |
if "f ` topspace X = topspace X'" "U' \<subseteq> topspace X'" for U' |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1766 |
using that by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1767 |
have "(\<forall>U\<subseteq>topspace X'. openin X {x \<in> topspace X. f x \<in> U} = openin X' U) = |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1768 |
(\<forall>U\<subseteq>topspace X'. closedin X {x \<in> topspace X. f x \<in> U} = closedin X' U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1769 |
if "f ` topspace X = topspace X'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1770 |
proof (rule iffI; intro allI impI subsetI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1771 |
fix U' |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1772 |
assume *[rule_format]: "\<forall>U\<subseteq>topspace X'. openin X {x \<in> topspace X. f x \<in> U} = openin X' U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1773 |
and U': "U' \<subseteq> topspace X'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1774 |
show "closedin X {x \<in> topspace X. f x \<in> U'} = closedin X' U'" |
69286 | 1775 |
using U' by (auto simp add: closedin_def simp flip: * [of "topspace X' - U'"] eq [OF that]) |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1776 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1777 |
fix U' :: "'b set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1778 |
assume *[rule_format]: "\<forall>U\<subseteq>topspace X'. closedin X {x \<in> topspace X. f x \<in> U} = closedin X' U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1779 |
and U': "U' \<subseteq> topspace X'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1780 |
show "openin X {x \<in> topspace X. f x \<in> U'} = openin X' U'" |
69286 | 1781 |
using U' by (auto simp add: openin_closedin_eq simp flip: * [of "topspace X' - U'"] eq [OF that]) |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1782 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1783 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1784 |
unfolding quotient_map_def by force |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1785 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1786 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1787 |
lemma continuous_open_imp_quotient_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1788 |
assumes "continuous_map X X' f" and om: "open_map X X' f" and feq: "f ` (topspace X) = topspace X'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1789 |
shows "quotient_map X X' f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1790 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1791 |
{ fix U |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1792 |
assume U: "U \<subseteq> topspace X'" and "openin X {x \<in> topspace X. f x \<in> U}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1793 |
then have ope: "openin X' (f ` {x \<in> topspace X. f x \<in> U})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1794 |
using om unfolding open_map_def by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1795 |
then have "openin X' U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1796 |
using U feq by (subst openin_subopen) force |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1797 |
} |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1798 |
moreover have "openin X {x \<in> topspace X. f x \<in> U}" if "U \<subseteq> topspace X'" and "openin X' U" for U |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1799 |
using that assms unfolding continuous_map_def by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1800 |
ultimately show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1801 |
unfolding quotient_map_def using assms by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1802 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1803 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1804 |
lemma continuous_closed_imp_quotient_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1805 |
assumes "continuous_map X X' f" and om: "closed_map X X' f" and feq: "f ` (topspace X) = topspace X'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1806 |
shows "quotient_map X X' f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1807 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1808 |
have "f ` {x \<in> topspace X. f x \<in> U} = U" if "U \<subseteq> topspace X'" for U |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1809 |
using that feq by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1810 |
with assms show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1811 |
unfolding quotient_map_closedin closed_map_def continuous_map_closedin by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1812 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1813 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1814 |
lemma continuous_open_quotient_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1815 |
"\<lbrakk>continuous_map X X' f; open_map X X' f\<rbrakk> \<Longrightarrow> quotient_map X X' f \<longleftrightarrow> f ` (topspace X) = topspace X'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1816 |
by (meson continuous_open_imp_quotient_map quotient_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1817 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1818 |
lemma continuous_closed_quotient_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1819 |
"\<lbrakk>continuous_map X X' f; closed_map X X' f\<rbrakk> \<Longrightarrow> quotient_map X X' f \<longleftrightarrow> f ` (topspace X) = topspace X'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1820 |
by (meson continuous_closed_imp_quotient_map quotient_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1821 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1822 |
lemma injective_quotient_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1823 |
assumes "inj_on f (topspace X)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1824 |
shows "quotient_map X X' f \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1825 |
continuous_map X X' f \<and> open_map X X' f \<and> closed_map X X' f \<and> f ` (topspace X) = topspace X'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1826 |
(is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1827 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1828 |
assume L: ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1829 |
have "open_map X X' f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1830 |
proof (clarsimp simp add: open_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1831 |
fix U |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1832 |
assume "openin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1833 |
then have "U \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1834 |
by (simp add: openin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1835 |
moreover have "{x \<in> topspace X. f x \<in> f ` U} = U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1836 |
using \<open>U \<subseteq> topspace X\<close> assms inj_onD by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1837 |
ultimately show "openin X' (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1838 |
using L unfolding quotient_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1839 |
by (metis (no_types, lifting) Collect_cong \<open>openin X U\<close> image_mono) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1840 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1841 |
moreover have "closed_map X X' f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1842 |
proof (clarsimp simp add: closed_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1843 |
fix U |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1844 |
assume "closedin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1845 |
then have "U \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1846 |
by (simp add: closedin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1847 |
moreover have "{x \<in> topspace X. f x \<in> f ` U} = U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1848 |
using \<open>U \<subseteq> topspace X\<close> assms inj_onD by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1849 |
ultimately show "closedin X' (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1850 |
using L unfolding quotient_map_closedin |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1851 |
by (metis (no_types, lifting) Collect_cong \<open>closedin X U\<close> image_mono) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1852 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1853 |
ultimately show ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1854 |
using L by (simp add: quotient_imp_continuous_map quotient_imp_surjective_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1855 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1856 |
assume ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1857 |
then show ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1858 |
by (simp add: continuous_closed_imp_quotient_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1859 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1860 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1861 |
lemma continuous_compose_quotient_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1862 |
assumes f: "quotient_map X X' f" and g: "continuous_map X X'' (g \<circ> f)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1863 |
shows "continuous_map X' X'' g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1864 |
unfolding quotient_map_def continuous_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1865 |
proof (intro conjI ballI allI impI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1866 |
show "\<And>x'. x' \<in> topspace X' \<Longrightarrow> g x' \<in> topspace X''" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1867 |
using assms unfolding quotient_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1868 |
by (metis (no_types, hide_lams) continuous_map_image_subset_topspace image_comp image_subset_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1869 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1870 |
fix U'' :: "'c set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1871 |
assume U'': "openin X'' U''" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1872 |
have "f ` topspace X = topspace X'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1873 |
by (simp add: f quotient_imp_surjective_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1874 |
then have eq: "{x \<in> topspace X. f x \<in> topspace X' \<and> g (f x) \<in> U} = {x \<in> topspace X. g (f x) \<in> U}" for U |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1875 |
by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1876 |
have "openin X {x \<in> topspace X. f x \<in> topspace X' \<and> g (f x) \<in> U''}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1877 |
unfolding eq using U'' g openin_continuous_map_preimage by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1878 |
then have *: "openin X {x \<in> topspace X. f x \<in> {x \<in> topspace X'. g x \<in> U''}}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1879 |
by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1880 |
show "openin X' {x \<in> topspace X'. g x \<in> U''}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1881 |
using f unfolding quotient_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1882 |
by (metis (no_types) Collect_subset *) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1883 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1884 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1885 |
lemma continuous_compose_quotient_map_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1886 |
"quotient_map X X' f \<Longrightarrow> continuous_map X X'' (g \<circ> f) \<longleftrightarrow> continuous_map X' X'' g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1887 |
using continuous_compose_quotient_map continuous_map_compose quotient_imp_continuous_map by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1888 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1889 |
lemma quotient_map_compose_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1890 |
"quotient_map X X' f \<Longrightarrow> quotient_map X X'' (g \<circ> f) \<longleftrightarrow> quotient_map X' X'' g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1891 |
apply safe |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1892 |
apply (meson continuous_compose_quotient_map_eq quotient_imp_continuous_map quotient_map_from_composition) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1893 |
by (simp add: quotient_map_compose) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1894 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1895 |
lemma quotient_map_restriction: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1896 |
assumes quo: "quotient_map X Y f" and U: "{x \<in> topspace X. f x \<in> V} = U" and disj: "openin Y V \<or> closedin Y V" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1897 |
shows "quotient_map (subtopology X U) (subtopology Y V) f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1898 |
using disj |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1899 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1900 |
assume V: "openin Y V" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1901 |
with U have sub: "U \<subseteq> topspace X" "V \<subseteq> topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1902 |
by (auto simp: openin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1903 |
have fim: "f ` topspace X = topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1904 |
and Y: "\<And>U. U \<subseteq> topspace Y \<Longrightarrow> openin X {x \<in> topspace X. f x \<in> U} = openin Y U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1905 |
using quo unfolding quotient_map_def by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1906 |
have "openin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1907 |
using U V Y sub(2) by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1908 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1909 |
unfolding quotient_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1910 |
proof (intro conjI allI impI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1911 |
show "f ` topspace (subtopology X U) = topspace (subtopology Y V)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1912 |
using sub U fim by (auto simp: topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1913 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1914 |
fix Y' :: "'b set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1915 |
assume "Y' \<subseteq> topspace (subtopology Y V)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1916 |
then have "Y' \<subseteq> topspace Y" "Y' \<subseteq> V" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1917 |
by (simp_all add: topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1918 |
then have eq: "{x \<in> topspace X. x \<in> U \<and> f x \<in> Y'} = {x \<in> topspace X. f x \<in> Y'}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1919 |
using U by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1920 |
then show "openin (subtopology X U) {x \<in> topspace (subtopology X U). f x \<in> Y'} = openin (subtopology Y V) Y'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1921 |
using U V Y \<open>openin X U\<close> \<open>Y' \<subseteq> topspace Y\<close> \<open>Y' \<subseteq> V\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1922 |
by (simp add: topspace_subtopology openin_open_subtopology eq) (auto simp: openin_closedin_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1923 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1924 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1925 |
assume V: "closedin Y V" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1926 |
with U have sub: "U \<subseteq> topspace X" "V \<subseteq> topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1927 |
by (auto simp: closedin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1928 |
have fim: "f ` topspace X = topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1929 |
and Y: "\<And>U. U \<subseteq> topspace Y \<Longrightarrow> closedin X {x \<in> topspace X. f x \<in> U} = closedin Y U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1930 |
using quo unfolding quotient_map_closedin by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1931 |
have "closedin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1932 |
using U V Y sub(2) by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1933 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1934 |
unfolding quotient_map_closedin |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1935 |
proof (intro conjI allI impI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1936 |
show "f ` topspace (subtopology X U) = topspace (subtopology Y V)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1937 |
using sub U fim by (auto simp: topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1938 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1939 |
fix Y' :: "'b set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1940 |
assume "Y' \<subseteq> topspace (subtopology Y V)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1941 |
then have "Y' \<subseteq> topspace Y" "Y' \<subseteq> V" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1942 |
by (simp_all add: topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1943 |
then have eq: "{x \<in> topspace X. x \<in> U \<and> f x \<in> Y'} = {x \<in> topspace X. f x \<in> Y'}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1944 |
using U by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1945 |
then show "closedin (subtopology X U) {x \<in> topspace (subtopology X U). f x \<in> Y'} = closedin (subtopology Y V) Y'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1946 |
using U V Y \<open>closedin X U\<close> \<open>Y' \<subseteq> topspace Y\<close> \<open>Y' \<subseteq> V\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1947 |
by (simp add: topspace_subtopology closedin_closed_subtopology eq) (auto simp: closedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1948 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1949 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1950 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1951 |
lemma quotient_map_saturated_open: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1952 |
"quotient_map X Y f \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1953 |
continuous_map X Y f \<and> f ` (topspace X) = topspace Y \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1954 |
(\<forall>U. openin X U \<and> {x \<in> topspace X. f x \<in> f ` U} \<subseteq> U \<longrightarrow> openin Y (f ` U))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1955 |
(is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1956 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1957 |
assume L: ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1958 |
then have fim: "f ` topspace X = topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1959 |
and Y: "\<And>U. U \<subseteq> topspace Y \<Longrightarrow> openin Y U = openin X {x \<in> topspace X. f x \<in> U}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1960 |
unfolding quotient_map_def by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1961 |
show ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1962 |
proof (intro conjI allI impI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1963 |
show "continuous_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1964 |
by (simp add: L quotient_imp_continuous_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1965 |
show "f ` topspace X = topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1966 |
by (simp add: fim) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1967 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1968 |
fix U :: "'a set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1969 |
assume U: "openin X U \<and> {x \<in> topspace X. f x \<in> f ` U} \<subseteq> U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1970 |
then have sub: "f ` U \<subseteq> topspace Y" and eq: "{x \<in> topspace X. f x \<in> f ` U} = U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1971 |
using fim openin_subset by fastforce+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1972 |
show "openin Y (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1973 |
by (simp add: sub Y eq U) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1974 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1975 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1976 |
assume ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1977 |
then have YX: "\<And>U. openin Y U \<Longrightarrow> openin X {x \<in> topspace X. f x \<in> U}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1978 |
and fim: "f ` topspace X = topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1979 |
and XY: "\<And>U. \<lbrakk>openin X U; {x \<in> topspace X. f x \<in> f ` U} \<subseteq> U\<rbrakk> \<Longrightarrow> openin Y (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1980 |
by (auto simp: quotient_map_def continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1981 |
show ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1982 |
proof (simp add: quotient_map_def fim, intro allI impI iffI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1983 |
fix U :: "'b set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1984 |
assume "U \<subseteq> topspace Y" and X: "openin X {x \<in> topspace X. f x \<in> U}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1985 |
have feq: "f ` {x \<in> topspace X. f x \<in> U} = U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1986 |
using \<open>U \<subseteq> topspace Y\<close> fim by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1987 |
show "openin Y U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1988 |
using XY [OF X] by (simp add: feq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1989 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1990 |
fix U :: "'b set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1991 |
assume "U \<subseteq> topspace Y" and Y: "openin Y U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1992 |
show "openin X {x \<in> topspace X. f x \<in> U}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1993 |
by (metis YX [OF Y]) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1994 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1995 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1996 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1997 |
subsection\<open> Separated Sets\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1998 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1999 |
definition separatedin :: "'a topology \<Rightarrow> 'a set \<Rightarrow> 'a set \<Rightarrow> bool" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2000 |
where "separatedin X S T \<equiv> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2001 |
S \<subseteq> topspace X \<and> T \<subseteq> topspace X \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2002 |
S \<inter> X closure_of T = {} \<and> T \<inter> X closure_of S = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2003 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2004 |
lemma separatedin_empty [simp]: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2005 |
"separatedin X S {} \<longleftrightarrow> S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2006 |
"separatedin X {} S \<longleftrightarrow> S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2007 |
by (simp_all add: separatedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2008 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2009 |
lemma separatedin_refl [simp]: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2010 |
"separatedin X S S \<longleftrightarrow> S = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2011 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2012 |
have "\<And>x. \<lbrakk>separatedin X S S; x \<in> S\<rbrakk> \<Longrightarrow> False" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2013 |
by (metis all_not_in_conv closure_of_subset inf.orderE separatedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2014 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2015 |
by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2016 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2017 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2018 |
lemma separatedin_sym: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2019 |
"separatedin X S T \<longleftrightarrow> separatedin X T S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2020 |
by (auto simp: separatedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2021 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2022 |
lemma separatedin_imp_disjoint: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2023 |
"separatedin X S T \<Longrightarrow> disjnt S T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2024 |
by (meson closure_of_subset disjnt_def disjnt_subset2 separatedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2025 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2026 |
lemma separatedin_mono: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2027 |
"\<lbrakk>separatedin X S T; S' \<subseteq> S; T' \<subseteq> T\<rbrakk> \<Longrightarrow> separatedin X S' T'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2028 |
unfolding separatedin_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2029 |
using closure_of_mono by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2030 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2031 |
lemma separatedin_open_sets: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2032 |
"\<lbrakk>openin X S; openin X T\<rbrakk> \<Longrightarrow> separatedin X S T \<longleftrightarrow> disjnt S T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2033 |
unfolding disjnt_def separatedin_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2034 |
by (auto simp: openin_Int_closure_of_eq_empty openin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2035 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2036 |
lemma separatedin_closed_sets: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2037 |
"\<lbrakk>closedin X S; closedin X T\<rbrakk> \<Longrightarrow> separatedin X S T \<longleftrightarrow> disjnt S T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2038 |
by (metis closedin_def closure_of_eq disjnt_def inf_commute separatedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2039 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2040 |
lemma separatedin_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2041 |
"separatedin (subtopology X U) S T \<longleftrightarrow> S \<subseteq> U \<and> T \<subseteq> U \<and> separatedin X S T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2042 |
apply (simp add: separatedin_def closure_of_subtopology topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2043 |
apply (safe; metis Int_absorb1 inf.assoc inf.orderE insert_disjoint(2) mk_disjoint_insert) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2044 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2045 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2046 |
lemma separatedin_discrete_topology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2047 |
"separatedin (discrete_topology U) S T \<longleftrightarrow> S \<subseteq> U \<and> T \<subseteq> U \<and> disjnt S T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2048 |
by (metis openin_discrete_topology separatedin_def separatedin_open_sets topspace_discrete_topology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2049 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2050 |
lemma separated_eq_distinguishable: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2051 |
"separatedin X {x} {y} \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2052 |
x \<in> topspace X \<and> y \<in> topspace X \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2053 |
(\<exists>U. openin X U \<and> x \<in> U \<and> (y \<notin> U)) \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2054 |
(\<exists>v. openin X v \<and> y \<in> v \<and> (x \<notin> v))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2055 |
by (force simp: separatedin_def closure_of_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2056 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2057 |
lemma separatedin_Un [simp]: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2058 |
"separatedin X S (T \<union> U) \<longleftrightarrow> separatedin X S T \<and> separatedin X S U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2059 |
"separatedin X (S \<union> T) U \<longleftrightarrow> separatedin X S U \<and> separatedin X T U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2060 |
by (auto simp: separatedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2061 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2062 |
lemma separatedin_Union: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2063 |
"finite \<F> \<Longrightarrow> separatedin X S (\<Union>\<F>) \<longleftrightarrow> S \<subseteq> topspace X \<and> (\<forall>T \<in> \<F>. separatedin X S T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2064 |
"finite \<F> \<Longrightarrow> separatedin X (\<Union>\<F>) S \<longleftrightarrow> (\<forall>T \<in> \<F>. separatedin X S T) \<and> S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2065 |
by (auto simp: separatedin_def closure_of_Union) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2066 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2067 |
lemma separatedin_openin_diff: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2068 |
"\<lbrakk>openin X S; openin X T\<rbrakk> \<Longrightarrow> separatedin X (S - T) (T - S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2069 |
unfolding separatedin_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2070 |
apply (intro conjI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2071 |
apply (meson Diff_subset openin_subset subset_trans)+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2072 |
using openin_Int_closure_of_eq_empty by fastforce+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2073 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2074 |
lemma separatedin_closedin_diff: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2075 |
"\<lbrakk>closedin X S; closedin X T\<rbrakk> \<Longrightarrow> separatedin X (S - T) (T - S)" |
69286 | 2076 |
apply (simp add: separatedin_def Diff_Int_distrib2 closure_of_minimal inf_absorb2) |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2077 |
apply (meson Diff_subset closedin_subset subset_trans) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2078 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2079 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2080 |
lemma separation_closedin_Un_gen: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2081 |
"separatedin X S T \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2082 |
S \<subseteq> topspace X \<and> T \<subseteq> topspace X \<and> disjnt S T \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2083 |
closedin (subtopology X (S \<union> T)) S \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2084 |
closedin (subtopology X (S \<union> T)) T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2085 |
apply (simp add: separatedin_def closedin_Int_closure_of disjnt_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2086 |
using closure_of_subset apply blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2087 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2088 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2089 |
lemma separation_openin_Un_gen: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2090 |
"separatedin X S T \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2091 |
S \<subseteq> topspace X \<and> T \<subseteq> topspace X \<and> disjnt S T \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2092 |
openin (subtopology X (S \<union> T)) S \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2093 |
openin (subtopology X (S \<union> T)) T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2094 |
unfolding openin_closedin_eq topspace_subtopology separation_closedin_Un_gen disjnt_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2095 |
by (auto simp: Diff_triv Int_commute Un_Diff inf_absorb1 topspace_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2096 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2097 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2098 |
subsection\<open>Homeomorphisms\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2099 |
text\<open>(1-way and 2-way versions may be useful in places)\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2100 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2101 |
definition homeomorphic_map :: "'a topology \<Rightarrow> 'b topology \<Rightarrow> ('a \<Rightarrow> 'b) \<Rightarrow> bool" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2102 |
where |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2103 |
"homeomorphic_map X Y f \<equiv> quotient_map X Y f \<and> inj_on f (topspace X)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2104 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2105 |
definition homeomorphic_maps :: "'a topology \<Rightarrow> 'b topology \<Rightarrow> ('a \<Rightarrow> 'b) \<Rightarrow> ('b \<Rightarrow> 'a) \<Rightarrow> bool" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2106 |
where |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2107 |
"homeomorphic_maps X Y f g \<equiv> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2108 |
continuous_map X Y f \<and> continuous_map Y X g \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2109 |
(\<forall>x \<in> topspace X. g(f x) = x) \<and> (\<forall>y \<in> topspace Y. f(g y) = y)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2110 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2111 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2112 |
lemma homeomorphic_map_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2113 |
"\<lbrakk>homeomorphic_map X Y f; \<And>x. x \<in> topspace X \<Longrightarrow> f x = g x\<rbrakk> \<Longrightarrow> homeomorphic_map X Y g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2114 |
by (meson homeomorphic_map_def inj_on_cong quotient_map_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2115 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2116 |
lemma homeomorphic_maps_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2117 |
"\<lbrakk>homeomorphic_maps X Y f g; |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2118 |
\<And>x. x \<in> topspace X \<Longrightarrow> f x = f' x; \<And>y. y \<in> topspace Y \<Longrightarrow> g y = g' y\<rbrakk> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2119 |
\<Longrightarrow> homeomorphic_maps X Y f' g'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2120 |
apply (simp add: homeomorphic_maps_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2121 |
by (metis continuous_map_eq continuous_map_eq_image_closure_subset_gen image_subset_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2122 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2123 |
lemma homeomorphic_maps_sym: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2124 |
"homeomorphic_maps X Y f g \<longleftrightarrow> homeomorphic_maps Y X g f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2125 |
by (auto simp: homeomorphic_maps_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2126 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2127 |
lemma homeomorphic_maps_id: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2128 |
"homeomorphic_maps X Y id id \<longleftrightarrow> Y = X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2129 |
(is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2130 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2131 |
assume L: ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2132 |
then have "topspace X = topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2133 |
by (auto simp: homeomorphic_maps_def continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2134 |
with L show ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2135 |
unfolding homeomorphic_maps_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2136 |
by (metis topology_finer_continuous_id topology_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2137 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2138 |
assume ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2139 |
then show ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2140 |
unfolding homeomorphic_maps_def by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2141 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2142 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2143 |
lemma homeomorphic_map_id [simp]: "homeomorphic_map X Y id \<longleftrightarrow> Y = X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2144 |
(is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2145 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2146 |
assume L: ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2147 |
then have eq: "topspace X = topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2148 |
by (auto simp: homeomorphic_map_def continuous_map_def quotient_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2149 |
then have "\<And>S. openin X S \<longrightarrow> openin Y S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2150 |
by (meson L homeomorphic_map_def injective_quotient_map topology_finer_open_id) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2151 |
then show ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2152 |
using L unfolding homeomorphic_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2153 |
by (metis eq quotient_imp_continuous_map topology_eq topology_finer_continuous_id) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2154 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2155 |
assume ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2156 |
then show ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2157 |
unfolding homeomorphic_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2158 |
by (simp add: closed_map_id continuous_closed_imp_quotient_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2159 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2160 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2161 |
lemma homeomorphic_maps_i [simp]:"homeomorphic_maps X Y id id \<longleftrightarrow> Y = X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2162 |
by (metis (full_types) eq_id_iff homeomorphic_maps_id) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2163 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2164 |
lemma homeomorphic_map_i [simp]: "homeomorphic_map X Y id \<longleftrightarrow> Y = X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2165 |
by (metis (no_types) eq_id_iff homeomorphic_map_id) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2166 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2167 |
lemma homeomorphic_map_compose: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2168 |
assumes "homeomorphic_map X Y f" "homeomorphic_map Y X'' g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2169 |
shows "homeomorphic_map X X'' (g \<circ> f)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2170 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2171 |
have "inj_on g (f ` topspace X)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2172 |
by (metis (no_types) assms homeomorphic_map_def quotient_imp_surjective_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2173 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2174 |
using assms by (meson comp_inj_on homeomorphic_map_def quotient_map_compose_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2175 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2176 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2177 |
lemma homeomorphic_maps_compose: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2178 |
"homeomorphic_maps X Y f h \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2179 |
homeomorphic_maps Y X'' g k |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2180 |
\<Longrightarrow> homeomorphic_maps X X'' (g \<circ> f) (h \<circ> k)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2181 |
unfolding homeomorphic_maps_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2182 |
by (auto simp: continuous_map_compose; simp add: continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2183 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2184 |
lemma homeomorphic_eq_everything_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2185 |
"homeomorphic_map X Y f \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2186 |
continuous_map X Y f \<and> open_map X Y f \<and> closed_map X Y f \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2187 |
f ` (topspace X) = topspace Y \<and> inj_on f (topspace X)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2188 |
unfolding homeomorphic_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2189 |
by (force simp: injective_quotient_map intro: injective_quotient_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2190 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2191 |
lemma homeomorphic_imp_continuous_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2192 |
"homeomorphic_map X Y f \<Longrightarrow> continuous_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2193 |
by (simp add: homeomorphic_eq_everything_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2194 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2195 |
lemma homeomorphic_imp_open_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2196 |
"homeomorphic_map X Y f \<Longrightarrow> open_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2197 |
by (simp add: homeomorphic_eq_everything_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2198 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2199 |
lemma homeomorphic_imp_closed_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2200 |
"homeomorphic_map X Y f \<Longrightarrow> closed_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2201 |
by (simp add: homeomorphic_eq_everything_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2202 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2203 |
lemma homeomorphic_imp_surjective_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2204 |
"homeomorphic_map X Y f \<Longrightarrow> f ` (topspace X) = topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2205 |
by (simp add: homeomorphic_eq_everything_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2206 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2207 |
lemma homeomorphic_imp_injective_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2208 |
"homeomorphic_map X Y f \<Longrightarrow> inj_on f (topspace X)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2209 |
by (simp add: homeomorphic_eq_everything_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2210 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2211 |
lemma bijective_open_imp_homeomorphic_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2212 |
"\<lbrakk>continuous_map X Y f; open_map X Y f; f ` (topspace X) = topspace Y; inj_on f (topspace X)\<rbrakk> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2213 |
\<Longrightarrow> homeomorphic_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2214 |
by (simp add: homeomorphic_map_def continuous_open_imp_quotient_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2215 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2216 |
lemma bijective_closed_imp_homeomorphic_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2217 |
"\<lbrakk>continuous_map X Y f; closed_map X Y f; f ` (topspace X) = topspace Y; inj_on f (topspace X)\<rbrakk> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2218 |
\<Longrightarrow> homeomorphic_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2219 |
by (simp add: continuous_closed_quotient_map homeomorphic_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2220 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2221 |
lemma open_eq_continuous_inverse_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2222 |
assumes X: "\<And>x. x \<in> topspace X \<Longrightarrow> f x \<in> topspace Y \<and> g(f x) = x" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2223 |
and Y: "\<And>y. y \<in> topspace Y \<Longrightarrow> g y \<in> topspace X \<and> f(g y) = y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2224 |
shows "open_map X Y f \<longleftrightarrow> continuous_map Y X g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2225 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2226 |
have eq: "{x \<in> topspace Y. g x \<in> U} = f ` U" if "openin X U" for U |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2227 |
using openin_subset [OF that] by (force simp: X Y image_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2228 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2229 |
by (auto simp: Y open_map_def continuous_map_def eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2230 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2231 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2232 |
lemma closed_eq_continuous_inverse_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2233 |
assumes X: "\<And>x. x \<in> topspace X \<Longrightarrow> f x \<in> topspace Y \<and> g(f x) = x" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2234 |
and Y: "\<And>y. y \<in> topspace Y \<Longrightarrow> g y \<in> topspace X \<and> f(g y) = y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2235 |
shows "closed_map X Y f \<longleftrightarrow> continuous_map Y X g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2236 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2237 |
have eq: "{x \<in> topspace Y. g x \<in> U} = f ` U" if "closedin X U" for U |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2238 |
using closedin_subset [OF that] by (force simp: X Y image_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2239 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2240 |
by (auto simp: Y closed_map_def continuous_map_closedin eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2241 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2242 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2243 |
lemma homeomorphic_maps_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2244 |
"homeomorphic_maps X Y f g \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2245 |
homeomorphic_map X Y f \<and> homeomorphic_map Y X g \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2246 |
(\<forall>x \<in> topspace X. g(f x) = x) \<and> (\<forall>y \<in> topspace Y. f(g y) = y)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2247 |
(is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2248 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2249 |
assume ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2250 |
then have L: "continuous_map X Y f" "continuous_map Y X g" "\<forall>x\<in>topspace X. g (f x) = x" "\<forall>x'\<in>topspace Y. f (g x') = x'" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2251 |
by (auto simp: homeomorphic_maps_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2252 |
show ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2253 |
proof (intro conjI bijective_open_imp_homeomorphic_map L) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2254 |
show "open_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2255 |
using L using open_eq_continuous_inverse_map [of concl: X Y f g] by (simp add: continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2256 |
show "open_map Y X g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2257 |
using L using open_eq_continuous_inverse_map [of concl: Y X g f] by (simp add: continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2258 |
show "f ` topspace X = topspace Y" "g ` topspace Y = topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2259 |
using L by (force simp: continuous_map_closedin)+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2260 |
show "inj_on f (topspace X)" "inj_on g (topspace Y)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2261 |
using L unfolding inj_on_def by metis+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2262 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2263 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2264 |
assume ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2265 |
then show ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2266 |
by (auto simp: homeomorphic_maps_def homeomorphic_imp_continuous_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2267 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2268 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2269 |
lemma homeomorphic_maps_imp_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2270 |
"homeomorphic_maps X Y f g \<Longrightarrow> homeomorphic_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2271 |
using homeomorphic_maps_map by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2272 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2273 |
lemma homeomorphic_map_maps: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2274 |
"homeomorphic_map X Y f \<longleftrightarrow> (\<exists>g. homeomorphic_maps X Y f g)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2275 |
(is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2276 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2277 |
assume ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2278 |
then have L: "continuous_map X Y f" "open_map X Y f" "closed_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2279 |
"f ` (topspace X) = topspace Y" "inj_on f (topspace X)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2280 |
by (auto simp: homeomorphic_eq_everything_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2281 |
have X: "\<And>x. x \<in> topspace X \<Longrightarrow> f x \<in> topspace Y \<and> inv_into (topspace X) f (f x) = x" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2282 |
using L by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2283 |
have Y: "\<And>y. y \<in> topspace Y \<Longrightarrow> inv_into (topspace X) f y \<in> topspace X \<and> f (inv_into (topspace X) f y) = y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2284 |
by (simp add: L f_inv_into_f inv_into_into) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2285 |
have "homeomorphic_maps X Y f (inv_into (topspace X) f)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2286 |
unfolding homeomorphic_maps_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2287 |
proof (intro conjI L) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2288 |
show "continuous_map Y X (inv_into (topspace X) f)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2289 |
by (simp add: L X Y flip: open_eq_continuous_inverse_map [where f=f]) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2290 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2291 |
show "\<forall>x\<in>topspace X. inv_into (topspace X) f (f x) = x" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2292 |
"\<forall>y\<in>topspace Y. f (inv_into (topspace X) f y) = y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2293 |
using X Y by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2294 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2295 |
then show ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2296 |
by metis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2297 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2298 |
assume ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2299 |
then show ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2300 |
using homeomorphic_maps_map by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2301 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2302 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2303 |
lemma homeomorphic_maps_involution: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2304 |
"\<lbrakk>continuous_map X X f; \<And>x. x \<in> topspace X \<Longrightarrow> f(f x) = x\<rbrakk> \<Longrightarrow> homeomorphic_maps X X f f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2305 |
by (auto simp: homeomorphic_maps_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2306 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2307 |
lemma homeomorphic_map_involution: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2308 |
"\<lbrakk>continuous_map X X f; \<And>x. x \<in> topspace X \<Longrightarrow> f(f x) = x\<rbrakk> \<Longrightarrow> homeomorphic_map X X f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2309 |
using homeomorphic_maps_involution homeomorphic_maps_map by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2310 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2311 |
lemma homeomorphic_map_openness: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2312 |
assumes hom: "homeomorphic_map X Y f" and U: "U \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2313 |
shows "openin Y (f ` U) \<longleftrightarrow> openin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2314 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2315 |
obtain g where "homeomorphic_maps X Y f g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2316 |
using assms by (auto simp: homeomorphic_map_maps) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2317 |
then have g: "homeomorphic_map Y X g" and gf: "\<And>x. x \<in> topspace X \<Longrightarrow> g(f x) = x" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2318 |
by (auto simp: homeomorphic_maps_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2319 |
then have "openin X U \<Longrightarrow> openin Y (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2320 |
using hom homeomorphic_imp_open_map open_map_def by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2321 |
show "openin Y (f ` U) = openin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2322 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2323 |
assume L: "openin Y (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2324 |
have "U = g ` (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2325 |
using U gf by force |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2326 |
then show "openin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2327 |
by (metis L homeomorphic_imp_open_map open_map_def g) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2328 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2329 |
assume "openin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2330 |
then show "openin Y (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2331 |
using hom homeomorphic_imp_open_map open_map_def by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2332 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2333 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2334 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2335 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2336 |
lemma homeomorphic_map_closedness: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2337 |
assumes hom: "homeomorphic_map X Y f" and U: "U \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2338 |
shows "closedin Y (f ` U) \<longleftrightarrow> closedin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2339 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2340 |
obtain g where "homeomorphic_maps X Y f g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2341 |
using assms by (auto simp: homeomorphic_map_maps) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2342 |
then have g: "homeomorphic_map Y X g" and gf: "\<And>x. x \<in> topspace X \<Longrightarrow> g(f x) = x" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2343 |
by (auto simp: homeomorphic_maps_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2344 |
then have "closedin X U \<Longrightarrow> closedin Y (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2345 |
using hom homeomorphic_imp_closed_map closed_map_def by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2346 |
show "closedin Y (f ` U) = closedin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2347 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2348 |
assume L: "closedin Y (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2349 |
have "U = g ` (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2350 |
using U gf by force |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2351 |
then show "closedin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2352 |
by (metis L homeomorphic_imp_closed_map closed_map_def g) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2353 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2354 |
assume "closedin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2355 |
then show "closedin Y (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2356 |
using hom homeomorphic_imp_closed_map closed_map_def by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2357 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2358 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2359 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2360 |
lemma homeomorphic_map_openness_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2361 |
"homeomorphic_map X Y f \<Longrightarrow> openin X U \<longleftrightarrow> U \<subseteq> topspace X \<and> openin Y (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2362 |
by (meson homeomorphic_map_openness openin_closedin_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2363 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2364 |
lemma homeomorphic_map_closedness_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2365 |
"homeomorphic_map X Y f \<Longrightarrow> closedin X U \<longleftrightarrow> U \<subseteq> topspace X \<and> closedin Y (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2366 |
by (meson closedin_subset homeomorphic_map_closedness) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2367 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2368 |
lemma all_openin_homeomorphic_image: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2369 |
assumes "homeomorphic_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2370 |
shows "(\<forall>V. openin Y V \<longrightarrow> P V) \<longleftrightarrow> (\<forall>U. openin X U \<longrightarrow> P(f ` U))" (is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2371 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2372 |
assume ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2373 |
then show ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2374 |
by (meson assms homeomorphic_map_openness_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2375 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2376 |
assume ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2377 |
then show ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2378 |
by (metis (no_types, lifting) assms homeomorphic_imp_surjective_map homeomorphic_map_openness openin_subset subset_image_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2379 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2380 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2381 |
lemma all_closedin_homeomorphic_image: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2382 |
assumes "homeomorphic_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2383 |
shows "(\<forall>V. closedin Y V \<longrightarrow> P V) \<longleftrightarrow> (\<forall>U. closedin X U \<longrightarrow> P(f ` U))" (is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2384 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2385 |
assume ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2386 |
then show ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2387 |
by (meson assms homeomorphic_map_closedness_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2388 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2389 |
assume ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2390 |
then show ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2391 |
by (metis (no_types, lifting) assms homeomorphic_imp_surjective_map homeomorphic_map_closedness closedin_subset subset_image_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2392 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2393 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2394 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2395 |
lemma homeomorphic_map_derived_set_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2396 |
assumes hom: "homeomorphic_map X Y f" and S: "S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2397 |
shows "Y derived_set_of (f ` S) = f ` (X derived_set_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2398 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2399 |
have fim: "f ` (topspace X) = topspace Y" and inj: "inj_on f (topspace X)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2400 |
using hom by (auto simp: homeomorphic_eq_everything_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2401 |
have iff: "(\<forall>T. x \<in> T \<and> openin X T \<longrightarrow> (\<exists>y. y \<noteq> x \<and> y \<in> S \<and> y \<in> T)) = |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2402 |
(\<forall>T. T \<subseteq> topspace Y \<longrightarrow> f x \<in> T \<longrightarrow> openin Y T \<longrightarrow> (\<exists>y. y \<noteq> f x \<and> y \<in> f ` S \<and> y \<in> T))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2403 |
if "x \<in> topspace X" for x |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2404 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2405 |
have 1: "(x \<in> T \<and> openin X T) = (T \<subseteq> topspace X \<and> f x \<in> f ` T \<and> openin Y (f ` T))" for T |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2406 |
by (meson hom homeomorphic_map_openness_eq inj inj_on_image_mem_iff that) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2407 |
have 2: "(\<exists>y. y \<noteq> x \<and> y \<in> S \<and> y \<in> T) = (\<exists>y. y \<noteq> f x \<and> y \<in> f ` S \<and> y \<in> f ` T)" (is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2408 |
if "T \<subseteq> topspace X \<and> f x \<in> f ` T \<and> openin Y (f ` T)" for T |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2409 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2410 |
show "?lhs \<Longrightarrow> ?rhs" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2411 |
by (meson "1" imageI inj inj_on_eq_iff inj_on_subset that) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2412 |
show "?rhs \<Longrightarrow> ?lhs" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2413 |
using S inj inj_onD that by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2414 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2415 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2416 |
apply (simp flip: fim add: all_subset_image) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2417 |
apply (simp flip: imp_conjL) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2418 |
by (intro all_cong1 imp_cong 1 2) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2419 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2420 |
have *: "\<lbrakk>T = f ` S; \<And>x. x \<in> S \<Longrightarrow> P x \<longleftrightarrow> Q(f x)\<rbrakk> \<Longrightarrow> {y. y \<in> T \<and> Q y} = f ` {x \<in> S. P x}" for T S P Q |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2421 |
by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2422 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2423 |
unfolding derived_set_of_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2424 |
apply (rule *) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2425 |
using fim apply blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2426 |
using iff openin_subset by force |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2427 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2428 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2429 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2430 |
lemma homeomorphic_map_closure_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2431 |
assumes hom: "homeomorphic_map X Y f" and S: "S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2432 |
shows "Y closure_of (f ` S) = f ` (X closure_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2433 |
unfolding closure_of |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2434 |
using homeomorphic_imp_surjective_map [OF hom] S |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2435 |
by (auto simp: in_derived_set_of homeomorphic_map_derived_set_of [OF assms]) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2436 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2437 |
lemma homeomorphic_map_interior_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2438 |
assumes hom: "homeomorphic_map X Y f" and S: "S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2439 |
shows "Y interior_of (f ` S) = f ` (X interior_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2440 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2441 |
{ fix y |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2442 |
assume "y \<in> topspace Y" and "y \<notin> Y closure_of (topspace Y - f ` S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2443 |
then have "y \<in> f ` (topspace X - X closure_of (topspace X - S))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2444 |
using homeomorphic_eq_everything_map [THEN iffD1, OF hom] homeomorphic_map_closure_of [OF hom] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2445 |
by (metis DiffI Diff_subset S closure_of_subset_topspace inj_on_image_set_diff) } |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2446 |
moreover |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2447 |
{ fix x |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2448 |
assume "x \<in> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2449 |
then have "f x \<in> topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2450 |
using hom homeomorphic_imp_surjective_map by blast } |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2451 |
moreover |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2452 |
{ fix x |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2453 |
assume "x \<in> topspace X" and "x \<notin> X closure_of (topspace X - S)" and "f x \<in> Y closure_of (topspace Y - f ` S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2454 |
then have "False" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2455 |
using homeomorphic_map_closure_of [OF hom] hom |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2456 |
unfolding homeomorphic_eq_everything_map |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2457 |
by (metis (no_types, lifting) Diff_subset S closure_of_subset_topspace inj_on_image_mem_iff_alt inj_on_image_set_diff) } |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2458 |
ultimately show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2459 |
by (auto simp: interior_of_closure_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2460 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2461 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2462 |
lemma homeomorphic_map_frontier_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2463 |
assumes hom: "homeomorphic_map X Y f" and S: "S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2464 |
shows "Y frontier_of (f ` S) = f ` (X frontier_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2465 |
unfolding frontier_of_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2466 |
proof (intro equalityI subsetI DiffI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2467 |
fix y |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2468 |
assume "y \<in> Y closure_of f ` S - Y interior_of f ` S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2469 |
then show "y \<in> f ` (X closure_of S - X interior_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2470 |
using S hom homeomorphic_map_closure_of homeomorphic_map_interior_of by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2471 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2472 |
fix y |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2473 |
assume "y \<in> f ` (X closure_of S - X interior_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2474 |
then show "y \<in> Y closure_of f ` S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2475 |
using S hom homeomorphic_map_closure_of by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2476 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2477 |
fix x |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2478 |
assume "x \<in> f ` (X closure_of S - X interior_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2479 |
then obtain y where y: "x = f y" "y \<in> X closure_of S" "y \<notin> X interior_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2480 |
by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2481 |
then have "y \<in> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2482 |
by (simp add: in_closure_of) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2483 |
then have "f y \<notin> f ` (X interior_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2484 |
by (meson hom homeomorphic_eq_everything_map inj_on_image_mem_iff_alt interior_of_subset_topspace y(3)) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2485 |
then show "x \<notin> Y interior_of f ` S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2486 |
using S hom homeomorphic_map_interior_of y(1) by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2487 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2488 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2489 |
lemma homeomorphic_maps_subtopologies: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2490 |
"\<lbrakk>homeomorphic_maps X Y f g; f ` (topspace X \<inter> S) = topspace Y \<inter> T\<rbrakk> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2491 |
\<Longrightarrow> homeomorphic_maps (subtopology X S) (subtopology Y T) f g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2492 |
unfolding homeomorphic_maps_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2493 |
by (force simp: continuous_map_from_subtopology topspace_subtopology continuous_map_in_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2494 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2495 |
lemma homeomorphic_maps_subtopologies_alt: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2496 |
"\<lbrakk>homeomorphic_maps X Y f g; f ` (topspace X \<inter> S) \<subseteq> T; g ` (topspace Y \<inter> T) \<subseteq> S\<rbrakk> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2497 |
\<Longrightarrow> homeomorphic_maps (subtopology X S) (subtopology Y T) f g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2498 |
unfolding homeomorphic_maps_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2499 |
by (force simp: continuous_map_from_subtopology topspace_subtopology continuous_map_in_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2500 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2501 |
lemma homeomorphic_map_subtopologies: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2502 |
"\<lbrakk>homeomorphic_map X Y f; f ` (topspace X \<inter> S) = topspace Y \<inter> T\<rbrakk> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2503 |
\<Longrightarrow> homeomorphic_map (subtopology X S) (subtopology Y T) f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2504 |
by (meson homeomorphic_map_maps homeomorphic_maps_subtopologies) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2505 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2506 |
lemma homeomorphic_map_subtopologies_alt: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2507 |
"\<lbrakk>homeomorphic_map X Y f; |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2508 |
\<And>x. \<lbrakk>x \<in> topspace X; f x \<in> topspace Y\<rbrakk> \<Longrightarrow> f x \<in> T \<longleftrightarrow> x \<in> S\<rbrakk> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2509 |
\<Longrightarrow> homeomorphic_map (subtopology X S) (subtopology Y T) f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2510 |
unfolding homeomorphic_map_maps |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2511 |
apply (erule ex_forward) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2512 |
apply (rule homeomorphic_maps_subtopologies) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2513 |
apply (auto simp: homeomorphic_maps_def continuous_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2514 |
by (metis IntI image_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2515 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2516 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2517 |
subsection\<open>Relation of homeomorphism between topological spaces\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2518 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2519 |
definition homeomorphic_space (infixr "homeomorphic'_space" 50) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2520 |
where "X homeomorphic_space Y \<equiv> \<exists>f g. homeomorphic_maps X Y f g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2521 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2522 |
lemma homeomorphic_space_refl: "X homeomorphic_space X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2523 |
by (meson homeomorphic_maps_id homeomorphic_space_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2524 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2525 |
lemma homeomorphic_space_sym: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2526 |
"X homeomorphic_space Y \<longleftrightarrow> Y homeomorphic_space X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2527 |
unfolding homeomorphic_space_def by (metis homeomorphic_maps_sym) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2528 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2529 |
lemma homeomorphic_space_trans: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2530 |
"\<lbrakk>X1 homeomorphic_space X2; X2 homeomorphic_space X3\<rbrakk> \<Longrightarrow> X1 homeomorphic_space X3" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2531 |
unfolding homeomorphic_space_def by (metis homeomorphic_maps_compose) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2532 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2533 |
lemma homeomorphic_space: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2534 |
"X homeomorphic_space Y \<longleftrightarrow> (\<exists>f. homeomorphic_map X Y f)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2535 |
by (simp add: homeomorphic_map_maps homeomorphic_space_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2536 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2537 |
lemma homeomorphic_maps_imp_homeomorphic_space: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2538 |
"homeomorphic_maps X Y f g \<Longrightarrow> X homeomorphic_space Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2539 |
unfolding homeomorphic_space_def by metis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2540 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2541 |
lemma homeomorphic_map_imp_homeomorphic_space: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2542 |
"homeomorphic_map X Y f \<Longrightarrow> X homeomorphic_space Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2543 |
unfolding homeomorphic_map_maps |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2544 |
using homeomorphic_space_def by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2545 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2546 |
lemma homeomorphic_empty_space: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2547 |
"X homeomorphic_space Y \<Longrightarrow> topspace X = {} \<longleftrightarrow> topspace Y = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2548 |
by (metis homeomorphic_imp_surjective_map homeomorphic_space image_is_empty) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2549 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2550 |
lemma homeomorphic_empty_space_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2551 |
assumes "topspace X = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2552 |
shows "X homeomorphic_space Y \<longleftrightarrow> topspace Y = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2553 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2554 |
have "\<forall>f t. continuous_map X (t::'b topology) f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2555 |
using assms continuous_map_on_empty by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2556 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2557 |
by (metis (no_types) assms continuous_map_on_empty empty_iff homeomorphic_empty_space homeomorphic_maps_def homeomorphic_space_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2558 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2559 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2560 |
subsection\<open>Connected topological spaces\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2561 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2562 |
definition connected_space :: "'a topology \<Rightarrow> bool" where |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2563 |
"connected_space X \<equiv> |
69508 | 2564 |
\<not>(\<exists>E1 E2. openin X E1 \<and> openin X E2 \<and> |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2565 |
topspace X \<subseteq> E1 \<union> E2 \<and> E1 \<inter> E2 = {} \<and> E1 \<noteq> {} \<and> E2 \<noteq> {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2566 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2567 |
definition connectedin :: "'a topology \<Rightarrow> 'a set \<Rightarrow> bool" where |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2568 |
"connectedin X S \<equiv> S \<subseteq> topspace X \<and> connected_space (subtopology X S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2569 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2570 |
lemma connectedin_subset_topspace: "connectedin X S \<Longrightarrow> S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2571 |
by (simp add: connectedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2572 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2573 |
lemma connectedin_topspace: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2574 |
"connectedin X (topspace X) \<longleftrightarrow> connected_space X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2575 |
by (simp add: connectedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2576 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2577 |
lemma connected_space_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2578 |
"connectedin X S \<Longrightarrow> connected_space (subtopology X S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2579 |
by (simp add: connectedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2580 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2581 |
lemma connectedin_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2582 |
"connectedin (subtopology X S) T \<longleftrightarrow> connectedin X T \<and> T \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2583 |
by (force simp: connectedin_def subtopology_subtopology topspace_subtopology inf_absorb2) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2584 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2585 |
lemma connected_space_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2586 |
"connected_space X \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2587 |
(\<nexists>E1 E2. openin X E1 \<and> openin X E2 \<and> E1 \<union> E2 = topspace X \<and> E1 \<inter> E2 = {} \<and> E1 \<noteq> {} \<and> E2 \<noteq> {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2588 |
unfolding connected_space_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2589 |
by (metis openin_Un openin_subset subset_antisym) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2590 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2591 |
lemma connected_space_closedin: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2592 |
"connected_space X \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2593 |
(\<nexists>E1 E2. closedin X E1 \<and> closedin X E2 \<and> topspace X \<subseteq> E1 \<union> E2 \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2594 |
E1 \<inter> E2 = {} \<and> E1 \<noteq> {} \<and> E2 \<noteq> {})" (is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2595 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2596 |
assume ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2597 |
then have L: "\<And>E1 E2. \<lbrakk>openin X E1; E1 \<inter> E2 = {}; topspace X \<subseteq> E1 \<union> E2; openin X E2\<rbrakk> \<Longrightarrow> E1 = {} \<or> E2 = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2598 |
by (simp add: connected_space_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2599 |
show ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2600 |
unfolding connected_space_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2601 |
proof clarify |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2602 |
fix E1 E2 |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2603 |
assume "closedin X E1" and "closedin X E2" and "topspace X \<subseteq> E1 \<union> E2" and "E1 \<inter> E2 = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2604 |
and "E1 \<noteq> {}" and "E2 \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2605 |
have "E1 \<union> E2 = topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2606 |
by (meson Un_subset_iff \<open>closedin X E1\<close> \<open>closedin X E2\<close> \<open>topspace X \<subseteq> E1 \<union> E2\<close> closedin_def subset_antisym) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2607 |
then have "topspace X - E2 = E1" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2608 |
using \<open>E1 \<inter> E2 = {}\<close> by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2609 |
then have "topspace X = E1" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2610 |
using \<open>E1 \<noteq> {}\<close> L \<open>closedin X E1\<close> \<open>closedin X E2\<close> by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2611 |
then show "False" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2612 |
using \<open>E1 \<inter> E2 = {}\<close> \<open>E1 \<union> E2 = topspace X\<close> \<open>E2 \<noteq> {}\<close> by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2613 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2614 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2615 |
assume R: ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2616 |
show ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2617 |
unfolding connected_space_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2618 |
proof clarify |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2619 |
fix E1 E2 |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2620 |
assume "openin X E1" and "openin X E2" and "topspace X \<subseteq> E1 \<union> E2" and "E1 \<inter> E2 = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2621 |
and "E1 \<noteq> {}" and "E2 \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2622 |
have "E1 \<union> E2 = topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2623 |
by (meson Un_subset_iff \<open>openin X E1\<close> \<open>openin X E2\<close> \<open>topspace X \<subseteq> E1 \<union> E2\<close> openin_closedin_eq subset_antisym) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2624 |
then have "topspace X - E2 = E1" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2625 |
using \<open>E1 \<inter> E2 = {}\<close> by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2626 |
then have "topspace X = E1" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2627 |
using \<open>E1 \<noteq> {}\<close> R \<open>openin X E1\<close> \<open>openin X E2\<close> by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2628 |
then show "False" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2629 |
using \<open>E1 \<inter> E2 = {}\<close> \<open>E1 \<union> E2 = topspace X\<close> \<open>E2 \<noteq> {}\<close> by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2630 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2631 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2632 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2633 |
lemma connected_space_closedin_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2634 |
"connected_space X \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2635 |
(\<nexists>E1 E2. closedin X E1 \<and> closedin X E2 \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2636 |
E1 \<union> E2 = topspace X \<and> E1 \<inter> E2 = {} \<and> E1 \<noteq> {} \<and> E2 \<noteq> {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2637 |
apply (simp add: connected_space_closedin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2638 |
apply (intro all_cong) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2639 |
using closedin_subset apply blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2640 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2641 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2642 |
lemma connected_space_clopen_in: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2643 |
"connected_space X \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2644 |
(\<forall>T. openin X T \<and> closedin X T \<longrightarrow> T = {} \<or> T = topspace X)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2645 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2646 |
have eq: "openin X E1 \<and> openin X E2 \<and> E1 \<union> E2 = topspace X \<and> E1 \<inter> E2 = {} \<and> P |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2647 |
\<longleftrightarrow> E2 = topspace X - E1 \<and> openin X E1 \<and> openin X E2 \<and> P" for E1 E2 P |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2648 |
using openin_subset by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2649 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2650 |
unfolding connected_space_eq eq closedin_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2651 |
by (auto simp: openin_closedin_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2652 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2653 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2654 |
lemma connectedin: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2655 |
"connectedin X S \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2656 |
S \<subseteq> topspace X \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2657 |
(\<nexists>E1 E2. |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2658 |
openin X E1 \<and> openin X E2 \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2659 |
S \<subseteq> E1 \<union> E2 \<and> E1 \<inter> E2 \<inter> S = {} \<and> E1 \<inter> S \<noteq> {} \<and> E2 \<inter> S \<noteq> {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2660 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2661 |
have *: "(\<exists>E1:: 'a set. \<exists>E2:: 'a set. (\<exists>T1:: 'a set. P1 T1 \<and> E1 = f1 T1) \<and> (\<exists>T2:: 'a set. P2 T2 \<and> E2 = f2 T2) \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2662 |
R E1 E2) \<longleftrightarrow> (\<exists>T1 T2. P1 T1 \<and> P2 T2 \<and> R(f1 T1) (f2 T2))" for P1 f1 P2 f2 R |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2663 |
by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2664 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2665 |
unfolding connectedin_def connected_space_def openin_subtopology topspace_subtopology Not_eq_iff * |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2666 |
apply (intro conj_cong arg_cong [where f=Not] ex_cong1 refl) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2667 |
apply (blast elim: dest!: openin_subset)+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2668 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2669 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2670 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2671 |
lemma connectedin_iff_connected_real [simp]: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2672 |
"connectedin euclideanreal S \<longleftrightarrow> connected S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2673 |
by (simp add: connected_def connectedin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2674 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2675 |
lemma connectedin_closedin: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2676 |
"connectedin X S \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2677 |
S \<subseteq> topspace X \<and> |
69508 | 2678 |
\<not>(\<exists>E1 E2. closedin X E1 \<and> closedin X E2 \<and> |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2679 |
S \<subseteq> (E1 \<union> E2) \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2680 |
(E1 \<inter> E2 \<inter> S = {}) \<and> |
69508 | 2681 |
\<not>(E1 \<inter> S = {}) \<and> \<not>(E2 \<inter> S = {}))" |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2682 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2683 |
have *: "(\<exists>E1:: 'a set. \<exists>E2:: 'a set. (\<exists>T1:: 'a set. P1 T1 \<and> E1 = f1 T1) \<and> (\<exists>T2:: 'a set. P2 T2 \<and> E2 = f2 T2) \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2684 |
R E1 E2) \<longleftrightarrow> (\<exists>T1 T2. P1 T1 \<and> P2 T2 \<and> R(f1 T1) (f2 T2))" for P1 f1 P2 f2 R |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2685 |
by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2686 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2687 |
unfolding connectedin_def connected_space_closedin closedin_subtopology topspace_subtopology Not_eq_iff * |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2688 |
apply (intro conj_cong arg_cong [where f=Not] ex_cong1 refl) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2689 |
apply (blast elim: dest!: openin_subset)+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2690 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2691 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2692 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2693 |
lemma connectedin_empty [simp]: "connectedin X {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2694 |
by (simp add: connectedin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2695 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2696 |
lemma connected_space_topspace_empty: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2697 |
"topspace X = {} \<Longrightarrow> connected_space X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2698 |
using connectedin_topspace by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2699 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2700 |
lemma connectedin_sing [simp]: "connectedin X {a} \<longleftrightarrow> a \<in> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2701 |
by (simp add: connectedin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2702 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2703 |
lemma connectedin_absolute [simp]: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2704 |
"connectedin (subtopology X S) S \<longleftrightarrow> connectedin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2705 |
apply (simp only: connectedin_def topspace_subtopology subtopology_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2706 |
apply (intro conj_cong imp_cong arg_cong [where f=Not] all_cong1 ex_cong1 refl) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2707 |
by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2708 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2709 |
lemma connectedin_Union: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2710 |
assumes \<U>: "\<And>S. S \<in> \<U> \<Longrightarrow> connectedin X S" and ne: "\<Inter>\<U> \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2711 |
shows "connectedin X (\<Union>\<U>)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2712 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2713 |
have "\<Union>\<U> \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2714 |
using \<U> by (simp add: Union_least connectedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2715 |
moreover have False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2716 |
if "openin X E1" "openin X E2" and cover: "\<Union>\<U> \<subseteq> E1 \<union> E2" and disj: "E1 \<inter> E2 \<inter> \<Union>\<U> = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2717 |
and overlap1: "E1 \<inter> \<Union>\<U> \<noteq> {}" and overlap2: "E2 \<inter> \<Union>\<U> \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2718 |
for E1 E2 |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2719 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2720 |
have disjS: "E1 \<inter> E2 \<inter> S = {}" if "S \<in> \<U>" for S |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2721 |
using Diff_triv that disj by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2722 |
have coverS: "S \<subseteq> E1 \<union> E2" if "S \<in> \<U>" for S |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2723 |
using that cover by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2724 |
have "\<U> \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2725 |
using overlap1 by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2726 |
obtain a where a: "\<And>U. U \<in> \<U> \<Longrightarrow> a \<in> U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2727 |
using ne by force |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2728 |
with \<open>\<U> \<noteq> {}\<close> have "a \<in> \<Union>\<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2729 |
by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2730 |
then consider "a \<in> E1" | "a \<in> E2" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2731 |
using \<open>\<Union>\<U> \<subseteq> E1 \<union> E2\<close> by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2732 |
then show False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2733 |
proof cases |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2734 |
case 1 |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2735 |
then obtain b S where "b \<in> E2" "b \<in> S" "S \<in> \<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2736 |
using overlap2 by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2737 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2738 |
using "1" \<open>openin X E1\<close> \<open>openin X E2\<close> disjS coverS a [OF \<open>S \<in> \<U>\<close>] \<U>[OF \<open>S \<in> \<U>\<close>] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2739 |
unfolding connectedin |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2740 |
by (meson disjoint_iff_not_equal) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2741 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2742 |
case 2 |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2743 |
then obtain b S where "b \<in> E1" "b \<in> S" "S \<in> \<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2744 |
using overlap1 by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2745 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2746 |
using "2" \<open>openin X E1\<close> \<open>openin X E2\<close> disjS coverS a [OF \<open>S \<in> \<U>\<close>] \<U>[OF \<open>S \<in> \<U>\<close>] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2747 |
unfolding connectedin |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2748 |
by (meson disjoint_iff_not_equal) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2749 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2750 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2751 |
ultimately show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2752 |
unfolding connectedin by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2753 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2754 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2755 |
lemma connectedin_Un: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2756 |
"\<lbrakk>connectedin X S; connectedin X T; S \<inter> T \<noteq> {}\<rbrakk> \<Longrightarrow> connectedin X (S \<union> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2757 |
using connectedin_Union [of "{S,T}"] by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2758 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2759 |
lemma connected_space_subconnected: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2760 |
"connected_space X \<longleftrightarrow> (\<forall>x \<in> topspace X. \<forall>y \<in> topspace X. \<exists>S. connectedin X S \<and> x \<in> S \<and> y \<in> S)" (is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2761 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2762 |
assume ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2763 |
then show ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2764 |
using connectedin_topspace by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2765 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2766 |
assume R [rule_format]: ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2767 |
have False if "openin X U" "openin X V" and disj: "U \<inter> V = {}" and cover: "topspace X \<subseteq> U \<union> V" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2768 |
and "U \<noteq> {}" "V \<noteq> {}" for U V |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2769 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2770 |
obtain u v where "u \<in> U" "v \<in> V" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2771 |
using \<open>U \<noteq> {}\<close> \<open>V \<noteq> {}\<close> by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2772 |
then obtain T where "u \<in> T" "v \<in> T" and T: "connectedin X T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2773 |
using R [of u v] that |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2774 |
by (meson \<open>openin X U\<close> \<open>openin X V\<close> subsetD openin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2775 |
then show False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2776 |
using that unfolding connectedin |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2777 |
by (metis IntI \<open>u \<in> U\<close> \<open>v \<in> V\<close> empty_iff inf_bot_left subset_trans) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2778 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2779 |
then show ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2780 |
by (auto simp: connected_space_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2781 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2782 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2783 |
lemma connectedin_intermediate_closure_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2784 |
assumes "connectedin X S" "S \<subseteq> T" "T \<subseteq> X closure_of S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2785 |
shows "connectedin X T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2786 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2787 |
have S: "S \<subseteq> topspace X"and T: "T \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2788 |
using assms by (meson closure_of_subset_topspace dual_order.trans)+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2789 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2790 |
using assms |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2791 |
apply (simp add: connectedin closure_of_subset_topspace S T) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2792 |
apply (elim all_forward imp_forward2 asm_rl) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2793 |
apply (blast dest: openin_Int_closure_of_eq_empty [of X _ S])+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2794 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2795 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2796 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2797 |
lemma connectedin_closure_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2798 |
"connectedin X S \<Longrightarrow> connectedin X (X closure_of S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2799 |
by (meson closure_of_subset connectedin_def connectedin_intermediate_closure_of subset_refl) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2800 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2801 |
lemma connectedin_separation: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2802 |
"connectedin X S \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2803 |
S \<subseteq> topspace X \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2804 |
(\<nexists>C1 C2. C1 \<union> C2 = S \<and> C1 \<noteq> {} \<and> C2 \<noteq> {} \<and> C1 \<inter> X closure_of C2 = {} \<and> C2 \<inter> X closure_of C1 = {})" (is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2805 |
unfolding connectedin_def connected_space_closedin_eq closedin_Int_closure_of topspace_subtopology |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2806 |
apply (intro conj_cong refl arg_cong [where f=Not]) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2807 |
apply (intro ex_cong1 iffI, blast) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2808 |
using closure_of_subset_Int by force |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2809 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2810 |
lemma connectedin_eq_not_separated: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2811 |
"connectedin X S \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2812 |
S \<subseteq> topspace X \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2813 |
(\<nexists>C1 C2. C1 \<union> C2 = S \<and> C1 \<noteq> {} \<and> C2 \<noteq> {} \<and> separatedin X C1 C2)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2814 |
apply (simp add: separatedin_def connectedin_separation) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2815 |
apply (intro conj_cong all_cong1 refl, blast) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2816 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2817 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2818 |
lemma connectedin_eq_not_separated_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2819 |
"connectedin X S \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2820 |
S \<subseteq> topspace X \<and> (\<nexists>C1 C2. S \<subseteq> C1 \<union> C2 \<and> S \<inter> C1 \<noteq> {} \<and> S \<inter> C2 \<noteq> {} \<and> separatedin X C1 C2)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2821 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2822 |
have *: "\<forall>C1 C2. S \<subseteq> C1 \<union> C2 \<longrightarrow> S \<inter> C1 = {} \<or> S \<inter> C2 = {} \<or> \<not> separatedin X C1 C2" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2823 |
if "\<And>C1 C2. C1 \<union> C2 = S \<longrightarrow> C1 = {} \<or> C2 = {} \<or> \<not> separatedin X C1 C2" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2824 |
proof (intro allI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2825 |
fix C1 C2 |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2826 |
show "S \<subseteq> C1 \<union> C2 \<longrightarrow> S \<inter> C1 = {} \<or> S \<inter> C2 = {} \<or> \<not> separatedin X C1 C2" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2827 |
using that [of "S \<inter> C1" "S \<inter> C2"] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2828 |
by (auto simp: separatedin_mono) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2829 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2830 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2831 |
apply (simp add: connectedin_eq_not_separated) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2832 |
apply (intro conj_cong refl iffI *) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2833 |
apply (blast elim!: all_forward)+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2834 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2835 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2836 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2837 |
lemma connected_space_eq_not_separated: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2838 |
"connected_space X \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2839 |
(\<nexists>C1 C2. C1 \<union> C2 = topspace X \<and> C1 \<noteq> {} \<and> C2 \<noteq> {} \<and> separatedin X C1 C2)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2840 |
by (simp add: connectedin_eq_not_separated flip: connectedin_topspace) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2841 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2842 |
lemma connected_space_eq_not_separated_subset: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2843 |
"connected_space X \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2844 |
(\<nexists>C1 C2. topspace X \<subseteq> C1 \<union> C2 \<and> C1 \<noteq> {} \<and> C2 \<noteq> {} \<and> separatedin X C1 C2)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2845 |
apply (simp add: connected_space_eq_not_separated) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2846 |
apply (intro all_cong1) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2847 |
by (metis Un_absorb dual_order.antisym separatedin_def subset_refl sup_mono) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2848 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2849 |
lemma connectedin_subset_separated_union: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2850 |
"\<lbrakk>connectedin X C; separatedin X S T; C \<subseteq> S \<union> T\<rbrakk> \<Longrightarrow> C \<subseteq> S \<or> C \<subseteq> T" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2851 |
unfolding connectedin_eq_not_separated_subset by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2852 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2853 |
lemma connectedin_nonseparated_union: |
69508 | 2854 |
"\<lbrakk>connectedin X S; connectedin X T; \<not>separatedin X S T\<rbrakk> \<Longrightarrow> connectedin X (S \<union> T)" |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2855 |
apply (simp add: connectedin_eq_not_separated_subset, auto) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2856 |
apply (metis (no_types, hide_lams) Diff_subset_conv Diff_triv disjoint_iff_not_equal separatedin_mono sup_commute) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2857 |
apply (metis (no_types, hide_lams) Diff_subset_conv Diff_triv disjoint_iff_not_equal separatedin_mono separatedin_sym sup_commute) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2858 |
by (meson disjoint_iff_not_equal) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2859 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2860 |
lemma connected_space_closures: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2861 |
"connected_space X \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2862 |
(\<nexists>e1 e2. e1 \<union> e2 = topspace X \<and> X closure_of e1 \<inter> X closure_of e2 = {} \<and> e1 \<noteq> {} \<and> e2 \<noteq> {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2863 |
(is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2864 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2865 |
assume ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2866 |
then show ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2867 |
unfolding connected_space_closedin_eq |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2868 |
by (metis Un_upper1 Un_upper2 closedin_closure_of closure_of_Un closure_of_eq_empty closure_of_topspace) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2869 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2870 |
assume ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2871 |
then show ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2872 |
unfolding connected_space_closedin_eq |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2873 |
by (metis closure_of_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2874 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2875 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2876 |
lemma connectedin_inter_frontier_of: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2877 |
assumes "connectedin X S" "S \<inter> T \<noteq> {}" "S - T \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2878 |
shows "S \<inter> X frontier_of T \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2879 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2880 |
have "S \<subseteq> topspace X" and *: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2881 |
"\<And>E1 E2. openin X E1 \<longrightarrow> openin X E2 \<longrightarrow> E1 \<inter> E2 \<inter> S = {} \<longrightarrow> S \<subseteq> E1 \<union> E2 \<longrightarrow> E1 \<inter> S = {} \<or> E2 \<inter> S = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2882 |
using \<open>connectedin X S\<close> by (auto simp: connectedin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2883 |
have "S - (topspace X \<inter> T) \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2884 |
using assms(3) by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2885 |
moreover |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2886 |
have "S \<inter> topspace X \<inter> T \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2887 |
using assms(1) assms(2) connectedin by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2888 |
moreover |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2889 |
have False if "S \<inter> T \<noteq> {}" "S - T \<noteq> {}" "T \<subseteq> topspace X" "S \<inter> X frontier_of T = {}" for T |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2890 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2891 |
have null: "S \<inter> (X closure_of T - X interior_of T) = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2892 |
using that unfolding frontier_of_def by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2893 |
have 1: "X interior_of T \<inter> (topspace X - X closure_of T) \<inter> S = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2894 |
by (metis Diff_disjoint inf_bot_left interior_of_Int interior_of_complement interior_of_empty) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2895 |
have 2: "S \<subseteq> X interior_of T \<union> (topspace X - X closure_of T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2896 |
using that \<open>S \<subseteq> topspace X\<close> null by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2897 |
have 3: "S \<inter> X interior_of T \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2898 |
using closure_of_subset that(1) that(3) null by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2899 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2900 |
using null \<open>S \<subseteq> topspace X\<close> that * [of "X interior_of T" "topspace X - X closure_of T"] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2901 |
apply (clarsimp simp add: openin_diff 1 2) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2902 |
apply (simp add: Int_commute Diff_Int_distrib 3) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2903 |
by (metis Int_absorb2 contra_subsetD interior_of_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2904 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2905 |
ultimately show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2906 |
by (metis Int_lower1 frontier_of_restrict inf_assoc) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2907 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2908 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2909 |
lemma connectedin_continuous_map_image: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2910 |
assumes f: "continuous_map X Y f" and "connectedin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2911 |
shows "connectedin Y (f ` S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2912 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2913 |
have "S \<subseteq> topspace X" and *: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2914 |
"\<And>E1 E2. openin X E1 \<longrightarrow> openin X E2 \<longrightarrow> E1 \<inter> E2 \<inter> S = {} \<longrightarrow> S \<subseteq> E1 \<union> E2 \<longrightarrow> E1 \<inter> S = {} \<or> E2 \<inter> S = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2915 |
using \<open>connectedin X S\<close> by (auto simp: connectedin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2916 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2917 |
unfolding connectedin connected_space_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2918 |
proof (intro conjI notI; clarify) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2919 |
show "f x \<in> topspace Y" if "x \<in> S" for x |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2920 |
using \<open>S \<subseteq> topspace X\<close> continuous_map_image_subset_topspace f that by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2921 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2922 |
fix U V |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2923 |
let ?U = "{x \<in> topspace X. f x \<in> U}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2924 |
let ?V = "{x \<in> topspace X. f x \<in> V}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2925 |
assume UV: "openin Y U" "openin Y V" "f ` S \<subseteq> U \<union> V" "U \<inter> V \<inter> f ` S = {}" "U \<inter> f ` S \<noteq> {}" "V \<inter> f ` S \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2926 |
then have 1: "?U \<inter> ?V \<inter> S = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2927 |
by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2928 |
have 2: "openin X ?U" "openin X ?V" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2929 |
using \<open>openin Y U\<close> \<open>openin Y V\<close> continuous_map f by fastforce+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2930 |
show "False" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2931 |
using * [of ?U ?V] UV \<open>S \<subseteq> topspace X\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2932 |
by (auto simp: 1 2) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2933 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2934 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2935 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2936 |
lemma homeomorphic_connected_space: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2937 |
"X homeomorphic_space Y \<Longrightarrow> connected_space X \<longleftrightarrow> connected_space Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2938 |
unfolding homeomorphic_space_def homeomorphic_maps_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2939 |
apply safe |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2940 |
apply (metis connectedin_continuous_map_image connected_space_subconnected continuous_map_image_subset_topspace image_eqI image_subset_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2941 |
by (metis (no_types, hide_lams) connectedin_continuous_map_image connectedin_topspace continuous_map_def continuous_map_image_subset_topspace imageI set_eq_subset subsetI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2942 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2943 |
lemma homeomorphic_map_connectedness: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2944 |
assumes f: "homeomorphic_map X Y f" and U: "U \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2945 |
shows "connectedin Y (f ` U) \<longleftrightarrow> connectedin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2946 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2947 |
have 1: "f ` U \<subseteq> topspace Y \<longleftrightarrow> U \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2948 |
using U f homeomorphic_imp_surjective_map by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2949 |
moreover have "connected_space (subtopology Y (f ` U)) \<longleftrightarrow> connected_space (subtopology X U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2950 |
proof (rule homeomorphic_connected_space) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2951 |
have "f ` U \<subseteq> topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2952 |
by (simp add: U 1) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2953 |
then have "topspace Y \<inter> f ` U = f ` U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2954 |
by (simp add: subset_antisym) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2955 |
then show "subtopology Y (f ` U) homeomorphic_space subtopology X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2956 |
by (metis (no_types) Int_subset_iff U f homeomorphic_map_imp_homeomorphic_space homeomorphic_map_subtopologies homeomorphic_space_sym subset_antisym subset_refl) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2957 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2958 |
ultimately show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2959 |
by (auto simp: connectedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2960 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2961 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2962 |
lemma homeomorphic_map_connectedness_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2963 |
"homeomorphic_map X Y f |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2964 |
\<Longrightarrow> connectedin X U \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2965 |
U \<subseteq> topspace X \<and> connectedin Y (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2966 |
using homeomorphic_map_connectedness connectedin_subset_topspace by metis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2967 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2968 |
lemma connectedin_discrete_topology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2969 |
"connectedin (discrete_topology U) S \<longleftrightarrow> S \<subseteq> U \<and> (\<exists>a. S \<subseteq> {a})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2970 |
proof (cases "S \<subseteq> U") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2971 |
case True |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2972 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2973 |
proof (cases "S = {}") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2974 |
case False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2975 |
moreover have "connectedin (discrete_topology U) S \<longleftrightarrow> (\<exists>a. S = {a})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2976 |
apply safe |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2977 |
using False connectedin_inter_frontier_of insert_Diff apply fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2978 |
using True by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2979 |
ultimately show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2980 |
by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2981 |
qed simp |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2982 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2983 |
case False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2984 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2985 |
by (simp add: connectedin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2986 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2987 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2988 |
lemma connected_space_discrete_topology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2989 |
"connected_space (discrete_topology U) \<longleftrightarrow> (\<exists>a. U \<subseteq> {a})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2990 |
by (metis connectedin_discrete_topology connectedin_topspace order_refl topspace_discrete_topology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2991 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2992 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2993 |
subsection\<open>Compact sets\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2994 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2995 |
definition compactin where |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2996 |
"compactin X S \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2997 |
S \<subseteq> topspace X \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2998 |
(\<forall>\<U>. (\<forall>U \<in> \<U>. openin X U) \<and> S \<subseteq> \<Union>\<U> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2999 |
\<longrightarrow> (\<exists>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<and> S \<subseteq> \<Union>\<F>))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3000 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3001 |
definition compact_space where |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3002 |
"compact_space X \<equiv> compactin X (topspace X)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3003 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3004 |
lemma compact_space_alt: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3005 |
"compact_space X \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3006 |
(\<forall>\<U>. (\<forall>U \<in> \<U>. openin X U) \<and> topspace X \<subseteq> \<Union>\<U> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3007 |
\<longrightarrow> (\<exists>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<and> topspace X \<subseteq> \<Union>\<F>))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3008 |
by (simp add: compact_space_def compactin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3009 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3010 |
lemma compact_space: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3011 |
"compact_space X \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3012 |
(\<forall>\<U>. (\<forall>U \<in> \<U>. openin X U) \<and> \<Union>\<U> = topspace X |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3013 |
\<longrightarrow> (\<exists>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<and> \<Union>\<F> = topspace X))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3014 |
unfolding compact_space_alt |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3015 |
using openin_subset by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3016 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3017 |
lemma compactin_euclideanreal_iff [simp]: "compactin euclideanreal S \<longleftrightarrow> compact S" |
69529 | 3018 |
by (simp add: compact_eq_Heine_Borel compactin_def) meson |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3019 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3020 |
lemma compactin_absolute [simp]: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3021 |
"compactin (subtopology X S) S \<longleftrightarrow> compactin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3022 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3023 |
have eq: "(\<forall>U \<in> \<U>. \<exists>Y. openin X Y \<and> U = Y \<inter> S) \<longleftrightarrow> \<U> \<subseteq> (\<lambda>Y. Y \<inter> S) ` {y. openin X y}" for \<U> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3024 |
by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3025 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3026 |
by (auto simp: compactin_def topspace_subtopology openin_subtopology eq imp_conjL all_subset_image exists_finite_subset_image) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3027 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3028 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3029 |
lemma compactin_subspace: "compactin X S \<longleftrightarrow> S \<subseteq> topspace X \<and> compact_space (subtopology X S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3030 |
unfolding compact_space_def topspace_subtopology |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3031 |
by (metis compactin_absolute compactin_def inf.absorb2) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3032 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3033 |
lemma compact_space_subtopology: "compactin X S \<Longrightarrow> compact_space (subtopology X S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3034 |
by (simp add: compactin_subspace) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3035 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3036 |
lemma compactin_subtopology: "compactin (subtopology X S) T \<longleftrightarrow> compactin X T \<and> T \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3037 |
apply (simp add: compactin_subspace topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3038 |
by (metis inf.orderE inf_commute subtopology_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3039 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3040 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3041 |
lemma compactin_subset_topspace: "compactin X S \<Longrightarrow> S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3042 |
by (simp add: compactin_subspace) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3043 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3044 |
lemma compactin_contractive: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3045 |
"\<lbrakk>compactin X' S; topspace X' = topspace X; |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3046 |
\<And>U. openin X U \<Longrightarrow> openin X' U\<rbrakk> \<Longrightarrow> compactin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3047 |
by (simp add: compactin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3048 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3049 |
lemma finite_imp_compactin: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3050 |
"\<lbrakk>S \<subseteq> topspace X; finite S\<rbrakk> \<Longrightarrow> compactin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3051 |
by (metis compactin_subspace compact_space finite_UnionD inf.absorb_iff2 order_refl topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3052 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3053 |
lemma compactin_empty [iff]: "compactin X {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3054 |
by (simp add: finite_imp_compactin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3055 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3056 |
lemma compact_space_topspace_empty: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3057 |
"topspace X = {} \<Longrightarrow> compact_space X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3058 |
by (simp add: compact_space_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3059 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3060 |
lemma finite_imp_compactin_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3061 |
"finite S \<Longrightarrow> (compactin X S \<longleftrightarrow> S \<subseteq> topspace X)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3062 |
using compactin_subset_topspace finite_imp_compactin by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3063 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3064 |
lemma compactin_sing [simp]: "compactin X {a} \<longleftrightarrow> a \<in> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3065 |
by (simp add: finite_imp_compactin_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3066 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3067 |
lemma closed_compactin: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3068 |
assumes XK: "compactin X K" and "C \<subseteq> K" and XC: "closedin X C" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3069 |
shows "compactin X C" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3070 |
unfolding compactin_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3071 |
proof (intro conjI allI impI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3072 |
show "C \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3073 |
by (simp add: XC closedin_subset) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3074 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3075 |
fix \<U> :: "'a set set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3076 |
assume \<U>: "Ball \<U> (openin X) \<and> C \<subseteq> \<Union>\<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3077 |
have "(\<forall>U\<in>insert (topspace X - C) \<U>. openin X U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3078 |
using XC \<U> by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3079 |
moreover have "K \<subseteq> \<Union>insert (topspace X - C) \<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3080 |
using \<U> XK compactin_subset_topspace by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3081 |
ultimately obtain \<F> where "finite \<F>" "\<F> \<subseteq> insert (topspace X - C) \<U>" "K \<subseteq> \<Union>\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3082 |
using assms unfolding compactin_def by metis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3083 |
moreover have "openin X (topspace X - C)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3084 |
using XC by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3085 |
ultimately show "\<exists>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<and> C \<subseteq> \<Union>\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3086 |
using \<open>C \<subseteq> K\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3087 |
by (rule_tac x="\<F> - {topspace X - C}" in exI) auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3088 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3089 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3090 |
lemma closedin_compact_space: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3091 |
"\<lbrakk>compact_space X; closedin X S\<rbrakk> \<Longrightarrow> compactin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3092 |
by (simp add: closed_compactin closedin_subset compact_space_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3093 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3094 |
lemma compact_Int_closedin: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3095 |
assumes "compactin X S" "closedin X T" shows "compactin X (S \<inter> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3096 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3097 |
have "compactin (subtopology X S) (S \<inter> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3098 |
by (metis assms closedin_compact_space closedin_subtopology compactin_subspace inf_commute) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3099 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3100 |
by (simp add: compactin_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3101 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3102 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3103 |
lemma closed_Int_compactin: "\<lbrakk>closedin X S; compactin X T\<rbrakk> \<Longrightarrow> compactin X (S \<inter> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3104 |
by (metis compact_Int_closedin inf_commute) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3105 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3106 |
lemma compactin_Un: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3107 |
assumes S: "compactin X S" and T: "compactin X T" shows "compactin X (S \<union> T)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3108 |
unfolding compactin_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3109 |
proof (intro conjI allI impI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3110 |
show "S \<union> T \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3111 |
using assms by (auto simp: compactin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3112 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3113 |
fix \<U> :: "'a set set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3114 |
assume \<U>: "Ball \<U> (openin X) \<and> S \<union> T \<subseteq> \<Union>\<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3115 |
with S obtain \<F> where \<V>: "finite \<F>" "\<F> \<subseteq> \<U>" "S \<subseteq> \<Union>\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3116 |
unfolding compactin_def by (meson sup.bounded_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3117 |
obtain \<W> where "finite \<W>" "\<W> \<subseteq> \<U>" "T \<subseteq> \<Union>\<W>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3118 |
using \<U> T |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3119 |
unfolding compactin_def by (meson sup.bounded_iff) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3120 |
with \<V> show "\<exists>\<V>. finite \<V> \<and> \<V> \<subseteq> \<U> \<and> S \<union> T \<subseteq> \<Union>\<V>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3121 |
by (rule_tac x="\<F> \<union> \<W>" in exI) auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3122 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3123 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3124 |
lemma compactin_Union: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3125 |
"\<lbrakk>finite \<F>; \<And>S. S \<in> \<F> \<Longrightarrow> compactin X S\<rbrakk> \<Longrightarrow> compactin X (\<Union>\<F>)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3126 |
by (induction rule: finite_induct) (simp_all add: compactin_Un) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3127 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3128 |
lemma compactin_subtopology_imp_compact: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3129 |
assumes "compactin (subtopology X S) K" shows "compactin X K" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3130 |
using assms |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3131 |
proof (clarsimp simp add: compactin_def topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3132 |
fix \<U> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3133 |
define \<V> where "\<V> \<equiv> (\<lambda>U. U \<inter> S) ` \<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3134 |
assume "K \<subseteq> topspace X" and "K \<subseteq> S" and "\<forall>x\<in>\<U>. openin X x" and "K \<subseteq> \<Union>\<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3135 |
then have "\<forall>V \<in> \<V>. openin (subtopology X S) V" "K \<subseteq> \<Union>\<V>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3136 |
unfolding \<V>_def by (auto simp: openin_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3137 |
moreover |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3138 |
assume "\<forall>\<U>. (\<forall>x\<in>\<U>. openin (subtopology X S) x) \<and> K \<subseteq> \<Union>\<U> \<longrightarrow> (\<exists>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<and> K \<subseteq> \<Union>\<F>)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3139 |
ultimately obtain \<F> where "finite \<F>" "\<F> \<subseteq> \<V>" "K \<subseteq> \<Union>\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3140 |
by meson |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3141 |
then have \<F>: "\<exists>U. U \<in> \<U> \<and> V = U \<inter> S" if "V \<in> \<F>" for V |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3142 |
unfolding \<V>_def using that by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3143 |
let ?\<F> = "(\<lambda>F. @U. U \<in> \<U> \<and> F = U \<inter> S) ` \<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3144 |
show "\<exists>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<and> K \<subseteq> \<Union>\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3145 |
proof (intro exI conjI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3146 |
show "finite ?\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3147 |
using \<open>finite \<F>\<close> by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3148 |
show "?\<F> \<subseteq> \<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3149 |
using someI_ex [OF \<F>] by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3150 |
show "K \<subseteq> \<Union>?\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3151 |
proof clarsimp |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3152 |
fix x |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3153 |
assume "x \<in> K" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3154 |
then show "\<exists>V \<in> \<F>. x \<in> (SOME U. U \<in> \<U> \<and> V = U \<inter> S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3155 |
using \<open>K \<subseteq> \<Union>\<F>\<close> someI_ex [OF \<F>] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3156 |
by (metis (no_types, lifting) IntD1 Union_iff subsetCE) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3157 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3158 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3159 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3160 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3161 |
lemma compact_imp_compactin_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3162 |
assumes "compactin X K" "K \<subseteq> S" shows "compactin (subtopology X S) K" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3163 |
using assms |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3164 |
proof (clarsimp simp add: compactin_def topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3165 |
fix \<U> :: "'a set set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3166 |
define \<V> where "\<V> \<equiv> {V. openin X V \<and> (\<exists>U \<in> \<U>. U = V \<inter> S)}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3167 |
assume "K \<subseteq> S" and "K \<subseteq> topspace X" and "\<forall>U\<in>\<U>. openin (subtopology X S) U" and "K \<subseteq> \<Union>\<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3168 |
then have "\<forall>V \<in> \<V>. openin X V" "K \<subseteq> \<Union>\<V>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3169 |
unfolding \<V>_def by (fastforce simp: subset_eq openin_subtopology)+ |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3170 |
moreover |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3171 |
assume "\<forall>\<U>. (\<forall>U\<in>\<U>. openin X U) \<and> K \<subseteq> \<Union>\<U> \<longrightarrow> (\<exists>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<and> K \<subseteq> \<Union>\<F>)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3172 |
ultimately obtain \<F> where "finite \<F>" "\<F> \<subseteq> \<V>" "K \<subseteq> \<Union>\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3173 |
by meson |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3174 |
let ?\<F> = "(\<lambda>F. F \<inter> S) ` \<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3175 |
show "\<exists>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<and> K \<subseteq> \<Union>\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3176 |
proof (intro exI conjI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3177 |
show "finite ?\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3178 |
using \<open>finite \<F>\<close> by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3179 |
show "?\<F> \<subseteq> \<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3180 |
using \<V>_def \<open>\<F> \<subseteq> \<V>\<close> by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3181 |
show "K \<subseteq> \<Union>?\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3182 |
using \<open>K \<subseteq> \<Union>\<F>\<close> assms(2) by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3183 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3184 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3185 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3186 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3187 |
proposition compact_space_fip: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3188 |
"compact_space X \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3189 |
(\<forall>\<U>. (\<forall>C\<in>\<U>. closedin X C) \<and> (\<forall>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<longrightarrow> \<Inter>\<F> \<noteq> {}) \<longrightarrow> \<Inter>\<U> \<noteq> {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3190 |
(is "_ = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3191 |
proof (cases "topspace X = {}") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3192 |
case True |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3193 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3194 |
apply (clarsimp simp add: compact_space_def closedin_topspace_empty) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3195 |
by (metis finite.emptyI finite_insert infinite_super insertI1 subsetI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3196 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3197 |
case False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3198 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3199 |
proof safe |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3200 |
fix \<U> :: "'a set set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3201 |
assume * [rule_format]: "\<forall>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<longrightarrow> \<Inter>\<F> \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3202 |
define \<V> where "\<V> \<equiv> (\<lambda>S. topspace X - S) ` \<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3203 |
assume clo: "\<forall>C\<in>\<U>. closedin X C" and [simp]: "\<Inter>\<U> = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3204 |
then have "\<forall>V \<in> \<V>. openin X V" "topspace X \<subseteq> \<Union>\<V>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3205 |
by (auto simp: \<V>_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3206 |
moreover assume [unfolded compact_space_alt, rule_format, of \<V>]: "compact_space X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3207 |
ultimately obtain \<F> where \<F>: "finite \<F>" "\<F> \<subseteq> \<U>" "topspace X \<subseteq> topspace X - \<Inter>\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3208 |
by (auto simp: exists_finite_subset_image \<V>_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3209 |
moreover have "\<F> \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3210 |
using \<F> \<open>topspace X \<noteq> {}\<close> by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3211 |
ultimately show "False" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3212 |
using * [of \<F>] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3213 |
by auto (metis Diff_iff Inter_iff clo closedin_def subsetD) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3214 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3215 |
assume R [rule_format]: ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3216 |
show "compact_space X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3217 |
unfolding compact_space_alt |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3218 |
proof clarify |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3219 |
fix \<U> :: "'a set set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3220 |
define \<V> where "\<V> \<equiv> (\<lambda>S. topspace X - S) ` \<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3221 |
assume "\<forall>C\<in>\<U>. openin X C" and "topspace X \<subseteq> \<Union>\<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3222 |
with \<open>topspace X \<noteq> {}\<close> have *: "\<forall>V \<in> \<V>. closedin X V" "\<U> \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3223 |
by (auto simp: \<V>_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3224 |
show "\<exists>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<and> topspace X \<subseteq> \<Union>\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3225 |
proof (rule ccontr; simp) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3226 |
assume "\<forall>\<F>\<subseteq>\<U>. finite \<F> \<longrightarrow> \<not> topspace X \<subseteq> \<Union>\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3227 |
then have "\<forall>\<F>. finite \<F> \<and> \<F> \<subseteq> \<V> \<longrightarrow> \<Inter>\<F> \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3228 |
by (simp add: \<V>_def all_finite_subset_image) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3229 |
with \<open>topspace X \<subseteq> \<Union>\<U>\<close> show False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3230 |
using R [of \<V>] * by (simp add: \<V>_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3231 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3232 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3233 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3234 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3235 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3236 |
corollary compactin_fip: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3237 |
"compactin X S \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3238 |
S \<subseteq> topspace X \<and> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3239 |
(\<forall>\<U>. (\<forall>C\<in>\<U>. closedin X C) \<and> (\<forall>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<longrightarrow> S \<inter> \<Inter>\<F> \<noteq> {}) \<longrightarrow> S \<inter> \<Inter>\<U> \<noteq> {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3240 |
proof (cases "S = {}") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3241 |
case False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3242 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3243 |
proof (cases "S \<subseteq> topspace X") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3244 |
case True |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3245 |
then have "compactin X S \<longleftrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3246 |
(\<forall>\<U>. \<U> \<subseteq> (\<lambda>T. S \<inter> T) ` {T. closedin X T} \<longrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3247 |
(\<forall>\<F>. finite \<F> \<longrightarrow> \<F> \<subseteq> \<U> \<longrightarrow> \<Inter>\<F> \<noteq> {}) \<longrightarrow> \<Inter>\<U> \<noteq> {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3248 |
by (simp add: compact_space_fip compactin_subspace closedin_subtopology image_def subset_eq Int_commute imp_conjL) |
69313 | 3249 |
also have "\<dots> = (\<forall>\<U>\<subseteq>Collect (closedin X). (\<forall>\<F>. finite \<F> \<longrightarrow> \<F> \<subseteq> (\<inter>) S ` \<U> \<longrightarrow> \<Inter>\<F> \<noteq> {}) \<longrightarrow> \<Inter> ((\<inter>) S ` \<U>) \<noteq> {})" |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3250 |
by (simp add: all_subset_image) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3251 |
also have "\<dots> = (\<forall>\<U>. (\<forall>C\<in>\<U>. closedin X C) \<and> (\<forall>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<longrightarrow> S \<inter> \<Inter>\<F> \<noteq> {}) \<longrightarrow> S \<inter> \<Inter>\<U> \<noteq> {})" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3252 |
proof - |
69313 | 3253 |
have eq: "((\<forall>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<longrightarrow> \<Inter> ((\<inter>) S ` \<F>) \<noteq> {}) \<longrightarrow> \<Inter> ((\<inter>) S ` \<U>) \<noteq> {}) \<longleftrightarrow> |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3254 |
((\<forall>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<longrightarrow> S \<inter> \<Inter>\<F> \<noteq> {}) \<longrightarrow> S \<inter> \<Inter>\<U> \<noteq> {})" for \<U> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3255 |
by simp (use \<open>S \<noteq> {}\<close> in blast) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3256 |
show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3257 |
apply (simp only: imp_conjL [symmetric] all_finite_subset_image eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3258 |
apply (simp add: subset_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3259 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3260 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3261 |
finally show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3262 |
using True by simp |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3263 |
qed (simp add: compactin_subspace) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3264 |
qed force |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3265 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3266 |
corollary compact_space_imp_nest: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3267 |
fixes C :: "nat \<Rightarrow> 'a set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3268 |
assumes "compact_space X" and clo: "\<And>n. closedin X (C n)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3269 |
and ne: "\<And>n. C n \<noteq> {}" and inc: "\<And>m n. m \<le> n \<Longrightarrow> C n \<subseteq> C m" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3270 |
shows "(\<Inter>n. C n) \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3271 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3272 |
let ?\<U> = "range (\<lambda>n. \<Inter>m \<le> n. C m)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3273 |
have "closedin X A" if "A \<in> ?\<U>" for A |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3274 |
using that clo by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3275 |
moreover have "(\<Inter>n\<in>K. \<Inter>m \<le> n. C m) \<noteq> {}" if "finite K" for K |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3276 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3277 |
obtain n where "\<And>k. k \<in> K \<Longrightarrow> k \<le> n" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3278 |
using Max.coboundedI \<open>finite K\<close> by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3279 |
with inc have "C n \<subseteq> (\<Inter>n\<in>K. \<Inter>m \<le> n. C m)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3280 |
by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3281 |
with ne [of n] show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3282 |
by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3283 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3284 |
ultimately show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3285 |
using \<open>compact_space X\<close> [unfolded compact_space_fip, rule_format, of ?\<U>] |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3286 |
by (simp add: all_finite_subset_image INT_extend_simps UN_atMost_UNIV del: INT_simps) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3287 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3288 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3289 |
lemma compactin_discrete_topology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3290 |
"compactin (discrete_topology X) S \<longleftrightarrow> S \<subseteq> X \<and> finite S" (is "?lhs = ?rhs") |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3291 |
proof (intro iffI conjI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3292 |
assume L: ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3293 |
then show "S \<subseteq> X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3294 |
by (auto simp: compactin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3295 |
have *: "\<And>\<U>. Ball \<U> (openin (discrete_topology X)) \<and> S \<subseteq> \<Union>\<U> \<Longrightarrow> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3296 |
(\<exists>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<and> S \<subseteq> \<Union>\<F>)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3297 |
using L by (auto simp: compactin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3298 |
show "finite S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3299 |
using * [of "(\<lambda>x. {x}) ` X"] \<open>S \<subseteq> X\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3300 |
by clarsimp (metis UN_singleton finite_subset_image infinite_super) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3301 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3302 |
assume ?rhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3303 |
then show ?lhs |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3304 |
by (simp add: finite_imp_compactin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3305 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3306 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3307 |
lemma compact_space_discrete_topology: "compact_space(discrete_topology X) \<longleftrightarrow> finite X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3308 |
by (simp add: compactin_discrete_topology compact_space_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3309 |
|
69529 | 3310 |
lemma compact_space_imp_Bolzano_Weierstrass: |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3311 |
assumes "compact_space X" "infinite S" "S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3312 |
shows "X derived_set_of S \<noteq> {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3313 |
proof |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3314 |
assume X: "X derived_set_of S = {}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3315 |
then have "closedin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3316 |
by (simp add: closedin_contains_derived_set assms) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3317 |
then have "compactin X S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3318 |
by (rule closedin_compact_space [OF \<open>compact_space X\<close>]) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3319 |
with X show False |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3320 |
by (metis \<open>infinite S\<close> compactin_subspace compact_space_discrete_topology inf_bot_right subtopology_eq_discrete_topology_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3321 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3322 |
|
69529 | 3323 |
lemma compactin_imp_Bolzano_Weierstrass: |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3324 |
"\<lbrakk>compactin X S; infinite T \<and> T \<subseteq> S\<rbrakk> \<Longrightarrow> S \<inter> X derived_set_of T \<noteq> {}" |
69529 | 3325 |
using compact_space_imp_Bolzano_Weierstrass [of "subtopology X S"] |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3326 |
by (simp add: compactin_subspace derived_set_of_subtopology inf_absorb2 topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3327 |
|
69529 | 3328 |
lemma compact_closure_of_imp_Bolzano_Weierstrass: |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3329 |
"\<lbrakk>compactin X (X closure_of S); infinite T; T \<subseteq> S; T \<subseteq> topspace X\<rbrakk> \<Longrightarrow> X derived_set_of T \<noteq> {}" |
69529 | 3330 |
using closure_of_mono closure_of_subset compactin_imp_Bolzano_Weierstrass by fastforce |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3331 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3332 |
lemma discrete_compactin_eq_finite: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3333 |
"S \<inter> X derived_set_of S = {} \<Longrightarrow> compactin X S \<longleftrightarrow> S \<subseteq> topspace X \<and> finite S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3334 |
apply (rule iffI) |
69529 | 3335 |
using compactin_imp_Bolzano_Weierstrass compactin_subset_topspace apply blast |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3336 |
by (simp add: finite_imp_compactin_eq) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3337 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3338 |
lemma discrete_compact_space_eq_finite: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3339 |
"X derived_set_of (topspace X) = {} \<Longrightarrow> (compact_space X \<longleftrightarrow> finite(topspace X))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3340 |
by (metis compact_space_discrete_topology discrete_topology_unique_derived_set) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3341 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3342 |
lemma image_compactin: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3343 |
assumes cpt: "compactin X S" and cont: "continuous_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3344 |
shows "compactin Y (f ` S)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3345 |
unfolding compactin_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3346 |
proof (intro conjI allI impI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3347 |
show "f ` S \<subseteq> topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3348 |
using compactin_subset_topspace cont continuous_map_image_subset_topspace cpt by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3349 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3350 |
fix \<U> :: "'b set set" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3351 |
assume \<U>: "Ball \<U> (openin Y) \<and> f ` S \<subseteq> \<Union>\<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3352 |
define \<V> where "\<V> \<equiv> (\<lambda>U. {x \<in> topspace X. f x \<in> U}) ` \<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3353 |
have "S \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3354 |
and *: "\<And>\<U>. \<lbrakk>\<forall>U\<in>\<U>. openin X U; S \<subseteq> \<Union>\<U>\<rbrakk> \<Longrightarrow> \<exists>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<and> S \<subseteq> \<Union>\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3355 |
using cpt by (auto simp: compactin_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3356 |
obtain \<F> where \<F>: "finite \<F>" "\<F> \<subseteq> \<V>" "S \<subseteq> \<Union>\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3357 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3358 |
have 1: "\<forall>U\<in>\<V>. openin X U" |
69544
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3359 |
unfolding \<V>_def using \<U> cont[unfolded continuous_map] by blast |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3360 |
have 2: "S \<subseteq> \<Union>\<V>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3361 |
unfolding \<V>_def using compactin_subset_topspace cpt \<U> by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3362 |
show thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3363 |
using * [OF 1 2] that by metis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3364 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3365 |
have "\<forall>v \<in> \<V>. \<exists>U. U \<in> \<U> \<and> v = {x \<in> topspace X. f x \<in> U}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3366 |
using \<V>_def by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3367 |
then obtain U where U: "\<forall>v \<in> \<V>. U v \<in> \<U> \<and> v = {x \<in> topspace X. f x \<in> U v}" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3368 |
by metis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3369 |
show "\<exists>\<F>. finite \<F> \<and> \<F> \<subseteq> \<U> \<and> f ` S \<subseteq> \<Union>\<F>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3370 |
proof (intro conjI exI) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3371 |
show "finite (U ` \<F>)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3372 |
by (simp add: \<open>finite \<F>\<close>) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3373 |
next |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3374 |
show "U ` \<F> \<subseteq> \<U>" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3375 |
using \<open>\<F> \<subseteq> \<V>\<close> U by auto |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3376 |
next |
69325 | 3377 |
show "f ` S \<subseteq> \<Union> (U ` \<F>)" |
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3378 |
using \<F>(2-3) U UnionE subset_eq U by fastforce |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3379 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3380 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3381 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3382 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3383 |
lemma homeomorphic_compact_space: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3384 |
assumes "X homeomorphic_space Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3385 |
shows "compact_space X \<longleftrightarrow> compact_space Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3386 |
using homeomorphic_space_sym |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3387 |
by (metis assms compact_space_def homeomorphic_eq_everything_map homeomorphic_space image_compactin) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3388 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3389 |
lemma homeomorphic_map_compactness: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3390 |
assumes hom: "homeomorphic_map X Y f" and U: "U \<subseteq> topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3391 |
shows "compactin Y (f ` U) \<longleftrightarrow> compactin X U" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3392 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3393 |
have "f ` U \<subseteq> topspace Y" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3394 |
using hom U homeomorphic_imp_surjective_map by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3395 |
moreover have "homeomorphic_map (subtopology X U) (subtopology Y (f ` U)) f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3396 |
using U hom homeomorphic_imp_surjective_map by (blast intro: homeomorphic_map_subtopologies) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3397 |
then have "compact_space (subtopology Y (f ` U)) = compact_space (subtopology X U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3398 |
using homeomorphic_compact_space homeomorphic_map_imp_homeomorphic_space by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3399 |
ultimately show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3400 |
by (simp add: compactin_subspace U) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3401 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3402 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3403 |
lemma homeomorphic_map_compactness_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3404 |
"homeomorphic_map X Y f |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3405 |
\<Longrightarrow> compactin X U \<longleftrightarrow> U \<subseteq> topspace X \<and> compactin Y (f ` U)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3406 |
by (meson compactin_subset_topspace homeomorphic_map_compactness) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3407 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3408 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3409 |
subsection\<open>Embedding maps\<close> |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3410 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3411 |
definition embedding_map |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3412 |
where "embedding_map X Y f \<equiv> homeomorphic_map X (subtopology Y (f ` (topspace X))) f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3413 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3414 |
lemma embedding_map_eq: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3415 |
"\<lbrakk>embedding_map X Y f; \<And>x. x \<in> topspace X \<Longrightarrow> f x = g x\<rbrakk> \<Longrightarrow> embedding_map X Y g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3416 |
unfolding embedding_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3417 |
by (metis homeomorphic_map_eq image_cong) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3418 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3419 |
lemma embedding_map_compose: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3420 |
assumes "embedding_map X X' f" "embedding_map X' X'' g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3421 |
shows "embedding_map X X'' (g \<circ> f)" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3422 |
proof - |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3423 |
have hm: "homeomorphic_map X (subtopology X' (f ` topspace X)) f" "homeomorphic_map X' (subtopology X'' (g ` topspace X')) g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3424 |
using assms by (auto simp: embedding_map_def) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3425 |
then obtain C where "g ` topspace X' \<inter> C = (g \<circ> f) ` topspace X" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3426 |
by (metis (no_types) Int_absorb1 continuous_map_image_subset_topspace continuous_map_in_subtopology homeomorphic_eq_everything_map image_comp image_mono) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3427 |
then have "homeomorphic_map (subtopology X' (f ` topspace X)) (subtopology X'' ((g \<circ> f) ` topspace X)) g" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3428 |
by (metis hm homeomorphic_imp_surjective_map homeomorphic_map_subtopologies image_comp subtopology_subtopology topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3429 |
then show ?thesis |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3430 |
unfolding embedding_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3431 |
using hm(1) homeomorphic_map_compose by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3432 |
qed |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3433 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3434 |
lemma surjective_embedding_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3435 |
"embedding_map X Y f \<and> f ` (topspace X) = topspace Y \<longleftrightarrow> homeomorphic_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3436 |
by (force simp: embedding_map_def homeomorphic_eq_everything_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3437 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3438 |
lemma embedding_map_in_subtopology: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3439 |
"embedding_map X (subtopology Y S) f \<longleftrightarrow> embedding_map X Y f \<and> f ` (topspace X) \<subseteq> S" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3440 |
apply (auto simp: embedding_map_def subtopology_subtopology Int_absorb1) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3441 |
apply (metis (no_types) homeomorphic_imp_surjective_map subtopology_subtopology subtopology_topspace topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3442 |
apply (simp add: continuous_map_def homeomorphic_eq_everything_map topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3443 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3444 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3445 |
lemma injective_open_imp_embedding_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3446 |
"\<lbrakk>continuous_map X Y f; open_map X Y f; inj_on f (topspace X)\<rbrakk> \<Longrightarrow> embedding_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3447 |
unfolding embedding_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3448 |
apply (rule bijective_open_imp_homeomorphic_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3449 |
using continuous_map_in_subtopology apply blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3450 |
apply (auto simp: continuous_map_in_subtopology open_map_into_subtopology topspace_subtopology continuous_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3451 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3452 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3453 |
lemma injective_closed_imp_embedding_map: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3454 |
"\<lbrakk>continuous_map X Y f; closed_map X Y f; inj_on f (topspace X)\<rbrakk> \<Longrightarrow> embedding_map X Y f" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3455 |
unfolding embedding_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3456 |
apply (rule bijective_closed_imp_homeomorphic_map) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3457 |
apply (simp_all add: continuous_map_into_subtopology closed_map_into_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3458 |
apply (simp add: continuous_map inf.absorb_iff2 topspace_subtopology) |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3459 |
done |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3460 |
|
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3461 |
lemma embedding_map_imp_homeomorphic_space: |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3462 |
"embedding_map X Y f \<Longrightarrow> X homeomorphic_space (subtopology Y (f ` (topspace X)))" |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3463 |
unfolding embedding_map_def |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3464 |
using homeomorphic_space by blast |
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3465 |
|
69544
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3466 |
subsection \<open>Continuity\<close> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3467 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3468 |
lemma continuous_on_open: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3469 |
"continuous_on S f \<longleftrightarrow> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3470 |
(\<forall>T. openin (subtopology euclidean (f ` S)) T \<longrightarrow> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3471 |
openin (subtopology euclidean S) (S \<inter> f -` T))" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3472 |
unfolding continuous_on_open_invariant openin_open Int_def vimage_def Int_commute |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3473 |
by (simp add: imp_ex imageI conj_commute eq_commute cong: conj_cong) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3474 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3475 |
lemma continuous_on_closed: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3476 |
"continuous_on S f \<longleftrightarrow> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3477 |
(\<forall>T. closedin (subtopology euclidean (f ` S)) T \<longrightarrow> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3478 |
closedin (subtopology euclidean S) (S \<inter> f -` T))" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3479 |
unfolding continuous_on_closed_invariant closedin_closed Int_def vimage_def Int_commute |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3480 |
by (simp add: imp_ex imageI conj_commute eq_commute cong: conj_cong) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3481 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3482 |
lemma continuous_on_imp_closedin: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3483 |
assumes "continuous_on S f" "closedin (subtopology euclidean (f ` S)) T" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3484 |
shows "closedin (subtopology euclidean S) (S \<inter> f -` T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3485 |
using assms continuous_on_closed by blast |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3486 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3487 |
subsection%unimportant \<open>Half-global and completely global cases\<close> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3488 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3489 |
lemma continuous_openin_preimage_gen: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3490 |
assumes "continuous_on S f" "open T" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3491 |
shows "openin (subtopology euclidean S) (S \<inter> f -` T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3492 |
proof - |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3493 |
have *: "(S \<inter> f -` T) = (S \<inter> f -` (T \<inter> f ` S))" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3494 |
by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3495 |
have "openin (subtopology euclidean (f ` S)) (T \<inter> f ` S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3496 |
using openin_open_Int[of T "f ` S", OF assms(2)] unfolding openin_open by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3497 |
then show ?thesis |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3498 |
using assms(1)[unfolded continuous_on_open, THEN spec[where x="T \<inter> f ` S"]] |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3499 |
using * by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3500 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3501 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3502 |
lemma continuous_closedin_preimage: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3503 |
assumes "continuous_on S f" and "closed T" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3504 |
shows "closedin (subtopology euclidean S) (S \<inter> f -` T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3505 |
proof - |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3506 |
have *: "(S \<inter> f -` T) = (S \<inter> f -` (T \<inter> f ` S))" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3507 |
by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3508 |
have "closedin (subtopology euclidean (f ` S)) (T \<inter> f ` S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3509 |
using closedin_closed_Int[of T "f ` S", OF assms(2)] |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3510 |
by (simp add: Int_commute) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3511 |
then show ?thesis |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3512 |
using assms(1)[unfolded continuous_on_closed, THEN spec[where x="T \<inter> f ` S"]] |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3513 |
using * by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3514 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3515 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3516 |
lemma continuous_openin_preimage_eq: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3517 |
"continuous_on S f \<longleftrightarrow> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3518 |
(\<forall>T. open T \<longrightarrow> openin (subtopology euclidean S) (S \<inter> f -` T))" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3519 |
apply safe |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3520 |
apply (simp add: continuous_openin_preimage_gen) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3521 |
apply (fastforce simp add: continuous_on_open openin_open) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3522 |
done |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3523 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3524 |
lemma continuous_closedin_preimage_eq: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3525 |
"continuous_on S f \<longleftrightarrow> |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3526 |
(\<forall>T. closed T \<longrightarrow> closedin (subtopology euclidean S) (S \<inter> f -` T))" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3527 |
apply safe |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3528 |
apply (simp add: continuous_closedin_preimage) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3529 |
apply (fastforce simp add: continuous_on_closed closedin_closed) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3530 |
done |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3531 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3532 |
lemma continuous_open_preimage: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3533 |
assumes contf: "continuous_on S f" and "open S" "open T" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3534 |
shows "open (S \<inter> f -` T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3535 |
proof- |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3536 |
obtain U where "open U" "(S \<inter> f -` T) = S \<inter> U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3537 |
using continuous_openin_preimage_gen[OF contf \<open>open T\<close>] |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3538 |
unfolding openin_open by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3539 |
then show ?thesis |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3540 |
using open_Int[of S U, OF \<open>open S\<close>] by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3541 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3542 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3543 |
lemma continuous_closed_preimage: |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3544 |
assumes contf: "continuous_on S f" and "closed S" "closed T" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3545 |
shows "closed (S \<inter> f -` T)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3546 |
proof- |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3547 |
obtain U where "closed U" "(S \<inter> f -` T) = S \<inter> U" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3548 |
using continuous_closedin_preimage[OF contf \<open>closed T\<close>] |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3549 |
unfolding closedin_closed by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3550 |
then show ?thesis using closed_Int[of S U, OF \<open>closed S\<close>] by auto |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3551 |
qed |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3552 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3553 |
lemma continuous_open_vimage: "open S \<Longrightarrow> (\<And>x. continuous (at x) f) \<Longrightarrow> open (f -` S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3554 |
by (metis continuous_on_eq_continuous_within open_vimage) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3555 |
|
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3556 |
lemma continuous_closed_vimage: "closed S \<Longrightarrow> (\<And>x. continuous (at x) f) \<Longrightarrow> closed (f -` S)" |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3557 |
by (simp add: closed_vimage continuous_on_eq_continuous_within) |
5aa5a8d6e5b5
split off theorems involving classes below metric_space and real_normed_vector
immler
parents:
69529
diff
changeset
|
3558 |
|
69622 | 3559 |
lemma Times_in_interior_subtopology: |
3560 |
assumes "(x, y) \<in> U" "openin (subtopology euclidean (S \<times> T)) U" |
|
3561 |
obtains V W where "openin (subtopology euclidean S) V" "x \<in> V" |
|
3562 |
"openin (subtopology euclidean T) W" "y \<in> W" "(V \<times> W) \<subseteq> U" |
|
3563 |
proof - |
|
3564 |
from assms obtain E where "open E" "U = S \<times> T \<inter> E" "(x, y) \<in> E" "x \<in> S" "y \<in> T" |
|
3565 |
by (auto simp: openin_open) |
|
3566 |
from open_prod_elim[OF \<open>open E\<close> \<open>(x, y) \<in> E\<close>] |
|
3567 |
obtain E1 E2 where "open E1" "open E2" "(x, y) \<in> E1 \<times> E2" "E1 \<times> E2 \<subseteq> E" |
|
3568 |
by blast |
|
3569 |
show ?thesis |
|
3570 |
proof |
|
3571 |
show "openin (subtopology euclidean S) (E1 \<inter> S)" |
|
3572 |
"openin (subtopology euclidean T) (E2 \<inter> T)" |
|
3573 |
using \<open>open E1\<close> \<open>open E2\<close> |
|
3574 |
by (auto simp: openin_open) |
|
3575 |
show "x \<in> E1 \<inter> S" "y \<in> E2 \<inter> T" |
|
3576 |
using \<open>(x, y) \<in> E1 \<times> E2\<close> \<open>x \<in> S\<close> \<open>y \<in> T\<close> by auto |
|
3577 |
show "(E1 \<inter> S) \<times> (E2 \<inter> T) \<subseteq> U" |
|
3578 |
using \<open>E1 \<times> E2 \<subseteq> E\<close> \<open>U = _\<close> |
|
3579 |
by (auto simp: ) |
|
3580 |
qed |
|
3581 |
qed |
|
3582 |
||
3583 |
lemma closedin_Times: |
|
3584 |
"closedin (subtopology euclidean S) S' \<Longrightarrow> closedin (subtopology euclidean T) T' \<Longrightarrow> |
|
3585 |
closedin (subtopology euclidean (S \<times> T)) (S' \<times> T')" |
|
3586 |
unfolding closedin_closed using closed_Times by blast |
|
3587 |
||
3588 |
lemma openin_Times: |
|
3589 |
"openin (subtopology euclidean S) S' \<Longrightarrow> openin (subtopology euclidean T) T' \<Longrightarrow> |
|
3590 |
openin (subtopology euclidean (S \<times> T)) (S' \<times> T')" |
|
3591 |
unfolding openin_open using open_Times by blast |
|
3592 |
||
3593 |
lemma openin_Times_eq: |
|
3594 |
fixes S :: "'a::topological_space set" and T :: "'b::topological_space set" |
|
3595 |
shows |
|
3596 |
"openin (subtopology euclidean (S \<times> T)) (S' \<times> T') \<longleftrightarrow> |
|
3597 |
S' = {} \<or> T' = {} \<or> openin (subtopology euclidean S) S' \<and> openin (subtopology euclidean T) T'" |
|
3598 |
(is "?lhs = ?rhs") |
|
3599 |
proof (cases "S' = {} \<or> T' = {}") |
|
3600 |
case True |
|
3601 |
then show ?thesis by auto |
|
3602 |
next |
|
3603 |
case False |
|
3604 |
then obtain x y where "x \<in> S'" "y \<in> T'" |
|
3605 |
by blast |
|
3606 |
show ?thesis |
|
3607 |
proof |
|
3608 |
assume ?lhs |
|
3609 |
have "openin (subtopology euclidean S) S'" |
|
3610 |
apply (subst openin_subopen, clarify) |
|
3611 |
apply (rule Times_in_interior_subtopology [OF _ \<open>?lhs\<close>]) |
|
3612 |
using \<open>y \<in> T'\<close> |
|
3613 |
apply auto |
|
3614 |
done |
|
3615 |
moreover have "openin (subtopology euclidean T) T'" |
|
3616 |
apply (subst openin_subopen, clarify) |
|
3617 |
apply (rule Times_in_interior_subtopology [OF _ \<open>?lhs\<close>]) |
|
3618 |
using \<open>x \<in> S'\<close> |
|
3619 |
apply auto |
|
3620 |
done |
|
3621 |
ultimately show ?rhs |
|
3622 |
by simp |
|
3623 |
next |
|
3624 |
assume ?rhs |
|
3625 |
with False show ?lhs |
|
3626 |
by (simp add: openin_Times) |
|
3627 |
qed |
|
3628 |
qed |
|
3629 |
||
3630 |
lemma Lim_transform_within_openin: |
|
3631 |
assumes f: "(f \<longlongrightarrow> l) (at a within T)" |
|
3632 |
and "openin (subtopology euclidean T) S" "a \<in> S" |
|
3633 |
and eq: "\<And>x. \<lbrakk>x \<in> S; x \<noteq> a\<rbrakk> \<Longrightarrow> f x = g x" |
|
3634 |
shows "(g \<longlongrightarrow> l) (at a within T)" |
|
3635 |
proof - |
|
3636 |
have "\<forall>\<^sub>F x in at a within T. x \<in> T \<and> x \<noteq> a" |
|
3637 |
by (simp add: eventually_at_filter) |
|
3638 |
moreover |
|
3639 |
from \<open>openin _ _\<close> obtain U where "open U" "S = T \<inter> U" |
|
3640 |
by (auto simp: openin_open) |
|
3641 |
then have "a \<in> U" using \<open>a \<in> S\<close> by auto |
|
3642 |
from topological_tendstoD[OF tendsto_ident_at \<open>open U\<close> \<open>a \<in> U\<close>] |
|
3643 |
have "\<forall>\<^sub>F x in at a within T. x \<in> U" by auto |
|
3644 |
ultimately |
|
3645 |
have "\<forall>\<^sub>F x in at a within T. f x = g x" |
|
3646 |
by eventually_elim (auto simp: \<open>S = _\<close> eq) |
|
3647 |
then show ?thesis using f |
|
3648 |
by (rule Lim_transform_eventually) |
|
3649 |
qed |
|
3650 |
||
3651 |
lemma continuous_on_open_gen: |
|
3652 |
assumes "f ` S \<subseteq> T" |
|
3653 |
shows "continuous_on S f \<longleftrightarrow> |
|
3654 |
(\<forall>U. openin (subtopology euclidean T) U |
|
3655 |
\<longrightarrow> openin (subtopology euclidean S) (S \<inter> f -` U))" |
|
3656 |
(is "?lhs = ?rhs") |
|
3657 |
proof |
|
3658 |
assume ?lhs |
|
3659 |
then show ?rhs |
|
3660 |
by (clarsimp simp add: continuous_openin_preimage_eq openin_open) |
|
3661 |
(metis Int_assoc assms image_subset_iff_subset_vimage inf.absorb_iff1) |
|
3662 |
next |
|
3663 |
assume R [rule_format]: ?rhs |
|
3664 |
show ?lhs |
|
3665 |
proof (clarsimp simp add: continuous_openin_preimage_eq) |
|
3666 |
fix U::"'a set" |
|
3667 |
assume "open U" |
|
3668 |
then have "openin (subtopology euclidean S) (S \<inter> f -` (U \<inter> T))" |
|
3669 |
by (metis R inf_commute openin_open) |
|
3670 |
then show "openin (subtopology euclidean S) (S \<inter> f -` U)" |
|
3671 |
by (metis Int_assoc Int_commute assms image_subset_iff_subset_vimage inf.absorb_iff2 vimage_Int) |
|
3672 |
qed |
|
3673 |
qed |
|
3674 |
||
3675 |
lemma continuous_openin_preimage: |
|
3676 |
"\<lbrakk>continuous_on S f; f ` S \<subseteq> T; openin (subtopology euclidean T) U\<rbrakk> |
|
3677 |
\<Longrightarrow> openin (subtopology euclidean S) (S \<inter> f -` U)" |
|
3678 |
by (simp add: continuous_on_open_gen) |
|
3679 |
||
3680 |
lemma continuous_on_closed_gen: |
|
3681 |
assumes "f ` S \<subseteq> T" |
|
3682 |
shows "continuous_on S f \<longleftrightarrow> |
|
3683 |
(\<forall>U. closedin (subtopology euclidean T) U |
|
3684 |
\<longrightarrow> closedin (subtopology euclidean S) (S \<inter> f -` U))" |
|
3685 |
(is "?lhs = ?rhs") |
|
3686 |
proof - |
|
3687 |
have *: "U \<subseteq> T \<Longrightarrow> S \<inter> f -` (T - U) = S - (S \<inter> f -` U)" for U |
|
3688 |
using assms by blast |
|
3689 |
show ?thesis |
|
3690 |
proof |
|
3691 |
assume L: ?lhs |
|
3692 |
show ?rhs |
|
3693 |
proof clarify |
|
3694 |
fix U |
|
3695 |
assume "closedin (subtopology euclidean T) U" |
|
3696 |
then show "closedin (subtopology euclidean S) (S \<inter> f -` U)" |
|
3697 |
using L unfolding continuous_on_open_gen [OF assms] |
|
3698 |
by (metis * closedin_def inf_le1 topspace_euclidean_subtopology) |
|
3699 |
qed |
|
3700 |
next |
|
3701 |
assume R [rule_format]: ?rhs |
|
3702 |
show ?lhs |
|
3703 |
unfolding continuous_on_open_gen [OF assms] |
|
3704 |
by (metis * R inf_le1 openin_closedin_eq topspace_euclidean_subtopology) |
|
3705 |
qed |
|
3706 |
qed |
|
3707 |
||
3708 |
lemma continuous_closedin_preimage_gen: |
|
3709 |
assumes "continuous_on S f" "f ` S \<subseteq> T" "closedin (subtopology euclidean T) U" |
|
3710 |
shows "closedin (subtopology euclidean S) (S \<inter> f -` U)" |
|
3711 |
using assms continuous_on_closed_gen by blast |
|
3712 |
||
3713 |
lemma continuous_transform_within_openin: |
|
3714 |
assumes "continuous (at a within T) f" |
|
3715 |
and "openin (subtopology euclidean T) S" "a \<in> S" |
|
3716 |
and eq: "\<And>x. x \<in> S \<Longrightarrow> f x = g x" |
|
3717 |
shows "continuous (at a within T) g" |
|
3718 |
using assms by (simp add: Lim_transform_within_openin continuous_within) |
|
3719 |
||
3720 |
||
69144
f13b82281715
new theory Abstract_Topology with lots of stuff from HOL Light's metric.sml
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3721 |
end |