Documentation

Mathlib.Topology.Connected.PathConnected

Path connectedness #

Continuing from Mathlib/Topology/Path.lean, 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. (See Counterexamples.TopologistsSineCurve for an example of a set in ℝ × ℝ that is connected but not path-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
    Instances For
      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
        Instances For
          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
          theorem Joined.mul {M : Type u_4} [Mul M] [TopologicalSpace M] [ContinuousMul M] {a b c d : M} (hs : Joined a b) (ht : Joined c d) :
          Joined (a * c) (b * d)
          theorem Joined.add {M : Type u_4} [Add M] [TopologicalSpace M] [ContinuousAdd M] {a b c d : M} (hs : Joined a b) (ht : Joined c d) :
          Joined (a + c) (b + d)
          theorem Joined.inv {G : Type u_4} [Inv G] [TopologicalSpace G] [ContinuousInv G] {x y : G} (h : Joined x y) :
          theorem Joined.neg {G : Type u_4} [Neg G] [TopologicalSpace G] [ContinuousNeg G] {x y : G} (h : Joined x y) :
          Joined (-x) (-y)
          def pathSetoid (X : Type u_1) [TopologicalSpace X] :

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

          Equations
            Instances For
              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

                  The quotient topology on path components.

                  Equations

                    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
                      Instances For
                        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
                          Instances For
                            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
                            theorem JoinedIn.mul {M : Type u_4} [Mul M] [TopologicalSpace M] [ContinuousMul M] {s t : Set M} {a b c d : M} (hs : JoinedIn s a b) (ht : JoinedIn t c d) :
                            JoinedIn (s * t) (a * c) (b * d)
                            theorem JoinedIn.add {M : Type u_4} [Add M] [TopologicalSpace M] [ContinuousAdd M] {s t : Set M} {a b c d : M} (hs : JoinedIn s a b) (ht : JoinedIn t c d) :
                            JoinedIn (s + t) (a + c) (b + d)
                            theorem JoinedIn.inv {G : Type u_4} [InvolutiveInv G] [TopologicalSpace G] [ContinuousInv G] {s : Set G} {a b : G} (hs : JoinedIn s a b) :
                            theorem JoinedIn.neg {G : Type u_4} [InvolutiveNeg G] [TopologicalSpace G] [ContinuousNeg G] {s : Set G} {a b : G} (hs : JoinedIn s a b) :
                            JoinedIn (-s) (-a) (-b)

                            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
                              Instances For
                                def pathComponentIn {X : Type u_1} [TopologicalSpace X] (F : Set X) (x : X) :
                                Set X

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

                                Equations
                                  Instances For
                                    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_congr {X : Type u_1} [TopologicalSpace X] {x y : X} {F : Set X} (h : x pathComponentIn F y) :
                                    theorem pathComponentIn_mono {X : Type u_1} [TopologicalSpace X] {x : X} {F G : Set X} (h : F G) :

                                    Path component of the identity in a group #

                                    The path component of the identity in a topological monoid, as a submonoid.

                                    Equations
                                      Instances For

                                        The path component of the identity in an additive topological monoid, as an additive submonoid.

                                        Equations
                                          Instances For

                                            The path component of the identity in a topological group, as a subgroup.

                                            Equations
                                              Instances For

                                                The path component of the identity in an additive topological group, as an additive subgroup.

                                                Equations
                                                  Instances For

                                                    The path component of the identity in a topological group is normal.

                                                    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
                                                      Instances For
                                                        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.

                                                        @[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_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 (Fin.last 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 (Fin.last n))) (t : Fin (n + 1)unitInterval), (∀ (t : unitInterval), γ t s) ∀ (i : Fin (n + 1)), γ (t i) = p i

                                                        Path connected spaces #

                                                        A topological space is path-connected if it is non-empty and every two points can be joined by a continuous path.

                                                        • nonempty : Nonempty X

                                                          A path-connected space must be nonempty.

                                                        • joined (x y : X) : Joined x y

                                                          Any two points in a path-connected space must be joined by a continuous path.

                                                        Instances

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

                                                          Equations
                                                            Instances For

                                                              A path-connected set is connected.

                                                              (See Counterexamples.TopologistsSineCurve for the standard counterexample showing that the converse is false.)

                                                              theorem PathConnectedSpace.exists_path_through_family {X : Type u_1} [TopologicalSpace X] [PathConnectedSpace X] {n : } (p : Fin (n + 1)X) :
                                                              ∃ (γ : Path (p 0) (p (Fin.last 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 (Fin.last n))) (t : Fin (n + 1)unitInterval), ∀ (i : Fin (n + 1)), γ (t i) = p i

                                                              The preimage of a singleton in ZerothHomotopy is the path component of an element in the equivalence class.