Lean source · namespace BFPP
ClopenCompleteness.lean
BFPP/ClopenCompleteness.lean · 56 lines
1import BFPP.BooleanGap2import Mathlib.Topology.ExtremallyDisconnected3import Mathlib.Topology.Separation.Profinite4import Mathlib.Topology.Sets.Closeds56/-! # Completeness of clopens detects extremal disconnectedness -/78namespace BFPP910set_option autoImplicit false11open Set TopologicalSpace1213variable {K : Type*} [TopologicalSpace K] [CompactSpace K] [T2Space K]14 [TotallyDisconnectedSpace K]1516theorem extremallyDisconnected_of_clopen_complete17 (h : ∀ S : Set (Clopens K), ∃ H, IsLUB S H) : ExtremallyDisconnected K := by18 classical19 refine ⟨fun U hU => ?_⟩20 let S : Set (Clopens K) := {C | (C : Set K) ⊆ U}21 obtain ⟨H, hH⟩ := h S22 have hUH : U ⊆ H := by23 intro t ht24 obtain ⟨V, hV, htV, hVU⟩ := compact_exists_isClopen_in_isOpen hU ht25 exact hH.1 (show (⟨V, hV⟩ : Clopens K) ∈ S from hVU) htV26 have hcH : closure U ⊆ H := closure_minimal hUH H.isClosed27 have hHc : (H : Set K) ⊆ closure U := by28 intro t ht29 by_contra htc30 obtain ⟨V, hV, htV, hVc⟩ := compact_exists_isClopen_in_isOpen31 isClosed_closure.isOpen_compl htc32 let V' : Clopens K := ⟨V, hV⟩33 have hub : H ⊓ V'ᶜ ∈ upperBounds S := by34 intro C hC35 refine le_inf (hH.1 hC) ?_36 intro x hx hxV37 exact hVc hxV (subset_closure (hC hx))38 have hle := hH.2 hub39 have ht' : t ∈ H ⊓ V'ᶜ := hle ht40 exact ht'.2 htV41 have he : closure U = (H : Set K) := hcH.antisymm hHc42 rw [he]43 exact H.isOpen4445theorem exists_clopen_chainGap (h : ¬ ExtremallyDisconnected K) :46 Nonempty (ChainGap (Clopens K)) := by47 classical48 apply exists_chainGap49 by_contra hn50 apply h51 apply extremallyDisconnected_of_clopen_complete52 intro S53 by_contra hS54 exact hn ⟨S, hS⟩5556end BFPPSHA-256
3c6a7e00f064cdf9eb1e58ff7bed8d96828088c27af371f3a8dd1f223b3639e7