Documentation

Mathlib.AlgebraicTopology.FundamentalGroupoid.Basic

Fundamental groupoid of a space #

Given a topological space X, we can define the fundamental groupoid of X to be the category with objects being points of X, and morphisms x ⟶ y being paths from x to y, quotiented by homotopy equivalence. With this, the fundamental group of X based at x is just the automorphism group of x.

Auxiliary function for reflTransSymm.

Equations
Instances For
    def Path.Homotopy.reflTransSymm {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (p : Path x₀ x₁) :

    For any path p from x₀ to x₁, we have a homotopy from the constant path based at x₀ to p.trans p.symm.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Path.Homotopy.reflSymmTrans {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (p : Path x₀ x₁) :

      For any path p from x₀ to x₁, we have a homotopy from the constant path based at x₁ to p.symm.trans p.

      Equations
      Instances For

        Auxiliary function for trans_refl_reparam.

        Equations
        Instances For
          theorem Path.Homotopy.trans_refl_reparam {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (p : Path x₀ x₁) :
          def Path.Homotopy.transRefl {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (p : Path x₀ x₁) :
          (p.trans (Path.refl x₁)).Homotopy p

          For any path p from x₀ to x₁, we have a homotopy from p.trans (Path.refl x₁) to p.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def Path.Homotopy.reflTrans {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (p : Path x₀ x₁) :
            ((Path.refl x₀).trans p).Homotopy p

            For any path p from x₀ to x₁, we have a homotopy from (Path.refl x₀).trans p to p.

            Equations
            Instances For

              Auxiliary function for trans_assoc_reparam.

              Equations
              Instances For
                theorem Path.Homotopy.trans_assoc_reparam {X : Type u_1} [TopologicalSpace X] {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q : Path x₁ x₂) (r : Path x₂ x₃) :
                def Path.Homotopy.transAssoc {X : Type u_1} [TopologicalSpace X] {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q : Path x₁ x₂) (r : Path x₂ x₃) :
                ((p.trans q).trans r).Homotopy (p.trans (q.trans r))

                For paths p q r, we have a homotopy from (p.trans q).trans r to p.trans (q.trans r).

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem Path.Homotopic.refl_trans {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (p : Path x₀ x₁) :
                  theorem Path.Homotopic.trans_refl {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (p : Path x₀ x₁) :
                  theorem Path.Homotopic.trans_symm {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (p : Path x₀ x₁) :
                  theorem Path.Homotopic.symm_trans {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (p : Path x₀ x₁) :
                  theorem Path.Homotopic.trans_assoc {X : Type u_1} [TopologicalSpace X] {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q : Path x₁ x₂) (r : Path x₂ x₃) :
                  ((p.trans q).trans r).Homotopic (p.trans (q.trans r))
                  @[simp]
                  theorem Path.Homotopic.Quotient.refl_trans {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (γ : Homotopic.Quotient x₀ x₁) :
                  (refl x₀).trans γ = γ
                  @[simp]
                  theorem Path.Homotopic.Quotient.trans_refl {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (γ : Homotopic.Quotient x₀ x₁) :
                  γ.trans (refl x₁) = γ
                  @[simp]
                  theorem Path.Homotopic.Quotient.trans_symm {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (γ : Homotopic.Quotient x₀ x₁) :
                  γ.trans γ.symm = refl x₀
                  @[simp]
                  theorem Path.Homotopic.Quotient.symm_trans {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (γ : Homotopic.Quotient x₀ x₁) :
                  γ.symm.trans γ = refl x₁
                  @[simp]
                  theorem Path.Homotopic.Quotient.trans_assoc {X : Type u_1} [TopologicalSpace X] {x₀ x₁ x₂ x₃ : X} (γ₀ : Homotopic.Quotient x₀ x₁) (γ₁ : Homotopic.Quotient x₁ x₂) (γ₂ : Homotopic.Quotient x₂ x₃) :
                  (γ₀.trans γ₁).trans γ₂ = γ₀.trans (γ₁.trans γ₂)
                  structure FundamentalGroupoid (X : Type u_3) :
                  Type u_3

                  The fundamental groupoid of a space X is defined to be a wrapper around X, and we subsequently put a CategoryTheory.Groupoid structure on it.

                  Instances For
                    theorem FundamentalGroupoid.ext {X : Type u_3} {x y : FundamentalGroupoid X} (as : x.as = y.as) :
                    x = y
                    theorem FundamentalGroupoid.ext_iff {X : Type u_3} {x y : FundamentalGroupoid X} :
                    x = y x.as = y.as

                    The equivalence between X and the underlying type of its fundamental groupoid. This is useful for transferring constructions (instances, etc.) from X to πₓ X.

                    Equations
                    Instances For
                      @[simp]
                      @[simp]
                      theorem FundamentalGroupoid.equiv_symm_apply_as (X : Type u_3) (x : X) :
                      ((equiv X).symm x).as = x
                      Equations
                      • One or more equations did not get rendered due to their size.

                      The functor on fundamental groupoid induced by a continuous map.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem FundamentalGroupoid.map_map {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] (f : C(X, Y)) {X✝ Y✝ : FundamentalGroupoid X} (p : X✝ Y✝) :
                        @[simp]
                        theorem FundamentalGroupoid.map_obj_as {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] (f : C(X, Y)) (x : FundamentalGroupoid X) :
                        ((map f).obj x).as = f x.as
                        @[simp]
                        theorem FundamentalGroupoid.map_comp {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {Z : Type u_3} [TopologicalSpace Z] (g : C(Y, Z)) (f : C(X, Y)) :
                        map (g.comp f) = (map f).comp (map g)

                        The functor sending a topological space X to its fundamental groupoid.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For

                          The functor sending a topological space X to its fundamental groupoid.

                          Equations
                          Instances For

                            The fundamental groupoid of a topological space.

                            Equations
                            Instances For

                              The functor between fundamental groupoids induced by a continuous map.

                              Equations
                              Instances For
                                theorem FundamentalGroupoid.map_eq {X Y : TopCat} {x₀ x₁ : X} (f : C(X, Y)) (p : Path.Homotopic.Quotient x₀ x₁) :
                                @[reducible, inline]

                                Help the typechecker by converting a point in a groupoid back to a point in the underlying topological space.

                                Equations
                                Instances For
                                  @[reducible, inline]

                                  Help the typechecker by converting a point in a topological space to a point in the fundamental groupoid of that space.

                                  Equations
                                  Instances For
                                    @[reducible, inline]
                                    abbrev FundamentalGroupoid.toPath {X : TopCat} {x₀ x₁ : (fundamentalGroupoidFunctor.obj X)} (p : x₀ x₁) :

                                    Help the typechecker by converting an arrow in the fundamental groupoid of a topological space back to a path in that space (i.e., Path.Homotopic.Quotient).

                                    Equations
                                    Instances For
                                      @[reducible, inline]
                                      abbrev FundamentalGroupoid.fromPath {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (p : Path.Homotopic.Quotient x₀ x₁) :
                                      { as := x₀ } { as := x₁ }

                                      Help the typechecker by converting a path in a topological space to an arrow in the fundamental groupoid of that space.

                                      Equations
                                      Instances For

                                        Two paths are equal in the fundamental groupoid if and only if they are homotopic.

                                        theorem FundamentalGroupoid.eqToHom_eq {X : Type u_1} [TopologicalSpace X] {x₀ x₁ : X} (h : x₀ = x₁) :