Documentation

Mathlib.CategoryTheory.Groupoid.FreeGroupoidOfCategory

Free groupoid on a category #

This file defines the free groupoid on a category, the lifting of a functor to its unique extension as a functor from the free groupoid, and proves uniqueness of this extension.

Main results #

Given a type C and a category instance on C:

Implementation notes #

The free groupoid on a category C is first defined by taking the free groupoid G on the underlying quiver of C. Then the free groupoid on the category C is defined as the quotient of G by the relation that makes the inclusion prefunctor C ℤq G a functor.

The relation on the free groupoid on the underlying quiver of C that promotes the prefunctor C ℤq FreeGroupoid C into a functor C ℤ Quotient (FreeGroupoid.homRel C).

Instances For

    The underlying type of the free groupoid on a category, defined by quotienting the free groupoid on the underlying quiver of C by the relation that promotes the prefunctor C ℤq FreeGroupoid C into a functor C ℤ Quotient (FreeGroupoid.homRel C).

    Equations
      Instances For

        The localization functor from the category C to the groupoid FreeGroupoid C

        Equations
          Instances For
            @[reducible, inline]

            Construct an object in the free groupoid on C by providing an object in C.

            Equations
              Instances For
                @[reducible, inline]
                abbrev CategoryTheory.FreeGroupoid.homMk {C : Type u} [Category.{v, u} C] {X Y : C} (f : X ⟶ Y) :

                Construct a morphism in the free groupoid on C by providing a morphism in C.

                Equations
                  Instances For
                    def CategoryTheory.FreeGroupoid.lift {C : Type u} [Category.{v, u} C] {G : Type u₁} [Groupoid G] (φ : Functor C G) :

                    The lift of a functor from C to a groupoid to a functor from FreeGroupoid C to the groupoid

                    Equations
                      Instances For
                        theorem CategoryTheory.FreeGroupoid.lift_spec {C : Type u} [Category.{v, u} C] {G : Type u₁} [Groupoid G] (φ : Functor C G) :
                        (of C).comp (lift φ) = φ
                        @[simp]
                        theorem CategoryTheory.FreeGroupoid.lift_obj_mk {C : Type u} [Category.{v, u} C] {E : Type uā‚‚} [Groupoid E] (φ : Functor C E) (X : C) :
                        (lift φ).obj (mk X) = φ.obj X
                        @[simp]
                        theorem CategoryTheory.FreeGroupoid.lift_map_homMk {C : Type u} [Category.{v, u} C] {E : Type uā‚‚} [Groupoid E] (φ : Functor C E) {X Y : C} (f : X ⟶ Y) :
                        (lift φ).map (homMk f) = φ.map f
                        theorem CategoryTheory.FreeGroupoid.lift_unique {C : Type u} [Category.{v, u} C] {G : Type u₁} [Groupoid G] (φ : Functor C G) (Φ : Functor (FreeGroupoid C) G) (hΦ : (of C).comp Φ = φ) :
                        Φ = lift φ
                        theorem CategoryTheory.FreeGroupoid.lift_comp {C : Type u} [Category.{v, u} C] {G : Type u₁} [Groupoid G] {H : Type uā‚‚} [Groupoid H] (φ : Functor C G) (ψ : Functor G H) :
                        lift (φ.comp ψ) = (lift φ).comp ψ

                        The universal property of the free groupoid.

                        Equations
                          Instances For
                            def CategoryTheory.FreeGroupoid.liftNatIso {C : Type u} [Category.{v, u} C] {G : Type u₁} [Groupoid G] (F₁ Fā‚‚ : Functor (FreeGroupoid C) G) (Ļ„ : (of C).comp F₁ ≅ (of C).comp Fā‚‚) :
                            F₁ ≅ Fā‚‚

                            In order to define a natural isomorphism F ≅ G with F G : FreeGroupoid ℤ D, it suffices to do so after precomposing with FreeGroupoid.of C.

                            Equations
                              Instances For
                                @[simp]
                                theorem CategoryTheory.FreeGroupoid.liftNatIso_hom_app {C : Type u} [Category.{v, u} C] {G : Type u₁} [Groupoid G] (F₁ Fā‚‚ : Functor (FreeGroupoid C) G) (Ļ„ : (of C).comp F₁ ≅ (of C).comp Fā‚‚) (X : C) :
                                (liftNatIso F₁ Fā‚‚ Ļ„).hom.app (mk X) = Ļ„.hom.app X
                                @[simp]
                                theorem CategoryTheory.FreeGroupoid.liftNatIso_inv_app {C : Type u} [Category.{v, u} C] {G : Type u₁} [Groupoid G] (F₁ Fā‚‚ : Functor (FreeGroupoid C) G) (Ļ„ : (of C).comp F₁ ≅ (of C).comp Fā‚‚) (X : C) :
                                (liftNatIso F₁ Fā‚‚ Ļ„).inv.app (mk X) = Ļ„.inv.app X

                                The functor between free groupoids induced by a functor between categories.

                                Equations
                                  Instances For

                                    The operation of is natural.

                                    Equations
                                      Instances For

                                        The functor induced by the identity is the identity.

                                        Equations
                                          Instances For
                                            def CategoryTheory.FreeGroupoid.mapComp {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {E : Type uā‚‚} [Category.{vā‚‚, uā‚‚} E] (φ : Functor C D) (φ' : Functor D E) :
                                            map (φ.comp φ') ≅ (map φ).comp (map φ')

                                            The functor induced by a composition is the composition of the functors they induce.

                                            Equations
                                              Instances For
                                                @[simp]
                                                theorem CategoryTheory.FreeGroupoid.mapComp_hom_app {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {E : Type uā‚‚} [Category.{vā‚‚, uā‚‚} E] (φ : Functor C D) (φ' : Functor D E) (X : FreeGroupoid C) :
                                                (mapComp φ φ').hom.app X = CategoryStruct.id ((map (φ.comp φ')).obj X)
                                                @[simp]
                                                theorem CategoryTheory.FreeGroupoid.mapComp_inv_app {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {E : Type uā‚‚} [Category.{vā‚‚, uā‚‚} E] (φ : Functor C D) (φ' : Functor D E) (X : FreeGroupoid C) :
                                                (mapComp φ φ').inv.app X = CategoryStruct.id (((map φ).comp (map φ')).obj X)
                                                theorem CategoryTheory.FreeGroupoid.map_comp {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {E : Type uā‚‚} [Category.{vā‚‚, uā‚‚} E] (φ : Functor C D) (φ' : Functor D E) :
                                                map (φ.comp φ') = (map φ).comp (map φ')
                                                @[simp]
                                                theorem CategoryTheory.FreeGroupoid.map_obj_mk {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] (φ : Functor C D) (X : C) :
                                                (map φ).obj (mk X) = mk (φ.obj X)
                                                @[simp]
                                                theorem CategoryTheory.FreeGroupoid.map_map_homMk {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] (φ : Functor C D) {X Y : C} (f : X ⟶ Y) :
                                                (map φ).map (homMk f) = homMk (φ.map f)
                                                theorem CategoryTheory.FreeGroupoid.map_comp_lift {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {E : Type uā‚‚} [Groupoid E] (F : Functor C D) (G : Functor D E) :
                                                (map F).comp (lift G) = lift (F.comp G)
                                                def CategoryTheory.FreeGroupoid.mapCompLift {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {E : Type uā‚‚} [Groupoid E] (F : Functor C D) (G : Functor D E) :
                                                (map F).comp (lift G) ≅ lift (F.comp G)

                                                The operation lift is natural.

                                                Equations
                                                  Instances For

                                                    Functors out of the free groupoid biject with functors out of the original category.

                                                    Equations
                                                      Instances For

                                                        The free groupoid construction on a category as a functor.

                                                        Equations
                                                          Instances For

                                                            The free-forgetful adjunction between Grpd and Cat.

                                                            Equations
                                                              Instances For