@@ -137,6 +137,41 @@ end separated
137
137
class t0_space (α : Type u) [topological_space α] : Prop :=
138
138
(t0 : ∀ x y, x ≠ y → ∃ U:set α, is_open U ∧ (xor (x ∈ U) (y ∈ U)))
139
139
140
+ lemma t0_space_def (α : Type u) [topological_space α] :
141
+ t0_space α ↔ ∀ x y, x ≠ y → ∃ U:set α, is_open U ∧ (xor (x ∈ U) (y ∈ U)) :=
142
+ by { split, apply @t0_space.t0, apply t0_space.mk }
143
+
144
+ /-- Two points are topologically indistinguishable if no open set separates them. -/
145
+ def indistinguishable {α : Type u} [topological_space α] (x y : α) : Prop :=
146
+ ∀ (U : set α) (hU : is_open U), x ∈ U ↔ y ∈ U
147
+
148
+ lemma t0_space_iff_distinguishable (α : Type u) [topological_space α] :
149
+ t0_space α ↔ ∀ (x y : α), x ≠ y → ¬ indistinguishable x y :=
150
+ begin
151
+ delta indistinguishable,
152
+ rw t0_space_def,
153
+ push_neg,
154
+ simp_rw xor_iff_not_iff,
155
+ end
156
+
157
+ lemma indistinguishable_iff_closed {α : Type u} [topological_space α] (x y : α) :
158
+ indistinguishable x y ↔ ∀ (U : set α) (hU : is_closed U), x ∈ U ↔ y ∈ U :=
159
+ ⟨λ h U hU, not_iff_not.mp (h _ hU.1 ), λ h U hU, not_iff_not.mp (h _ (is_closed_compl_iff.mpr hU))⟩
160
+
161
+ lemma indistinguishable_iff_closure {α : Type u} [topological_space α] (x y : α) :
162
+ indistinguishable x y ↔ x ∈ closure ({y} : set α) ∧ y ∈ closure ({x} : set α) :=
163
+ begin
164
+ rw indistinguishable_iff_closed,
165
+ exact ⟨λ h, ⟨(h _ is_closed_closure).mpr (subset_closure $ set.mem_singleton y),
166
+ (h _ is_closed_closure).mp (subset_closure $ set.mem_singleton x)⟩,
167
+ λ h U hU, ⟨λ hx, (is_closed.closure_subset_iff hU).mpr (set.singleton_subset_iff.mpr hx) h.2 ,
168
+ λ hy, (is_closed.closure_subset_iff hU).mpr (set.singleton_subset_iff.mpr hy) h.1 ⟩⟩
169
+ end
170
+
171
+ lemma subtype_indistinguishable_iff {α : Type u} [topological_space α] {U : set α} (x y : U) :
172
+ indistinguishable x y ↔ indistinguishable (x : α) y :=
173
+ by { simp_rw [indistinguishable_iff_closure, closure_subtype, image_singleton] }
174
+
140
175
/-- Given a closed set `S` in a compact T₀ space,
141
176
there is some `x ∈ S` such that `{x}` is closed. -/
142
177
theorem is_closed.exists_closed_singleton {α : Type *} [topological_space α]
@@ -207,6 +242,34 @@ instance subtype.t0_space [t0_space α] {p : α → Prop} : t0_space (subtype p)
207
242
⟨λ x y hxy, let ⟨U, hU, hxyU⟩ := t0_space.t0 (x:α) y ((not_congr subtype.ext_iff_val).1 hxy) in
208
243
⟨(coe : subtype p → α) ⁻¹' U, is_open_induced hU, hxyU⟩⟩
209
244
245
+ theorem t0_space_iff_or_not_mem_closure (α : Type u) [topological_space α] :
246
+ t0_space α ↔ (∀ a b : α, (a ≠ b) → (a ∉ closure ({b} : set α) ∨ b ∉ closure ({a} : set α))) :=
247
+ begin
248
+ simp only [← not_and_distrib, t0_space_def, not_and],
249
+ apply forall_congr, intro a,
250
+ apply forall_congr, intro b,
251
+ apply forall_congr, intro _,
252
+ split,
253
+ { rintro ⟨s, h₁, (⟨h₂, h₃ : b ∈ sᶜ⟩|⟨h₂, h₃ : a ∈ sᶜ⟩)⟩ ha hb; rw ← is_closed_compl_iff at h₁,
254
+ { exact (is_closed.closure_subset_iff h₁).mpr (set.singleton_subset_iff.mpr h₃) ha h₂ },
255
+ { exact (is_closed.closure_subset_iff h₁).mpr (set.singleton_subset_iff.mpr h₃) hb h₂ } },
256
+ { intro h,
257
+ by_cases h' : a ∈ closure ({b} : set α),
258
+ { exact ⟨(closure {a})ᶜ, is_closed_closure.1 ,
259
+ or.inr ⟨h h', not_not.mpr (subset_closure (set.mem_singleton a))⟩⟩ },
260
+ { exact ⟨(closure {b})ᶜ, is_closed_closure.1 ,
261
+ or.inl ⟨h', not_not.mpr (subset_closure (set.mem_singleton b))⟩⟩ } }
262
+ end
263
+
264
+ lemma t0_space_of_injective_of_continuous {α β : Type u} [topological_space α] [topological_space β]
265
+ {f : α → β} (hf : function.injective f) (hf' : continuous f) [t0_space β] : t0_space α :=
266
+ begin
267
+ constructor,
268
+ intros x y h,
269
+ obtain ⟨U, hU, e⟩ := t0_space.t0 _ _ (hf.ne h),
270
+ exact ⟨f ⁻¹' U, hf'.1 U hU, e⟩
271
+ end
272
+
210
273
/-- A T₁ space, also known as a Fréchet space, is a topological space
211
274
where every singleton set is closed. Equivalently, for every pair
212
275
`x ≠ y`, there is an open set containing `x` and not `y`. -/
0 commit comments