Skip to content

Commit 030b1f7

Browse files
committed
feat(Topology/Separation/NotNormal): generalize to non-separable spaces (#33414)
1 parent d8882aa commit 030b1f7

File tree

2 files changed

+59
-43
lines changed

2 files changed

+59
-43
lines changed

Counterexamples/SorgenfreyLine.lean

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@ Copyright (c) 2022 Yury Kudryashov. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Yury Kudryashov
55
-/
6+
import Mathlib.Analysis.Real.Cardinality
67
import Mathlib.Order.Interval.Set.Monotone
8+
import Mathlib.Topology.Baire.Lemmas
9+
import Mathlib.Topology.Baire.LocallyCompactRegular
10+
import Mathlib.Topology.EMetricSpace.Paracompact
711
import Mathlib.Topology.Instances.Irrational
8-
import Mathlib.Topology.Algebra.Order.Archimedean
9-
import Mathlib.Topology.Compactness.Paracompact
1012
import Mathlib.Topology.Metrizable.Urysohn
11-
import Mathlib.Topology.EMetricSpace.Paracompact
1213
import Mathlib.Topology.Separation.NotNormal
13-
import Mathlib.Topology.Baire.Lemmas
14-
import Mathlib.Topology.Baire.LocallyCompactRegular
1514

1615
/-!
1716
# Sorgenfrey line
Lines changed: 55 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,78 @@
11
/-
22
Copyright (c) 2023 Yury Kudryashov. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
4-
Authors: Yury Kudryashov
4+
Authors: Yury Kudryashov, Tian Chen
55
-/
66
module
77

8-
public import Mathlib.Analysis.Real.Cardinality
9-
public import Mathlib.Topology.TietzeExtension
8+
public import Mathlib.SetTheory.Cardinal.Continuum
9+
public import Mathlib.Topology.Separation.Regular
10+
1011
/-!
1112
# Not normal topological spaces
1213
1314
In this file we prove (see `IsClosed.not_normal_of_continuum_le_mk`) that a separable space with a
1415
discrete subspace of cardinality continuum is not a normal topological space.
16+
17+
## References
18+
19+
* [Willard's *General Topology*][zbMATH02107988]
1520
-/
1621

1722
public section
1823

19-
open Set Function Cardinal Topology TopologicalSpace
24+
open Set Function Cardinal TopologicalSpace
2025

2126
universe u
22-
variable {X : Type u} [TopologicalSpace X] [SeparableSpace X]
27+
variable {X : Type u} [TopologicalSpace X]
2328

24-
/-- Let `s` be a closed set in a separable normal space. If the induced topology on `s` is discrete,
25-
then `s` has cardinality less than continuum.
26-
27-
The proof follows
28-
https://en.wikipedia.org/wiki/Moore_plane#Proof_that_the_Moore_plane_is_not_normal -/
29-
theorem IsClosed.mk_lt_continuum [NormalSpace X] {s : Set X} (hs : IsClosed s)
30-
[DiscreteTopology s] : #s < 𝔠 := by
31-
-- Proof by contradiction: assume `𝔠 ≤ #s`
32-
by_contra! h
33-
-- Choose a countable dense set `t : Set X`
34-
rcases exists_countable_dense X with ⟨t, htc, htd⟩
35-
haveI := htc.to_subtype
36-
-- To obtain a contradiction, we will prove `2 ^ 𝔠 ≤ 𝔠`.
37-
refine (Cardinal.cantor 𝔠).not_ge ?_
29+
namespace IsClosed
30+
31+
/-- Let `s` be a closed set in a normal space and `d` be a dense set. If the induced topology on `s`
32+
is discrete, then `𝒫 s` has cardinality less than or equal to `𝒫 d`. -/
33+
theorem two_pow_mk_le_two_pow_mk_dense [NormalSpace X] {s d : Set X} (hs : IsClosed s)
34+
[DiscreteTopology s] (hd : Dense d) : (2 : Cardinal) ^ #s ≤ 2 ^ #d := by
35+
have h_closed (t) (ht : t ∈ 𝒫 s) : IsClosed t := by
36+
rw [← inter_eq_self_of_subset_right ht, ← Subtype.image_preimage_val]
37+
exact hs.isClosedMap_subtype_val _ (isClosed_discrete _)
38+
choose U V hU hV hUs hVs hUV using fun t : 𝒫 s ↦
39+
normal_separation (h_closed t t.2) (h_closed _ diff_subset) disjoint_sdiff_right
40+
have hUd {t₁ t₂} (h : U t₁ ∩ d = U t₂ ∩ d) : t₁.1 ⊆ t₂.1 := by
41+
by_contra ht
42+
rw [← diff_nonempty] at ht
43+
have hUVd := hd.inter_open_nonempty _ ((hU t₁).inter (hV t₂)) <| ht.mono <|
44+
subset_inter (diff_subset.trans (hUs t₁)) ((diff_subset_diff_left t₁.2).trans (hVs t₂))
45+
rw [inter_right_comm, h] at hUVd
46+
exact hUVd.not_disjoint <| disjoint_of_subset_left inter_subset_left (hUV t₂)
47+
have h_inj : Injective (U · ∩ d) := fun _ _ h ↦ SetCoe.ext <| (hUd h).antisymm (hUd h.symm)
48+
rw [← mk_powerset, ← mk_powerset, ← mk_range_eq _ h_inj]
49+
apply mk_le_mk_of_subset
50+
rw [range_subset_iff]
51+
intro
52+
exact inter_subset_right
53+
54+
theorem mk_lt_two_pow_mk_dense [NormalSpace X] {s d : Set X} (hs : IsClosed s)
55+
[DiscreteTopology s] (hd : Dense d) : #s < 2 ^ #d :=
56+
(#s).cantor.trans_le <| hs.two_pow_mk_le_two_pow_mk_dense hd
57+
58+
variable [SeparableSpace X]
59+
60+
theorem two_pow_mk_lt_continuum [NormalSpace X] {s : Set X} (hs : IsClosed s)
61+
[DiscreteTopology s] : 2 ^ #s ≤ 𝔠 :=
62+
have ⟨d, hd_countable, hd_dense⟩ := exists_countable_dense X
3863
calc
39-
-- Any function `s → ℝ` is continuous, hence `2 ^ 𝔠 ≤ #C(s, ℝ)`
40-
2 ^ 𝔠 ≤ #C(s, ℝ) := by
41-
rw [ContinuousMap.equivFnOfDiscrete.cardinal_eq, mk_arrow, mk_real, lift_continuum,
42-
lift_uzero]
43-
exact (power_le_power_left two_ne_zero h).trans (power_le_power_right (nat_lt_continuum 2).le)
44-
-- By the Tietze Extension Theorem, any function `f : C(s, ℝ)` can be extended to `C(X, ℝ)`,
45-
-- hence `#C(s, ℝ) ≤ #C(X, ℝ)`
46-
_ ≤ #C(X, ℝ) := by
47-
choose f hf using ContinuousMap.exists_restrict_eq (Y := ℝ) hs
48-
have hfi : Injective f := LeftInverse.injective hf
49-
exact mk_le_of_injective hfi
50-
-- Since `t` is dense, restriction `C(X, ℝ) → C(t, ℝ)` is injective, hence `#C(X, ℝ) ≤ #C(t, ℝ)`
51-
_ ≤ #C(t, ℝ) := mk_le_of_injective <| ContinuousMap.injective_restrict htd
52-
_ ≤ #(t → ℝ) := mk_le_of_injective DFunLike.coe_injective
53-
-- Since `t` is countable, we have `#(t → ℝ) ≤ 𝔠`
54-
_ ≤ 𝔠 := by
55-
rw [mk_arrow, mk_real, lift_uzero, lift_continuum, continuum, ← power_mul]
56-
exact power_le_power_left two_ne_zero mk_le_aleph0
64+
2 ^ #s ≤ 2 ^ #d := hs.two_pow_mk_le_two_pow_mk_dense hd_dense
65+
_ ≤ 2 ^ ℵ₀ := power_le_power_left two_ne_zero hd_countable.le_aleph0
66+
_ = 𝔠 := two_power_aleph0
67+
68+
/-- Let `s` be a closed set in a separable normal space. If the induced topology on `s` is discrete,
69+
then `s` has cardinality less than continuum. -/
70+
theorem mk_lt_continuum [NormalSpace X] {s : Set X} (hs : IsClosed s)
71+
[DiscreteTopology s] : #s < 𝔠 := (#s).cantor.trans_le hs.two_pow_mk_lt_continuum
5772

5873
/-- Let `s` be a closed set in a separable space. If the induced topology on `s` is discrete and `s`
5974
has cardinality at least continuum, then the ambient space is not a normal space. -/
60-
theorem IsClosed.not_normal_of_continuum_le_mk {s : Set X} (hs : IsClosed s) [DiscreteTopology s]
75+
theorem not_normal_of_continuum_le_mk {s : Set X} (hs : IsClosed s) [DiscreteTopology s]
6176
(hmk : 𝔠 ≤ #s) : ¬NormalSpace X := fun _ ↦ hs.mk_lt_continuum.not_ge hmk
77+
78+
end IsClosed

0 commit comments

Comments
 (0)