MathlibAnnex/Topology/ClosureSpace/LinkedSet.lean
Exact source · gss-v0.5.0
Fixed commit original · Raw UTF-8 source · Back to GSS Companion
Select a source link from a manuscript to highlight its exact range.
Technical identity
- Commit
ac405356bb98afed954da9b9c795d23cc8d5d149- SHA-256
95ac973ca7bf940c90e63b9e3d8ae88e8279c316a8d6e21bf1200ffcae8c0533- Bytes
- 3478
1/-2Copyright (c) 2026 Ryotaro Tanaka. All rights reserved.3Released under Apache 2.0 license as described in the file LICENSE.4Authors: Ryotaro Tanaka5-/6module78public import MathlibAnnex.Topology.ClosureSpace.Components9public import Mathlib.Order.Minimal1011/-!12# Sets of pairwise linked points1314These are the R-sets of Definition 6.11. The empty set is permitted. Maximality15is the existing order-theoretic `Maximal` predicate on sets ordered by inclusion,16not a new structure postulating any geometric classification.17-/1819@[expose] public section2021set_option autoImplicit false2223universe u v2425namespace ClosureSpace2627variable {α : Type u} {β : Type v}2829/-- Every two points of the set are linked in the ambient closure space. -/30def IsLinkedSet (c : ClosureSpace α) (S : Set α) : Prop :=31∀ x ∈ S, ∀ y ∈ S, c.Linked x y3233/-- The empty set is an R-set, with no nonemptiness convention added. -/34theorem isLinkedSet_empty (c : ClosureSpace α) : c.IsLinkedSet ∅ := by35intro x hx36exact hx.elim3738/-- Reflexivity of `Linked` makes every singleton an R-set. -/39theorem isLinkedSet_singleton (c : ClosureSpace α) (x : α) : c.IsLinkedSet {x} := by40rintro y rfl z rfl41exact c.linked_refl _4243/-- Taking a subset preserves pairwise linkedness. -/44theorem IsLinkedSet.mono {c : ClosureSpace α} {S T : Set α}45(hT : c.IsLinkedSet T) (hST : S ⊆ T) : c.IsLinkedSet S :=46fun x hx y hy => hT x (hST hx) y (hST hy)4748/-- The pairwise condition agrees with the existing two-point relation. -/49theorem isLinkedSet_pair_iff (c : ClosureSpace α) (x y : α) :50c.IsLinkedSet {x, y} ↔ c.Linked x y := by51constructor52· intro h53exact h x (by simp) y (by simp)54· intro h a ha b hb55rcases (show a = x ∨ a = y by simpa only [Set.mem_insert_iff, Set.mem_singleton_iff] using ha)56with hax | hay <;>57rcases (show b = x ∨ b = y by simpa only [Set.mem_insert_iff, Set.mem_singleton_iff] using hb)58with hbx | hby59· subst a; subst b; exact c.linked_refl x60· subst a; subst b; exact h61· subst a; subst b; exact c.linked_symm h62· subst a; subst b; exact c.linked_refl y6364/-- To insert one point, it suffices and is necessary to link it to every old point. -/65theorem isLinkedSet_insert_iff (c : ClosureSpace α) (x : α) (S : Set α) :66c.IsLinkedSet (insert x S) ↔ c.IsLinkedSet S ∧ ∀ y ∈ S, c.Linked x y := by67constructor68· intro h69exact ⟨h.mono (Set.subset_insert x S), fun y hy => h x (by simp) y (Or.inr hy)⟩70· rintro ⟨hS, hx⟩ a ha b hb71rcases Set.mem_insert_iff.mp ha with hax | ha <;>72rcases Set.mem_insert_iff.mp hb with hbx | hb73· subst a; subst b; exact c.linked_refl x74· subst a; exact hx b hb75· subst b; exact c.linked_symm (hx a ha)76· exact hS a ha b hb7778/-- A nonempty R-set lies in the component of any of its points. -/79theorem IsLinkedSet.subset_component {c : ClosureSpace α} {S : Set α}80(hS : c.IsLinkedSet S) {x : α} (hx : x ∈ S) : S ⊆ c.component x :=81fun y hy => c.related_of_linked (hS x hx y hy)8283/-- Finite continuity and injectivity are enough for images of R-sets. -/84theorem FinitelyContinuous.isLinkedSet_image {c : ClosureSpace α} {d : ClosureSpace β}85{f : α → β} (hf : c.FinitelyContinuous d f) (hinj : Function.Injective f)86{S : Set α} (hS : c.IsLinkedSet S) : d.IsLinkedSet (f '' S) := by87rintro _ ⟨x, hx, rfl⟩ _ ⟨y, hy, rfl⟩88exact hf.linked hinj (hS x hx y hy)8990end ClosureSpace