|  | 
|  | 1 | +/- | 
|  | 2 | +Copyright (c) 2023 Yury Kudryashov. All rights reserved. | 
|  | 3 | +Released under Apache 2.0 license as described in the file LICENSE. | 
|  | 4 | +Authors: Yury Kudryashov | 
|  | 5 | +-/ | 
|  | 6 | +import Mathlib.Topology.Homeomorph.Lemmas | 
|  | 7 | + | 
|  | 8 | +/-! | 
|  | 9 | +# Infinite Hausdorff topological spaces | 
|  | 10 | +
 | 
|  | 11 | +In this file we prove several properties of infinite Hausdorff topological spaces. | 
|  | 12 | +
 | 
|  | 13 | +- `exists_seq_infinite_isOpen_pairwise_disjoint`: there exists a sequence | 
|  | 14 | +  of pairwise disjoint infinite open sets; | 
|  | 15 | +- `exists_topology_isEmbedding_nat`: there exista a topological embedding of `ℕ` into the space; | 
|  | 16 | +- `exists_infinite_discreteTopology`: there exists an infinite subset with discrete topology. | 
|  | 17 | +-/ | 
|  | 18 | + | 
|  | 19 | +open Function Filter Set Topology | 
|  | 20 | + | 
|  | 21 | +variable (X : Type*) [TopologicalSpace X] [T2Space X] [Infinite X] | 
|  | 22 | + | 
|  | 23 | +/-- In an infinite Hausdorff topological space, there exists a sequence of pairwise disjoint | 
|  | 24 | +infinite open sets. -/ | 
|  | 25 | +theorem exists_seq_infinite_isOpen_pairwise_disjoint : | 
|  | 26 | +    ∃ U : ℕ → Set X, (∀ n, (U n).Infinite) ∧ (∀ n, IsOpen (U n)) ∧ Pairwise (Disjoint on U) := by | 
|  | 27 | +  suffices ∃ U : ℕ → Set X, (∀ n, (U n).Nonempty) ∧ (∀ n, IsOpen (U n)) ∧ | 
|  | 28 | +      Pairwise (Disjoint on U) by | 
|  | 29 | +    rcases this with ⟨U, hne, ho, hd⟩ | 
|  | 30 | +    refine ⟨fun n ↦ ⋃ m, U (.pair n m), ?_, fun _ ↦ isOpen_iUnion fun _ ↦ ho _, ?_⟩ | 
|  | 31 | +    · refine fun n ↦ infinite_iUnion fun i j hij ↦ ?_ | 
|  | 32 | +      suffices n.pair i = n.pair j by simpa | 
|  | 33 | +      apply hd.eq | 
|  | 34 | +      simpa [hij, onFun] using (hne _).ne_empty | 
|  | 35 | +    · refine fun n n' hne ↦ disjoint_iUnion_left.2 fun m ↦ disjoint_iUnion_right.2 fun m' ↦ hd ?_ | 
|  | 36 | +      simp [hne] | 
|  | 37 | +  by_cases h : DiscreteTopology X | 
|  | 38 | +  · refine ⟨fun n ↦ {Infinite.natEmbedding X n}, fun _ ↦ singleton_nonempty _, | 
|  | 39 | +      fun _ ↦ isOpen_discrete _, fun _ _ h ↦ ?_⟩ | 
|  | 40 | +    simpa using h | 
|  | 41 | +  · simp only [discreteTopology_iff_nhds_ne, not_forall, ← ne_eq, ← neBot_iff] at h | 
|  | 42 | +    rcases h with ⟨x, hx⟩ | 
|  | 43 | +    suffices ∃ U : ℕ → Set X, (∀ n, (U n).Nonempty ∧ IsOpen (U n) ∧ (U n)ᶜ ∈ 𝓝 x) ∧ | 
|  | 44 | +        Pairwise (Disjoint on U) by | 
|  | 45 | +      rcases this with ⟨U, hU, hd⟩ | 
|  | 46 | +      exact ⟨U, fun n ↦ (hU n).1, fun n ↦ (hU n).2.1, hd⟩ | 
|  | 47 | +    have : IsSymm (Set X) Disjoint := ⟨fun _ _ h ↦ h.symm⟩ | 
|  | 48 | +    refine exists_seq_of_forall_finset_exists' (fun U : Set X ↦ U.Nonempty ∧ IsOpen U ∧ Uᶜ ∈ 𝓝 x) | 
|  | 49 | +      Disjoint fun S hS ↦ ?_ | 
|  | 50 | +    have : (⋂ U ∈ S, interior (Uᶜ)) \ {x} ∈ 𝓝[≠] x := inter_mem_inf ((biInter_finset_mem _).2 | 
|  | 51 | +      fun U hU ↦ interior_mem_nhds.2 (hS _ hU).2.2) (mem_principal_self _) | 
|  | 52 | +    rcases hx.nonempty_of_mem this with ⟨y, hyU, hyx : y ≠ x⟩ | 
|  | 53 | +    rcases t2_separation hyx with ⟨V, W, hVo, hWo, hyV, hxW, hVW⟩ | 
|  | 54 | +    refine ⟨V ∩ ⋂ U ∈ S, interior (Uᶜ), ⟨⟨y, hyV, hyU⟩, ?_, ?_⟩, fun U hU ↦ ?_⟩ | 
|  | 55 | +    · exact hVo.inter (isOpen_biInter_finset fun _ _ ↦ isOpen_interior) | 
|  | 56 | +    · refine mem_of_superset (hWo.mem_nhds hxW) fun z hzW ⟨hzV, _⟩ ↦ ?_ | 
|  | 57 | +      exact disjoint_left.1 hVW hzV hzW | 
|  | 58 | +    · exact disjoint_left.2 fun z hzU ⟨_, hzU'⟩ ↦ interior_subset (mem_iInter₂.1 hzU' U hU) hzU | 
|  | 59 | + | 
|  | 60 | +/-- If `X` is an infinite Hausdorff topological space, then there exists a topological embedding | 
|  | 61 | +`f : ℕ → X`. | 
|  | 62 | +
 | 
|  | 63 | +Note: this theorem is true for an infinite KC-space but the proof in that case is different. -/ | 
|  | 64 | +theorem exists_topology_isEmbedding_nat : ∃ f : ℕ → X, IsEmbedding f := by | 
|  | 65 | +  rcases exists_seq_infinite_isOpen_pairwise_disjoint X with ⟨U, hUi, hUo, hd⟩ | 
|  | 66 | +  choose f hf using fun n ↦ (hUi n).nonempty | 
|  | 67 | +  refine ⟨f, IsInducing.isEmbedding ⟨Eq.symm (eq_bot_of_singletons_open fun n ↦ ⟨U n, hUo n, ?_⟩)⟩⟩ | 
|  | 68 | +  refine eq_singleton_iff_unique_mem.2 ⟨hf _, fun m hm ↦ ?_⟩ | 
|  | 69 | +  exact hd.eq (not_disjoint_iff.2 ⟨f m, hf _, hm⟩) | 
|  | 70 | + | 
|  | 71 | +/-- If `X` is an infinite Hausdorff topological space, then there exists an infinite set `s : Set X` | 
|  | 72 | +that has the induced topology is the discrete topology. -/ | 
|  | 73 | +theorem exists_infinite_discreteTopology : ∃ s : Set X, s.Infinite ∧ DiscreteTopology s := by | 
|  | 74 | +  rcases exists_topology_isEmbedding_nat X with ⟨f, hf⟩ | 
|  | 75 | +  refine ⟨range f, infinite_range_of_injective hf.injective, ?_⟩ | 
|  | 76 | +  exact hf.toHomeomorph.symm.isEmbedding.discreteTopology | 
0 commit comments