Documentation

Mathlib.Topology.Connected.PathConnected

Path connectedness #

Continuing from Mathlib.Topology.Path, this file defines path components and path-connected spaces.

Main definitions #

In the file the unit interval [0, 1] in is denoted by I, and X is a topological space.

Then there are corresponding relative notions for F : Set X.

Main theorems #

One can link the absolute and relative version in two directions, using (univ : Set X) or the subtype ↥F.

Furthermore, it is shown that continuous images and quotients of path-connected sets/spaces are path-connected, and that every path-connected set/space is also connected.

Being joined by a path #

def Joined {X : Type u_1} [TopologicalSpace X] (x y : X) :

The relation "being joined by a path". This is an equivalence relation.

Equations
theorem Joined.refl {X : Type u_1} [TopologicalSpace X] (x : X) :
Joined x x
def Joined.somePath {X : Type u_1} [TopologicalSpace X] {x y : X} (h : Joined x y) :
Path x y

When two points are joined, choose some path from x to y.

Equations
theorem Joined.symm {X : Type u_1} [TopologicalSpace X] {x y : X} (h : Joined x y) :
Joined y x
theorem Joined.trans {X : Type u_1} [TopologicalSpace X] {x y z : X} (hxy : Joined x y) (hyz : Joined y z) :
Joined x z
def pathSetoid (X : Type u_1) [TopologicalSpace X] :

The setoid corresponding the equivalence relation of being joined by a continuous path.

Equations
def ZerothHomotopy (X : Type u_1) [TopologicalSpace X] :
Type u_1

The quotient type of points of a topological space modulo being joined by a continuous path.

Equations
Instances For

Being joined by a path inside a set #

def JoinedIn {X : Type u_1} [TopologicalSpace X] (F : Set X) (x y : X) :

The relation "being joined by a path in F". Not quite an equivalence relation since it's not reflexive for points that do not belong to F.

Equations
theorem JoinedIn.mem {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (h : JoinedIn F x y) :
x F y F
theorem JoinedIn.source_mem {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (h : JoinedIn F x y) :
x F
theorem JoinedIn.target_mem {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (h : JoinedIn F x y) :
y F
def JoinedIn.somePath {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (h : JoinedIn F x y) :
Path x y

When x and y are joined in F, choose a path from x to y inside F

Equations
theorem JoinedIn.somePath_mem {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (h : JoinedIn F x y) (t : unitInterval) :
theorem JoinedIn.joined_subtype {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (h : JoinedIn F x y) :
Joined x, y,

If x and y are joined in the set F, then they are joined in the subtype F.

theorem JoinedIn.ofLine {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} {f : X} (hf : ContinuousOn f unitInterval) (h₀ : f 0 = x) (h₁ : f 1 = y) (hF : f '' unitInterval F) :
JoinedIn F x y
theorem JoinedIn.joined {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (h : JoinedIn F x y) :
Joined x y
theorem joinedIn_iff_joined {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (x_in : x F) (y_in : y F) :
JoinedIn F x y Joined x, x_in y, y_in
@[simp]
theorem joinedIn_univ {X : Type u_1} [TopologicalSpace X] {x y : X} :
theorem JoinedIn.mono {X : Type u_1} [TopologicalSpace X] {x y : X} {U V : Set X} (h : JoinedIn U x y) (hUV : U V) :
JoinedIn V x y
theorem JoinedIn.refl {X : Type u_1} [TopologicalSpace X] {x : X} {F : Set X} (h : x F) :
JoinedIn F x x
theorem JoinedIn.symm {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (h : JoinedIn F x y) :
JoinedIn F y x
theorem JoinedIn.trans {X : Type u_1} [TopologicalSpace X] {x y z : X} {F : Set X} (hxy : JoinedIn F x y) (hyz : JoinedIn F y z) :
JoinedIn F x z
theorem Specializes.joinedIn {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (h : x y) (hx : x F) (hy : y F) :
JoinedIn F x y
theorem Inseparable.joinedIn {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (h : Inseparable x y) (hx : x F) (hy : y F) :
JoinedIn F x y
theorem JoinedIn.map_continuousOn {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {x y : X} {F : Set X} (h : JoinedIn F x y) {f : XY} (hf : ContinuousOn f F) :
JoinedIn (f '' F) (f x) (f y)
theorem JoinedIn.map {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {x y : X} {F : Set X} (h : JoinedIn F x y) {f : XY} (hf : Continuous f) :
JoinedIn (f '' F) (f x) (f y)
theorem Topology.IsInducing.joinedIn_image {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {x y : X} {F : Set X} {f : XY} (hf : IsInducing f) (hx : x F) (hy : y F) :
JoinedIn (f '' F) (f x) (f y) JoinedIn F x y
@[deprecated Topology.IsInducing.joinedIn_image (since := "2024-10-28")]
theorem Inducing.joinedIn_image {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {x y : X} {F : Set X} {f : XY} (hf : Topology.IsInducing f) (hx : x F) (hy : y F) :
JoinedIn (f '' F) (f x) (f y) JoinedIn F x y

Alias of Topology.IsInducing.joinedIn_image.

Path component #

def pathComponent {X : Type u_1} [TopologicalSpace X] (x : X) :
Set X

The path component of x is the set of points that can be joined to x.

Equations
@[simp]
theorem mem_pathComponent_self {X : Type u_1} [TopologicalSpace X] (x : X) :
@[simp]
def pathComponentIn {X : Type u_1} [TopologicalSpace X] (x : X) (F : Set X) :
Set X

The path component of x in F is the set of points that can be joined to x in F.

Equations
theorem Joined.mem_pathComponent {X : Type u_1} [TopologicalSpace X] {x y z : X} (hyz : Joined y z) (hxy : y pathComponent x) :
theorem mem_pathComponentIn_self {X : Type u_1} [TopologicalSpace X] {x : X} {F : Set X} (h : x F) :
theorem pathComponentIn_subset {X : Type u_1} [TopologicalSpace X] {x : X} {F : Set X} :
theorem pathComponentIn_congr {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (h : x pathComponentIn y F) :
theorem pathComponentIn_mono {X : Type u_1} [TopologicalSpace X] {x : X} {F G : Set X} (h : F G) :

Path connected sets #

def IsPathConnected {X : Type u_1} [TopologicalSpace X] (F : Set X) :

A set F is path connected if it contains a point that can be joined to all other in F.

Equations
theorem isPathConnected_iff_eq {X : Type u_1} [TopologicalSpace X] {F : Set X} :
IsPathConnected F xF, pathComponentIn x F = F
theorem IsPathConnected.joinedIn {X : Type u_1} [TopologicalSpace X] {F : Set X} (h : IsPathConnected F) (x : X) :
x FyF, JoinedIn F x y
theorem isPathConnected_iff {X : Type u_1} [TopologicalSpace X] {F : Set X} :
IsPathConnected F F.Nonempty xF, yF, JoinedIn F x y
theorem IsPathConnected.image' {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {F : Set X} (hF : IsPathConnected F) {f : XY} (hf : ContinuousOn f F) :

If f is continuous on F and F is path-connected, so is f(F).

theorem IsPathConnected.image {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {F : Set X} (hF : IsPathConnected F) {f : XY} (hf : Continuous f) :

If f is continuous and F is path-connected, so is f(F).

theorem Topology.IsInducing.isPathConnected_iff {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {F : Set X} {f : XY} (hf : IsInducing f) :

If f : X → Y is an inducing map, f(F) is path-connected iff F is.

@[deprecated Topology.IsInducing.isPathConnected_iff (since := "2024-10-28")]
theorem Inducing.isPathConnected_iff {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {F : Set X} {f : XY} (hf : Topology.IsInducing f) :

Alias of Topology.IsInducing.isPathConnected_iff.


If f : X → Y is an inducing map, f(F) is path-connected iff F is.

@[simp]

If h : X → Y is a homeomorphism, h(s) is path-connected iff s is.

@[simp]

If h : X → Y is a homeomorphism, h⁻¹(s) is path-connected iff s is.

theorem IsPathConnected.mem_pathComponent {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (h : IsPathConnected F) (x_in : x F) (y_in : y F) :
theorem IsPathConnected.subset_pathComponent {X : Type u_1} [TopologicalSpace X] {x : X} {F : Set X} (h : IsPathConnected F) (x_in : x F) :
theorem IsPathConnected.subset_pathComponentIn {X : Type u_1} [TopologicalSpace X] {x : X} {F s : Set X} (hs : IsPathConnected s) (hxs : x s) (hsF : s F) :
theorem IsPathConnected.union {X : Type u_1} [TopologicalSpace X] {U V : Set X} (hU : IsPathConnected U) (hV : IsPathConnected V) (hUV : (U V).Nonempty) :

If a set W is path-connected, then it is also path-connected when seen as a set in a smaller ambient type U (when U contains W).

theorem IsPathConnected.exists_path_through_family {X : Type u_1} [TopologicalSpace X] {n : } {s : Set X} (h : IsPathConnected s) (p : Fin (n + 1)X) (hp : ∀ (i : Fin (n + 1)), p i s) :
∃ (γ : Path (p 0) (p n)), Set.range γ s ∀ (i : Fin (n + 1)), p i Set.range γ
theorem IsPathConnected.exists_path_through_family' {X : Type u_1} [TopologicalSpace X] {n : } {s : Set X} (h : IsPathConnected s) (p : Fin (n + 1)X) (hp : ∀ (i : Fin (n + 1)), p i s) :
∃ (γ : Path (p 0) (p n)) (t : Fin (n + 1)unitInterval), (∀ (t : unitInterval), γ t s) ∀ (i : Fin (n + 1)), γ (t i) = p i

Path connected spaces #

Use path-connectedness to build a path between two points.

Equations

This is a special case of NormedSpace.instPathConnectedSpace (and IsTopologicalAddGroup.pathConnectedSpace). It exists only to simplify dependencies.

theorem PathConnectedSpace.exists_path_through_family {X : Type u_1} [TopologicalSpace X] [PathConnectedSpace X] {n : } (p : Fin (n + 1)X) :
∃ (γ : Path (p 0) (p n)), ∀ (i : Fin (n + 1)), p i Set.range γ
theorem PathConnectedSpace.exists_path_through_family' {X : Type u_1} [TopologicalSpace X] [PathConnectedSpace X] {n : } (p : Fin (n + 1)X) :
∃ (γ : Path (p 0) (p n)) (t : Fin (n + 1)unitInterval), ∀ (i : Fin (n + 1)), γ (t i) = p i