@@ -14,6 +14,7 @@ import Mathlib.Topology.Paracompact
14
14
import Mathlib.Topology.MetricSpace.Metrizable
15
15
import Mathlib.Topology.MetricSpace.EMetricParacompact
16
16
import Mathlib.Data.Set.Intervals.Monotone
17
+ import Mathlib.Topology.Separation.NotNormal
17
18
18
19
/-!
19
20
# Sorgenfrey line
@@ -38,7 +39,7 @@ Prove that the Sorgenfrey line is a paracompact space.
38
39
39
40
open Set Filter TopologicalSpace
40
41
41
- open scoped Topology Filter
42
+ open scoped Topology Filter Cardinal
42
43
43
44
namespace Counterexample
44
45
@@ -78,7 +79,7 @@ theorem isOpen_Ici (a : ββ) : IsOpen (Ici a) :=
78
79
iUnion_Ico_right a βΈ isOpen_iUnion (isOpen_Ico a)
79
80
#align counterexample.sorgenfrey_line.is_open_Ici Counterexample.SorgenfreyLine.isOpen_Ici
80
81
81
- theorem nhds_basis_Ico (a : ββ) : (π a).HasBasis (fun b => a < b) fun b => Ico a b := by
82
+ theorem nhds_basis_Ico (a : ββ) : (π a).HasBasis (a < Β·) ( Ico a Β·) := by
82
83
rw [TopologicalSpace.nhds_generateFrom]
83
84
haveI : Nonempty { x // x β€ a } := Set.nonempty_Iic_subtype
84
85
have : (β¨
x : { i // i β€ a }, π (Ici βx)) = π (Ici a) := by
@@ -235,9 +236,15 @@ theorem isClopen_Ici_prod (x : ββ Γ ββ) : IsClopen (Ici x) :=
235
236
(Ici_prod_eq x).symm βΈ (isClopen_Ici _).prod (isClopen_Ici _)
236
237
#align counterexample.sorgenfrey_line.is_clopen_Ici_prod Counterexample.SorgenfreyLine.isClopen_Ici_prod
237
238
239
+ theorem cardinal_antidiagonal (c : ββ) : #{x : ββ Γ ββ | x.1 + x.2 = c} = π := by
240
+ rw [β Cardinal.mk_real]
241
+ exact Equiv.cardinal_eq β¨fun x β¦ toReal x.1 .1 ,
242
+ fun x β¦ β¨(toReal.symm x, c - toReal.symm x), by simpβ©,
243
+ fun β¨x, hxβ© β¦ by ext <;> simp [β hx.out], fun x β¦ rflβ©
244
+
238
245
/-- Any subset of an antidiagonal `{(x, y) : ββ Γ ββ| x + y = c}` is a closed set. -/
239
- theorem isClosed_of_subset_antidiagonal {s : Set (ββ Γ ββ)} {c : ββ}
240
- (hs : β x : ββ Γ ββ, x β s β x. 1 + x. 2 = c) : IsClosed s := by
246
+ theorem isClosed_of_subset_antidiagonal {s : Set (ββ Γ ββ)} {c : ββ} (hs : β x β s, x. 1 + x. 2 = c) :
247
+ IsClosed s := by
241
248
rw [β closure_subset_iff_isClosed]
242
249
rintro β¨x, yβ© H
243
250
obtain rfl : x + y = c := by
@@ -252,30 +259,47 @@ theorem isClosed_of_subset_antidiagonal {s : Set (ββ Γ ββ)} {c : ββ
252
259
rwa [β add_le_add_iff_left, hs _ H, add_le_add_iff_right]
253
260
#align counterexample.sorgenfrey_line.is_closed_of_subset_antidiagonal Counterexample.SorgenfreyLine.isClosed_of_subset_antidiagonal
254
261
262
+ open Subtype in
263
+ instance (c : ββ) : DiscreteTopology {x : ββ Γ ββ | x.1 + x.2 = c} :=
264
+ forall_open_iff_discrete.1 fun U β¦ isClosed_compl_iff.1 <| isClosed_induced_iff.2
265
+ β¨val '' UαΆ, isClosed_of_subset_antidiagonal <| coe_image_subset _ UαΆ,
266
+ preimage_image_eq _ val_injectiveβ©
267
+
268
+ /-- The Sorgenfrey plane `ββ Γ ββ` is not a normal space. -/
269
+ theorem not_normalSpace_prod : Β¬NormalSpace (ββ Γ ββ) :=
270
+ (isClosed_antidiagonal 0 ).not_normal_of_continuum_le_mk (cardinal_antidiagonal _).ge
271
+ #align counterexample.sorgenfrey_line.not_normal_space_prod Counterexample.SorgenfreyLine.not_normalSpace_prod
272
+
273
+ /-- An antidiagonal is a separable set but is not a separable space. -/
274
+ theorem isSeparable_antidiagonal (c : ββ) : IsSeparable {x : ββ Γ ββ | x.1 + x.2 = c} :=
275
+ isSeparable_of_separableSpace _
276
+
277
+ /-- An antidiagonal is a separable set but is not a separable space. -/
278
+ theorem not_separableSpace_antidiagonal (c : ββ) :
279
+ Β¬SeparableSpace {x : ββ Γ ββ | x.1 + x.2 = c} := by
280
+ rw [separableSpace_iff_countable, β Cardinal.mk_le_aleph0_iff, cardinal_antidiagonal, not_le]
281
+ exact Cardinal.aleph0_lt_continuum
282
+
255
283
theorem nhds_prod_antitone_basis_inv_pnat (x y : ββ) :
256
284
(π (x, y)).HasAntitoneBasis fun n : β+ => Ico x (x + (n : ββ)β»ΒΉ) ΓΛ’ Ico y (y + (n : ββ)β»ΒΉ) := by
257
285
rw [nhds_prod_eq]
258
286
exact (nhds_antitone_basis_Ico_inv_pnat x).prod (nhds_antitone_basis_Ico_inv_pnat y)
259
287
#align counterexample.sorgenfrey_line.nhds_prod_antitone_basis_inv_pnat Counterexample.SorgenfreyLine.nhds_prod_antitone_basis_inv_pnat
260
288
261
- /-- The product of the Sorgenfrey line and itself is not a normal topological space. -/
262
- theorem not_normalSpace_prod : Β¬NormalSpace (ββ Γ ββ) := by
289
+ /-- The sets of rational and irrational points of the antidiagonal `{(x, y) | x + y = 0}` cannot be
290
+ separated by open neighborhoods. This implies that `ββ Γ ββ` is not a normal space. -/
291
+ theorem not_separatedNhds_rat_irrational_antidiag :
292
+ Β¬SeparatedNhds {x : ββ Γ ββ | x.1 + x.2 = 0 β§ β r : β, βr = x.1 }
293
+ {x : ββ Γ ββ | x.1 + x.2 = 0 β§ Irrational (toReal x.1 )} := by
263
294
have hβ : β {n : β+}, 0 < (n : β)β»ΒΉ := inv_pos.2 (Nat.cast_pos.2 (PNat.pos _))
264
295
have hβ' : β {n : β+} {x : β}, x < x + (n : β)β»ΒΉ := lt_add_of_pos_right _ hβ
265
- intro
266
296
/- Let `S` be the set of points `(x, y)` on the line `x + y = 0` such that `x` is rational.
267
297
Let `T` be the set of points `(x, y)` on the line `x + y = 0` such that `x` is irrational.
268
298
These sets are closed, see `SorgenfreyLine.isClosed_of_subset_antidiagonal`, and disjoint. -/
269
299
set S := {x : ββ Γ ββ | x.1 + x.2 = 0 β§ β r : β, βr = x.1 }
270
300
set T := {x : ββ Γ ββ | x.1 + x.2 = 0 β§ Irrational (toReal x.1 )}
271
- have hSc : IsClosed S := isClosed_of_subset_antidiagonal fun x hx => hx.1
272
- have hTc : IsClosed T := isClosed_of_subset_antidiagonal fun x hx => hx.1
273
- have hd : Disjoint S T := by
274
- rw [disjoint_iff_inf_le]
275
- rintro β¨x, yβ© β¨β¨-, r, rfl : _ = xβ©, -, hrβ©
276
- exact r.not_irrational hr
277
301
-- Consider disjoint open sets `U β S` and `V β T`.
278
- rcases normal_separation hSc hTc hd with β¨U, V, Uo, Vo, SU, TV, UVβ©
302
+ rintro β¨U, V, Uo, Vo, SU, TV, UVβ©
279
303
/- For each point `(x, -x) β T`, choose a neighborhood
280
304
`Ico x (x + kβ»ΒΉ) ΓΛ’ Ico (-x) (-x + kβ»ΒΉ) β V`. -/
281
305
have : β x : ββ, Irrational (toReal x) β
@@ -316,7 +340,6 @@ theorem not_normalSpace_prod : Β¬NormalSpace (ββ Γ ββ) := by
316
340
Β· refine' (nhds_antitone_basis_Ico_inv_pnat (-x)).2 hnN β¨neg_le_neg hxn.1 .le, _β©
317
341
simp only [add_neg_lt_iff_le_add', lt_neg_add_iff_add_lt]
318
342
exact hxn.2
319
- #align counterexample.sorgenfrey_line.not_normal_space_prod Counterexample.SorgenfreyLine.not_normalSpace_prod
320
343
321
344
/-- Topology on the Sorgenfrey line is not metrizable. -/
322
345
theorem not_metrizableSpace : Β¬MetrizableSpace ββ := by
0 commit comments