@@ -122,6 +122,40 @@ t2_iff_nhds.trans
122
122
let ⟨f, hf, uf⟩ := exists_ultrafilter xy in
123
123
h f uf (le_trans hf inf_le_left) (le_trans hf inf_le_right)⟩
124
124
125
+ lemma is_closed_diagonal [t2_space α] : is_closed (diagonal α) :=
126
+ is_closed_iff_nhds.mpr $ assume ⟨a₁, a₂⟩ h, eq_of_nhds_ne_bot $ assume : 𝓝 a₁ ⊓ 𝓝 a₂ = ⊥, h $
127
+ let ⟨t₁, ht₁, t₂, ht₂, (h' : t₁ ∩ t₂ ⊆ ∅)⟩ :=
128
+ by rw [←empty_in_sets_eq_bot, mem_inf_sets] at this ; exact this in
129
+ begin
130
+ change t₁ ∈ 𝓝 a₁ at ht₁,
131
+ change t₂ ∈ 𝓝 a₂ at ht₂,
132
+ rw [nhds_prod_eq, ←empty_in_sets_eq_bot],
133
+ apply filter.sets_of_superset,
134
+ apply inter_mem_inf_sets (prod_mem_prod ht₁ ht₂) (mem_principal_sets.mpr (subset.refl _)),
135
+ exact assume ⟨x₁, x₂⟩ ⟨⟨hx₁, hx₂⟩, (heq : x₁ = x₂)⟩,
136
+ show false, from @h' x₁ ⟨hx₁, heq.symm ▸ hx₂⟩
137
+ end
138
+
139
+ lemma t2_iff_is_closed_diagonal : t2_space α ↔ is_closed (diagonal α) :=
140
+ begin
141
+ split,
142
+ { introI h,
143
+ exact is_closed_diagonal },
144
+ { intro h,
145
+ constructor,
146
+ intros x y hxy,
147
+ have : (x, y) ∈ -diagonal α, by rwa [mem_compl_iff],
148
+ obtain ⟨t, t_sub, t_op, xyt⟩ : ∃ t ⊆ -diagonal α, is_open t ∧ (x, y) ∈ t :=
149
+ is_open_iff_forall_mem_open.mp h _ this ,
150
+ rcases is_open_prod_iff.mp t_op x y xyt with ⟨U, V, U_op, V_op, xU, yV, H⟩,
151
+ use [U, V, U_op, V_op, xU, yV],
152
+ have := subset.trans H t_sub,
153
+ rw eq_empty_iff_forall_not_mem,
154
+ rintros z ⟨zU, zV⟩,
155
+ have : ¬ (z, z) ∈ diagonal α := this (mk_mem_prod zU zV),
156
+ exact this rfl },
157
+ end
158
+
125
159
@[simp] lemma nhds_eq_nhds_iff {a b : α} [t2_space α] : 𝓝 a = 𝓝 b ↔ a = b :=
126
160
⟨assume h, eq_of_nhds_ne_bot $ by rw [h, inf_idem]; exact nhds_ne_bot, assume h, h ▸ rfl⟩
127
161
@@ -202,20 +236,6 @@ instance Pi.t2_space {α : Type*} {β : α → Type v} [t₂ : Πa, topological_
202
236
let ⟨i, hi⟩ := not_forall.mp (mt funext h) in
203
237
separated_by_f (λz, z i) (infi_le _ i) hi⟩
204
238
205
- lemma is_closed_diagonal [t2_space α] : is_closed {p:α×α | p.1 = p.2 } :=
206
- is_closed_iff_nhds.mpr $ assume ⟨a₁, a₂⟩ h, eq_of_nhds_ne_bot $ assume : 𝓝 a₁ ⊓ 𝓝 a₂ = ⊥, h $
207
- let ⟨t₁, ht₁, t₂, ht₂, (h' : t₁ ∩ t₂ ⊆ ∅)⟩ :=
208
- by rw [←empty_in_sets_eq_bot, mem_inf_sets] at this ; exact this in
209
- begin
210
- change t₁ ∈ 𝓝 a₁ at ht₁,
211
- change t₂ ∈ 𝓝 a₂ at ht₂,
212
- rw [nhds_prod_eq, ←empty_in_sets_eq_bot],
213
- apply filter.sets_of_superset,
214
- apply inter_mem_inf_sets (prod_mem_prod ht₁ ht₂) (mem_principal_sets.mpr (subset.refl _)),
215
- exact assume ⟨x₁, x₂⟩ ⟨⟨hx₁, hx₂⟩, (heq : x₁ = x₂)⟩,
216
- show false, from @h' x₁ ⟨hx₁, heq.symm ▸ hx₂⟩
217
- end
218
-
219
239
variables [topological_space β]
220
240
221
241
lemma is_closed_eq [t2_space α] {f g : β → α}
0 commit comments