Documentation

GroupoidModel.Grothendieck.Groupoidal.Basic

Main definitions #

Main statements #

Implementation notes #

def CategoryTheory.Functor.Groupoidal {C : Type u₁} [Category.{v₁, u₁} C] (F : Functor C Grpd) :
Type (max u₁ u₂)

In Mathlib.CategoryTheory.Grothendieck we find the Grothendieck construction for the functors F : C ⥤ Cat. Given a functor F : G ⥤ Grpd, we show that the Grothendieck construction of the composite F ⋙ Grpd.forgetToCat, where forgetToCat : Grpd ⥤ Cat is the embedding of groupoids into categories, is a groupoid.

Equations
Instances For

    A dsimp rule that reduces 𝟭 _ ⋙ F to F even if the domain categories are not syntactically equal.

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

      A dsimp rule that reduces F ⋙ 𝟭 _ to F even if the codomain categories are not syntactically equal.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def CategoryTheory.Functor.Groupoidal.Hom {C : Type u₁} [Category.{v₁, u₁} C] {F : Functor C Grpd} (x y : F.Groupoidal) :
          Type (max v₁ v₂)

          A morphism in the groupoidal Grothendieck category F : C ⥤ Grpd is defined to be a morphism in the Grothendieck category F ⋙ Grpd.forgetToCat.

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

                The morphism between base objects.

                Equations
                Instances For

                  The morphism from the pushforward to the source fiber object to the target fiber object.

                  Equations
                  Instances For
                    def CategoryTheory.Functor.Groupoidal.objMk {C : Type u₁} [Category.{v₁, u₁} C] {F : Functor C Grpd} (c : C) (x : (F.obj c)) :

                    We should use this to introduce objects, rather than the API for Grothendieck. This might seem redundant, but it simplifies the goal when making a point so that it does not show the composition with Grpd.forgetToCat

                    Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Functor.Groupoidal.objMk_base {C : Type u₁} [Category.{v₁, u₁} C] {F : Functor C Grpd} (c : C) (x : (F.obj c)) :
                      (objMk c x).base = c
                      @[simp]
                      theorem CategoryTheory.Functor.Groupoidal.objMk_fiber {C : Type u₁} [Category.{v₁, u₁} C] {F : Functor C Grpd} (c : C) (x : (F.obj c)) :
                      (objMk c x).fiber = x
                      def CategoryTheory.Functor.Groupoidal.homMk {C : Type u₁} [Category.{v₁, u₁} C] {F : Functor C Grpd} {X Y : F.Groupoidal} (fb : X.base Y.base) (ff : (F.map fb).obj X.fiber Y.fiber) :
                      X Y

                      We should use this to introduce morphisms, rather than the API for Grothendieck. This might seem redundant, but it simplifies the goal when making a path in the fiber so that it does not show the composition with Grpd.forgetToCat

                      Equations
                      Instances For
                        @[simp]
                        theorem CategoryTheory.Functor.Groupoidal.homMk_base {C : Type u₁} [Category.{v₁, u₁} C] {F : Functor C Grpd} {X Y : F.Groupoidal} (fb : X.base Y.base) (ff : (F.map fb).obj X.fiber Y.fiber) :
                        Hom.base (homMk fb ff) = fb
                        @[simp]
                        theorem CategoryTheory.Functor.Groupoidal.homMk_fiber {C : Type u₁} [Category.{v₁, u₁} C] {F : Functor C Grpd} {X Y : F.Groupoidal} (fb : X.base Y.base) (ff : (F.map fb).obj X.fiber Y.fiber) :
                        Hom.fiber (homMk fb ff) = ff
                        Equations
                        • One or more equations did not get rendered due to their size.
                        def CategoryTheory.Functor.Groupoidal.transport {C : Type u₁} [Groupoid C] {F : Functor C Grpd} (x : F.Groupoidal) {c : C} (t : x.base c) :

                        If F : C ⥤ Grpd is a functor and t : c ⟶ d is a morphism in C, then transport maps each c-based element of ∫(F) to a d-based element.

                        Equations
                        Instances For
                          @[simp]
                          theorem CategoryTheory.Functor.Groupoidal.transport_base {C : Type u₁} [Groupoid C] {F : Functor C Grpd} (x : F.Groupoidal) {c : C} (t : x.base c) :
                          (x.transport t).base = c
                          @[simp]
                          theorem CategoryTheory.Functor.Groupoidal.transport_fiber {C : Type u₁} [Groupoid C] {F : Functor C Grpd} (x : F.Groupoidal) {c : C} (t : x.base c) :
                          (x.transport t).fiber = (F.map t).obj x.fiber
                          def CategoryTheory.Functor.Groupoidal.toTransport {C : Type u₁} [Groupoid C] {F : Functor C Grpd} (x : F.Groupoidal) {c : C} (t : x.base c) :

                          If F : C ⥤ Cat is a functor and t : c ⟶ d is a morphism in C, then transport maps each c-based element x of Grothendieck F to a d-based element x.transport t.

                          toTransport is the morphism x ⟶ x.transport t induced by t and the identity on fibers.

                          Equations
                          Instances For
                            @[simp]
                            theorem CategoryTheory.Functor.Groupoidal.toTransport_base {C : Type u₁} [Groupoid C] {F : Functor C Grpd} (x : F.Groupoidal) {c : C} (t : x.base c) :
                            def CategoryTheory.Functor.Groupoidal.isoMk {C : Type u₁} [Groupoid C] {F : Functor C Grpd} {X Y : F.Groupoidal} (f : X Y) :
                            X Y
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              Equations
                              • One or more equations did not get rendered due to their size.

                              The inclusion of a fiber F.obj c of a functor F : C ⥤ Cat into its groupoidal Grothendieck construction.

                              Equations
                              Instances For
                                @[simp]
                                theorem CategoryTheory.Functor.Groupoidal.ι_obj_base {C : Type u} [Category.{v, u} C] (F : Functor C Grpd) (c : C) (d : (F.obj c)) :
                                ((ι F c).obj d).base = c
                                @[simp]
                                theorem CategoryTheory.Functor.Groupoidal.ι_obj_fiber {C : Type u} [Category.{v, u} C] (F : Functor C Grpd) (c : C) (d : (F.obj c)) :
                                ((ι F c).obj d).fiber = d
                                @[simp]
                                theorem CategoryTheory.Functor.Groupoidal.ι_map_base {C : Type u} [Category.{v, u} C] (F : Functor C Grpd) (c : C) {X Y : (F.obj c)} (f : X Y) :
                                Hom.base ((ι F c).map f) = CategoryStruct.id ((ι F c).obj X).base
                                @[simp]
                                theorem CategoryTheory.Functor.Groupoidal.ι_map_fiber {C : Type u} [Category.{v, u} C] (F : Functor C Grpd) (c : C) {X Y : (F.obj c)} (f : X Y) :
                                @[simp]
                                theorem CategoryTheory.Functor.Groupoidal.hext {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {x y : F.Groupoidal} (hbase : x.base = y.base) (hfiber : x.fiber y.fiber) :
                                x = y
                                theorem CategoryTheory.Functor.Groupoidal.Hom.hext {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {X Y : F.Groupoidal} (f g : X.Hom Y) (w_base : f.base = g.base) (w_fiber : f.fiber g.fiber) :
                                f = g
                                theorem CategoryTheory.Functor.Groupoidal.Hom.ext {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {X Y : F.Groupoidal} (f g : X.Hom Y) (w_base : f.base = g.base) (w_fiber : f.fiber = CategoryStruct.comp (eqToHom ) g.fiber) :
                                f = g
                                theorem CategoryTheory.Functor.Groupoidal.Hom.ext_iff {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} (x y : F.Groupoidal) (f g : x y) :
                                (∃ (w_base : base f = base g), fiber f = CategoryStruct.comp (eqToHom ) (fiber g)) f = g
                                theorem CategoryTheory.Functor.Groupoidal.hext' {C : Type u} [Category.{v, u} C] {F F' : Functor C Grpd} (h : F = F') {x : F.Groupoidal} {y : F'.Groupoidal} (hbase : x.base y.base) (hfiber : x.fiber y.fiber) :
                                x y
                                theorem CategoryTheory.Functor.Groupoidal.Hom.hext' {C : Type u} [Category.{v, u} C] {F F' : Functor C Grpd} (h : F = F') {X Y : F.Groupoidal} {X' Y' : F'.Groupoidal} (hX : X X') (hY : Y Y') (f : X.Hom Y) (g : X'.Hom Y') (w_base : f.base g.base) (w_fiber : f.fiber g.fiber) :
                                f g
                                theorem CategoryTheory.Functor.Groupoidal.FunctorTo.hext {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {D : Type u_1} [Category.{u_2, u_1} D] (G H : Functor D F.Groupoidal) (hbase : G.comp forget = H.comp forget) (hfiber_obj : ∀ (x : D), (G.obj x).fiber (H.obj x).fiber) (hfiber_map : ∀ {x y : D} (f : x y), Hom.fiber (G.map f) Hom.fiber (H.map f)) :
                                G = H
                                def CategoryTheory.Functor.Groupoidal.ιNatTrans {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {X Y : C} (f : X Y) :
                                ι F X Functor.comp (F.map f) (ι F Y)

                                Every morphism f : X ⟶ Y in the base category induces a natural transformation from the fiber inclusion ι F X to the composition F.map f ⋙ ι F Y.

                                Equations
                                Instances For
                                  @[simp]
                                  theorem CategoryTheory.Functor.Groupoidal.ιNatTrans_comp_app {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {X Y Z : C} {f : X Y} {g : Y Z} {a : (F.obj X)} :
                                  @[simp]
                                  theorem CategoryTheory.Functor.Groupoidal.ιNatTrans_app_base {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {X Y : C} (f : X Y) (d : (F.obj X)) :
                                  @[simp]
                                  theorem CategoryTheory.Functor.Groupoidal.ιNatTrans_app_fiber {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {X Y : C} (f : X Y) (d : (F.obj X)) :
                                  def CategoryTheory.Functor.Groupoidal.functorFrom {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_2, u_1} E] (fib : (c : C) → Functor (↑(F.obj c)) E) (hom : {c c' : C} → (f : c c') → fib c Functor.comp (F.map f) (fib c')) (hom_id : ∀ (c : C), hom (CategoryStruct.id c) = eqToHom ) (hom_comp : ∀ (c₁ c₂ c₃ : C) (f : c₁ c₂) (g : c₂ c₃), hom (CategoryStruct.comp f g) = CategoryStruct.comp (hom f) (CategoryStruct.comp (whiskerLeft (F.map f) (hom g)) (eqToHom ))) :

                                  Construct a functor from Groupoidal F to another category E by providing a family of functors on the fibers of Groupoidal F, a family of natural transformations on morphisms in the base of Groupoidal F and coherence data for this family of natural transformations.

                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem CategoryTheory.Functor.Groupoidal.functorFrom_obj {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_2, u_1} E] (fib : (c : C) → Functor (↑(F.obj c)) E) (hom : {c c' : C} → (f : c c') → fib c Functor.comp (F.map f) (fib c')) (hom_id : ∀ (c : C), hom (CategoryStruct.id c) = eqToHom ) (hom_comp : ∀ (c₁ c₂ c₃ : C) (f : c₁ c₂) (g : c₂ c₃), hom (CategoryStruct.comp f g) = CategoryStruct.comp (hom f) (CategoryStruct.comp (whiskerLeft (F.map f) (hom g)) (eqToHom ))) (X : F.Groupoidal) :
                                    (functorFrom fib (fun {c c' : C} => hom) hom_id hom_comp).obj X = (fib X.base).obj X.fiber
                                    @[simp]
                                    theorem CategoryTheory.Functor.Groupoidal.functorFrom_map {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_2, u_1} E] (fib : (c : C) → Functor (↑(F.obj c)) E) (hom : {c c' : C} → (f : c c') → fib c Functor.comp (F.map f) (fib c')) (hom_id : ∀ (c : C), hom (CategoryStruct.id c) = eqToHom ) (hom_comp : ∀ (c₁ c₂ c₃ : C) (f : c₁ c₂) (g : c₂ c₃), hom (CategoryStruct.comp f g) = CategoryStruct.comp (hom f) (CategoryStruct.comp (whiskerLeft (F.map f) (hom g)) (eqToHom ))) {X Y : F.Groupoidal} (f : X Y) :
                                    (functorFrom fib (fun {c c' : C} => hom) hom_id hom_comp).map f = CategoryStruct.comp ((hom (Hom.base f)).app X.fiber) ((fib Y.base).map (Hom.fiber f))
                                    def CategoryTheory.Functor.Groupoidal.ιCompFunctorFrom {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_2, u_1} E] (fib : (c : C) → Functor (↑(F.obj c)) E) (hom : {c c' : C} → (f : c c') → fib c Functor.comp (F.map f) (fib c')) (hom_id : ∀ (c : C), hom (CategoryStruct.id c) = eqToHom ) (hom_comp : ∀ (c₁ c₂ c₃ : C) (f : c₁ c₂) (g : c₂ c₃), hom (CategoryStruct.comp f g) = CategoryStruct.comp (hom f) (CategoryStruct.comp (whiskerLeft (F.map f) (hom g)) (eqToHom ))) (c : C) :
                                    (ι F c).comp (functorFrom fib (fun {c c' : C} => hom) hom_id hom_comp) fib c

                                    Groupoidal.ι F c composed with Groupoidal.functorFrom is isomorphic a functor on a fiber on F supplied as the first argument to Groupoidal.functorFrom.

                                    Equations
                                    Instances For
                                      def CategoryTheory.Functor.Groupoidal.fib' {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_3, u_1} E] (fib : (c : C) → Functor (↑(F.obj c)) E) (c : C) :
                                      Equations
                                      Instances For
                                        def CategoryTheory.Functor.Groupoidal.hom' {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_3, u_1} E] {fib : (c : C) → Functor (↑(F.obj c)) E} (hom : {c c' : C} → (f : c c') → fib c Functor.comp (F.map f) (fib c')) {c c' : C} (f : c c') :
                                        Equations
                                        Instances For
                                          def CategoryTheory.Functor.Groupoidal.functorFrom_comp_hom' {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_3, u_1} E] (fib : (c : C) → Functor (↑(F.obj c)) E) (hom : {c c' : C} → (f : c c') → fib c Functor.comp (F.map f) (fib c')) {D : Type u_2} [Category.{u_4, u_2} D] (G : Functor E D) {c c' : C} (f : c c') :
                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            def CategoryTheory.Functor.Groupoidal.functorFrom_comp_hom {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_3, u_1} E] (fib : (c : C) → Functor (↑(F.obj c)) E) (hom : {c c' : C} → (f : c c') → fib c Functor.comp (F.map f) (fib c')) {D : Type u_2} [Category.{u_4, u_2} D] (G : Functor E D) {c c' : C} (f : c c') :
                                            Equations
                                            Instances For
                                              theorem CategoryTheory.Functor.Groupoidal.functorFrom_comp_hom_id {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_4, u_1} E] (fib : (c : C) → Functor (↑(F.obj c)) E) (hom : {c c' : C} → (f : c c') → fib c Functor.comp (F.map f) (fib c')) (hom_id : ∀ (c : C), hom (CategoryStruct.id c) = eqToHom ) {D : Type u_2} [Category.{u_3, u_2} D] (G : Functor E D) (c : C) :
                                              functorFrom_comp_hom fib (fun {c c' : C} => hom) G (CategoryStruct.id c) = eqToHom
                                              theorem CategoryTheory.Functor.Groupoidal.functorFrom_comp_hom_comp {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_4, u_1} E] (fib : (c : C) → Functor (↑(F.obj c)) E) (hom : {c c' : C} → (f : c c') → fib c Functor.comp (F.map f) (fib c')) (hom_comp : ∀ (c₁ c₂ c₃ : C) (f : c₁ c₂) (g : c₂ c₃), hom (CategoryStruct.comp f g) = CategoryStruct.comp (hom f) (CategoryStruct.comp (whiskerLeft (F.map f) (hom g)) (eqToHom ))) {D : Type u_2} [Category.{u_3, u_2} D] (G : Functor E D) (c₁ c₂ c₃ : C) (f : c₁ c₂) (g : c₂ c₃) :
                                              functorFrom_comp_hom fib (fun {c c' : C} => hom) G (CategoryStruct.comp f g) = CategoryStruct.comp (functorFrom_comp_hom fib (fun {c c' : C} => hom) G f) (CategoryStruct.comp (whiskerLeft (F.map f) (functorFrom_comp_hom fib (fun {c c' : C} => hom) G g)) (eqToHom ))
                                              theorem CategoryTheory.Functor.Groupoidal.functorFrom_comp_hom_eq {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_4, u_1} E] (fib : (c : C) → Functor (↑(F.obj c)) E) (hom : {c c' : C} → (f : c c') → fib c Functor.comp (F.map f) (fib c')) {D : Type u_2} [Category.{u_3, u_2} D] (G : Functor E D) {c c' : C} (f : c c') :
                                              functorFrom_comp_hom fib (fun {c c' : C} => hom) G f = whiskerRight (hom f) G
                                              theorem CategoryTheory.Functor.Groupoidal.functorFrom_comp' {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_4, u_1} E] (fib : (c : C) → Functor (↑(F.obj c)) E) (hom : {c c' : C} → (f : c c') → fib c Functor.comp (F.map f) (fib c')) (hom_id : ∀ (c : C), hom (CategoryStruct.id c) = eqToHom ) (hom_comp : ∀ (c₁ c₂ c₃ : C) (f : c₁ c₂) (g : c₂ c₃), hom (CategoryStruct.comp f g) = CategoryStruct.comp (hom f) (CategoryStruct.comp (whiskerLeft (F.map f) (hom g)) (eqToHom ))) {D : Type u_2} [Category.{u_3, u_2} D] (G : Functor E D) :
                                              (functorFrom (fib' fib) (fun {c c' : C} => hom' fun {c c' : C} => hom) hom_id hom_comp).comp G = functorFrom (functorFrom_comp_fib' fib G) (fun {c c' : C} => functorFrom_comp_hom' fib (fun {c c' : C} => hom) G)
                                              theorem CategoryTheory.Functor.Groupoidal.functorFrom_comp {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_4, u_1} E] (fib : (c : C) → Functor (↑(F.obj c)) E) (hom : {c c' : C} → (f : c c') → fib c Functor.comp (F.map f) (fib c')) (hom_id : ∀ (c : C), hom (CategoryStruct.id c) = eqToHom ) (hom_comp : ∀ (c₁ c₂ c₃ : C) (f : c₁ c₂) (g : c₂ c₃), hom (CategoryStruct.comp f g) = CategoryStruct.comp (hom f) (CategoryStruct.comp (whiskerLeft (F.map f) (hom g)) (eqToHom ))) {D : Type u_2} [Category.{u_3, u_2} D] (G : Functor E D) :
                                              (functorFrom fib (fun {c c' : C} => hom) hom_id hom_comp).comp G = functorFrom (functorFrom_comp_fib fib G) (fun {c c' : C} => functorFrom_comp_hom fib (fun {c c' : C} => hom) G)
                                              theorem CategoryTheory.Functor.Groupoidal.asFunctorFrom_hom_app {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_3, u_1} E] (K : Functor F.Groupoidal E) {c c' : C} (f : c c') (p : (F.obj c)) :

                                              Groupoidal version of Grothendieck.asFunctorFrom

                                              theorem CategoryTheory.Functor.Groupoidal.functorFrom_hext {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {E : Type u_1} [Category.{u_3, u_1} E] {K K' : Functor F.Groupoidal E} (hfib : asFunctorFrom_fib K = asFunctorFrom_fib K') (hhom : ∀ {c c' : C} (f : c c'), asFunctorFrom_hom K f asFunctorFrom_hom K' f) :
                                              K = K'

                                              The groupoidal Grothendieck construction is functorial: a natural transformation α : F ⟶ G induces a functor Groupoidal.map : Groupoidal F ⥤ Groupoidal G.

                                              Equations
                                              Instances For
                                                theorem CategoryTheory.Functor.Groupoidal.map_obj_objMk {C : Type u} [Category.{v, u} C] {F G : Functor C Grpd} {α : F G} (xb : C) (xf : (F.obj xb)) :
                                                (map α).obj (objMk xb xf) = objMk xb ((α.app xb).obj xf)
                                                @[simp]
                                                theorem CategoryTheory.Functor.Groupoidal.map_obj_base {C : Type u} [Category.{v, u} C] {F G : Functor C Grpd} {α : F G} (X : F.Groupoidal) :
                                                ((map α).obj X).base = X.base
                                                @[simp]
                                                theorem CategoryTheory.Functor.Groupoidal.map_obj_fiber {C : Type u} [Category.{v, u} C] {F G : Functor C Grpd} {α : F G} (X : F.Groupoidal) :
                                                ((map α).obj X).fiber = (α.app X.base).obj X.fiber
                                                @[simp]
                                                theorem CategoryTheory.Functor.Groupoidal.map_map_base {C : Type u} [Category.{v, u} C] {F G : Functor C Grpd} {α : F G} {X Y : F.Groupoidal} (f : X Y) :
                                                @[simp]
                                                theorem CategoryTheory.Functor.Groupoidal.map_map_fiber {C : Type u} [Category.{v, u} C] {F G : Functor C Grpd} {α : F G} {X Y : F.Groupoidal} (f : X Y) :

                                                Applying a functor G : D ⥤ C to the base of the groupoidal Grothendieck construction induces a functor ∫(G ⋙ F) ⥤ ∫(F).

                                                Equations
                                                Instances For
                                                  @[simp]
                                                  theorem CategoryTheory.Functor.Groupoidal.pre_obj_base {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] (F : Functor C Grpd) (G : Functor D C) (x : (G.comp F).Groupoidal) :
                                                  ((pre F G).obj x).base = G.obj x.base
                                                  @[simp]
                                                  @[simp]
                                                  theorem CategoryTheory.Functor.Groupoidal.pre_map_base {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] (F : Functor C Grpd) (G : Functor D C) {x y : (G.comp F).Groupoidal} (f : x y) :
                                                  Hom.base ((pre F G).map f) = G.map (Hom.base f)
                                                  @[simp]
                                                  theorem CategoryTheory.Functor.Groupoidal.pre_map_fiber {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] (F : Functor C Grpd) (G : Functor D C) {x y : (G.comp F).Groupoidal} (f : x y) :
                                                  def CategoryTheory.Functor.Groupoidal.preNatIso {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] (F : Functor C Grpd) {G H : Functor D C} (α : G H) :
                                                  pre F G (map (whiskerRight α.hom F)).comp (pre F H)

                                                  An natural isomorphism between functors G ≅ H induces a natural isomorphism between the canonical morphism pre F G and pre F H, up to composition with ∫(G ⋙ F) ⥤ ∫(H ⋙ F).

                                                  Equations
                                                  Instances For

                                                    Given an equivalence of categories G, preInv _ G is the (weak) inverse of the pre _ G.functor.

                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For
                                                      theorem CategoryTheory.Functor.Groupoidal.pre_comp_map {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {F : Functor C Grpd} (G : Functor D C) {H : Functor C Grpd} (α : F H) :
                                                      (pre F G).comp (map α) = (map (G.whiskerLeft α)).comp (pre H G)
                                                      theorem CategoryTheory.Functor.Groupoidal.pre_comp_map_assoc {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {F : Functor C Grpd} (G : Functor D C) {H : Functor C Grpd} (α : F H) {E : Type u_1} [Category.{u_2, u_1} E] (K : Functor H.Groupoidal E) :
                                                      (pre F G).comp ((map α).comp K) = (map (G.whiskerLeft α)).comp ((pre H G).comp K)
                                                      @[simp]
                                                      theorem CategoryTheory.Functor.Groupoidal.pre_comp {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] (F : Functor C Grpd) {E : Type u_1} [Category.{u_2, u_1} E] (G : Functor D C) (H : Functor E D) :
                                                      pre F (H.comp G) = (pre (G.comp F) H).comp (pre F G)
                                                      @[simp]
                                                      theorem CategoryTheory.Functor.Groupoidal.ι_comp_pre {C : Type u} [Category.{v, u} C] (F : Functor C Grpd) {D : Type u_1} [Category.{u_2, u_1} D] (G : Functor D C) (x : D) :
                                                      (ι (G.comp F) x).comp (pre F G) = ι F (G.obj x)
                                                      theorem CategoryTheory.Functor.Groupoidal.map_comp_eq {C : Type u} [Category.{v, u} C] (F : Functor C Grpd) {G H : Functor C Grpd} (α : F G) (β : G H) :
                                                      map (CategoryStruct.comp α β) = (map α).comp (map β)
                                                      theorem CategoryTheory.Functor.Groupoidal.preNatIso_congr {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] (F : Functor C Grpd) {G H : Functor D C} {α β : G H} (h : α = β) :
                                                      @[simp]
                                                      theorem CategoryTheory.Functor.Groupoidal.preNatIso_comp {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] (F : Functor C Grpd) {G1 G2 G3 : Functor D C} (α : G1 G2) (β : G2 G3) :
                                                      theorem CategoryTheory.Functor.Groupoidal.map_eqToHom_base {Γ : Type u} [Groupoid Γ] (A : Functor Γ Grpd) {G1 G2 : A.Groupoidal} (eq : G1 = G2) :
                                                      def CategoryTheory.Functor.Groupoidal.ιNatIso {Γ : Type u} [Groupoid Γ] (A : Functor Γ Grpd) {X Y : Γ} (f : X Y) :
                                                      ι A X Functor.comp (A.map f) (ι A Y)

                                                      Every morphism f : X ⟶ Y in the base category induces a natural transformation from the fiber inclusion ι F X to the composition F.map f ⋙ ι F Y.

                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        theorem CategoryTheory.Functor.Groupoidal.ιNatIso_hom {Γ : Type u} [Groupoid Γ] (A : Functor Γ Grpd) {x y : Γ} (f : x y) :
                                                        theorem CategoryTheory.Functor.Groupoidal.ιNatIso_comp {Γ : Type u} [Groupoid Γ] (A : Functor Γ Grpd) {x y z : Γ} (f : x y) (g : y z) :
                                                        theorem CategoryTheory.Functor.Groupoidal.functorTo_map_id_aux {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {F : Functor C Grpd} (A : Functor D C) (fibObj : (x : D) → ((A.comp F).obj x)) (x : D) :
                                                        ((A.comp F).map (CategoryStruct.id x)).obj (fibObj x) = fibObj x
                                                        theorem CategoryTheory.Functor.Groupoidal.functorTo_map_comp_aux {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {F : Functor C Grpd} (A : Functor D C) (fibObj : (x : D) → ((A.comp F).obj x)) {x y z : D} (f : x y) (g : y z) :
                                                        ((A.comp F).map (CategoryStruct.comp f g)).obj (fibObj x) = (F.map (A.map g)).obj (((A.comp F).map f).obj (fibObj x))
                                                        def CategoryTheory.Functor.Groupoidal.functorTo {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {F : Functor C Grpd} (A : Functor D C) (fibObj : (x : D) → ((A.comp F).obj x)) (fibMap : {x y : D} → (f : x y) → ((A.comp F).map f).obj (fibObj x) fibObj y) (map_id : ∀ (x : D), fibMap (CategoryStruct.id x) = eqToHom ) (map_comp : ∀ {x y z : D} (f : x y) (g : y z), fibMap (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ) (CategoryStruct.comp ((F.map (A.map g)).map (fibMap f)) (fibMap g))) :

                                                        To define a functor into Grothendieck F we can make use of an existing functor into the base.

                                                        Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem CategoryTheory.Functor.Groupoidal.functorTo_obj_base {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {F : Functor C Grpd} (A : Functor D C) (fibObj : (x : D) → ((A.comp F).obj x)) (fibMap : {x y : D} → (f : x y) → ((A.comp F).map f).obj (fibObj x) fibObj y) (map_id : ∀ (x : D), fibMap (CategoryStruct.id x) = eqToHom ) (map_comp : ∀ {x y z : D} (f : x y) (g : y z), fibMap (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ) (CategoryStruct.comp ((F.map (A.map g)).map (fibMap f)) (fibMap g))) (x : D) :
                                                          ((functorTo A fibObj (fun {x y : D} => fibMap) map_id ).obj x).base = A.obj x
                                                          @[simp]
                                                          theorem CategoryTheory.Functor.Groupoidal.functorTo_obj_fiber {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {F : Functor C Grpd} (A : Functor D C) (fibObj : (x : D) → ((A.comp F).obj x)) (fibMap : {x y : D} → (f : x y) → ((A.comp F).map f).obj (fibObj x) fibObj y) (map_id : ∀ (x : D), fibMap (CategoryStruct.id x) = eqToHom ) (map_comp : ∀ {x y z : D} (f : x y) (g : y z), fibMap (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ) (CategoryStruct.comp ((F.map (A.map g)).map (fibMap f)) (fibMap g))) (x : D) :
                                                          ((functorTo A fibObj (fun {x y : D} => fibMap) map_id ).obj x).fiber = fibObj x
                                                          @[simp]
                                                          theorem CategoryTheory.Functor.Groupoidal.functorTo_map_base {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {F : Functor C Grpd} (A : Functor D C) (fibObj : (x : D) → ((A.comp F).obj x)) (fibMap : {x y : D} → (f : x y) → ((A.comp F).map f).obj (fibObj x) fibObj y) (map_id : ∀ (x : D), fibMap (CategoryStruct.id x) = eqToHom ) (map_comp : ∀ {x y z : D} (f : x y) (g : y z), fibMap (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ) (CategoryStruct.comp ((F.map (A.map g)).map (fibMap f)) (fibMap g))) {x y : D} (f : x y) :
                                                          Hom.base ((functorTo A fibObj (fun {x y : D} => fibMap) map_id ).map f) = A.map f
                                                          @[simp]
                                                          theorem CategoryTheory.Functor.Groupoidal.functorTo_map_fiber {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {F : Functor C Grpd} (A : Functor D C) (fibObj : (x : D) → ((A.comp F).obj x)) (fibMap : {x y : D} → (f : x y) → ((A.comp F).map f).obj (fibObj x) fibObj y) (map_id : ∀ (x : D), fibMap (CategoryStruct.id x) = eqToHom ) (map_comp : ∀ {x y z : D} (f : x y) (g : y z), fibMap (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ) (CategoryStruct.comp ((F.map (A.map g)).map (fibMap f)) (fibMap g))) {x y : D} (f : x y) :
                                                          Hom.fiber ((functorTo A fibObj (fun {x y : D} => fibMap) map_id ).map f) = fibMap f
                                                          @[simp]
                                                          theorem CategoryTheory.Functor.Groupoidal.functorTo_forget {C : Type u} [Category.{v, u} C] {D : Type u₁} [Category.{v₁, u₁} D] {F : Functor C Grpd} {A : Functor D C} {fibObj : (x : D) → ((A.comp F).obj x)} {fibMap : {x y : D} → (f : x y) → ((A.comp F).map f).obj (fibObj x) fibObj y} {map_id : ∀ (x : D), fibMap (CategoryStruct.id x) = eqToHom } {map_comp : ∀ {x y z : D} (f : x y) (g : y z), fibMap (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ) (CategoryStruct.comp ((F.map (A.map g)).map (fibMap f)) (fibMap g))} :
                                                          (functorTo A fibObj fibMap map_id ).comp (Grothendieck.forget (F.comp Grpd.forgetToCat)) = A
                                                          theorem CategoryTheory.Functor.Groupoidal.pre_congr_functor {Γ : Type u_1} {Δ : Type u_2} [Category.{u_3, u_1} Γ] [Category.{u_4, u_2} Δ] (σ : Functor Δ Γ) {F G : Functor Γ Grpd} (h : F = G) :
                                                          (map (eqToHom )).comp ((pre F σ).comp (map (eqToHom h))) = pre G σ