Documentation

GroupoidModel.Grothendieck.Groupoidal.Basic

Main definitions #

Main statements #

Implementation notes #

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
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def CategoryTheory.Grothendieck.Groupoidal.Hom {C : Type u₁} [Category.{v₁, u₁} C] {F : Functor C Grpd} (x y : ∫(F)) :
      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

                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.Grothendieck.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.Grothendieck.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.Grothendieck.Groupoidal.homMk {C : Type u₁} [Category.{v₁, u₁} C] {F : Functor C Grpd} {X Y : ∫(F)} (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.Grothendieck.Groupoidal.homMk_base {C : Type u₁} [Category.{v₁, u₁} C] {F : Functor C Grpd} {X Y : ∫(F)} (fb : X.base Y.base) (ff : (F.map fb).obj X.fiber Y.fiber) :
                    Hom.base (homMk fb ff) = fb
                    @[simp]
                    theorem CategoryTheory.Grothendieck.Groupoidal.homMk_fiber {C : Type u₁} [Category.{v₁, u₁} C] {F : Functor C Grpd} {X Y : ∫(F)} (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.Grothendieck.Groupoidal.transport {C : Type u₁} [Groupoid C] {F : Functor C Grpd} (x : ∫(F)) {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.Grothendieck.Groupoidal.transport_base {C : Type u₁} [Groupoid C] {F : Functor C Grpd} (x : ∫(F)) {c : C} (t : x.base c) :
                      (x.transport t).base = c
                      @[simp]
                      theorem CategoryTheory.Grothendieck.Groupoidal.transport_fiber {C : Type u₁} [Groupoid C] {F : Functor C Grpd} (x : ∫(F)) {c : C} (t : x.base c) :
                      (x.transport t).fiber = (F.map t).obj x.fiber
                      def CategoryTheory.Grothendieck.Groupoidal.toTransport {C : Type u₁} [Groupoid C] {F : Functor C Grpd} (x : ∫(F)) {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.Grothendieck.Groupoidal.toTransport_base {C : Type u₁} [Groupoid C] {F : Functor C Grpd} (x : ∫(F)) {c : C} (t : x.base c) :
                        def CategoryTheory.Grothendieck.Groupoidal.isoMk {C : Type u₁} [Groupoid C] {F : Functor C Grpd} {X Y : ∫(F)} (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.Grothendieck.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.Grothendieck.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.Grothendieck.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.Grothendieck.Groupoidal.ι_map_fiber {C : Type u} [Category.{v, u} C] (F : Functor C Grpd) (c : C) {X Y : (F.obj c)} (f : X Y) :
                            theorem CategoryTheory.Grothendieck.Groupoidal.ext {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {X Y : ∫(F)} (f g : X.Hom Y) (w_base : f.base = g.base) (w_fiber : CategoryStruct.comp (eqToHom ) f.fiber = g.fiber) :
                            f = g
                            theorem CategoryTheory.Grothendieck.Groupoidal.hext {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {X Y : ∫(F)} (f g : X.Hom Y) (w_base : f.base = g.base) (w_fiber : f.fiber g.fiber) :
                            f = g
                            theorem CategoryTheory.Grothendieck.Groupoidal.hext' {Γ : Type u} [Category.{v, u} Γ] {A A' : Functor Γ Grpd} (h : A = A') {X Y : ∫(A)} {X' Y' : ∫(A')} (f : X.Hom Y) (g : X'.Hom Y') (hX : X X') (hY : Y Y') (w_base : f.base g.base) (w_fiber : f.fiber g.fiber) :
                            f g
                            theorem CategoryTheory.Grothendieck.Groupoidal.obj_hext {C : Type u} [Category.{v, u} C] {F : Functor C Grpd} {p1 p2 : ∫(F)} (hbase : p1.base = p2.base) (hfib : p1.fiber p2.fiber) :
                            p1 = p2
                            theorem CategoryTheory.Grothendieck.Groupoidal.obj_hext' {Γ : Type u} [Category.{v, u} Γ] {A A' : Functor Γ Grpd} (h : A = A') {x : ∫(A)} {y : ∫(A')} (hbase : x.base y.base) (hfiber : x.fiber y.fiber) :
                            x y
                            def CategoryTheory.Grothendieck.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.Grothendieck.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.Grothendieck.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.Grothendieck.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.Grothendieck.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 (Functor.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.Grothendieck.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 (Functor.whiskerLeft (F.map f) (hom g)) (eqToHom ))) (X : ∫(F)) :
                                (functorFrom fib (fun {c c' : C} => hom) hom_id hom_comp).obj X = (fib X.base).obj X.fiber
                                @[simp]
                                theorem CategoryTheory.Grothendieck.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 (Functor.whiskerLeft (F.map f) (hom g)) (eqToHom ))) {X Y : ∫(F)} (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.Grothendieck.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 (Functor.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.Grothendieck.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.Grothendieck.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.Grothendieck.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.Grothendieck.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.Grothendieck.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 = Functor.whiskerRight (hom f) G
                                          theorem CategoryTheory.Grothendieck.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 (Functor.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.Grothendieck.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 (Functor.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)

                                          Groupoidal version of Grothendieck.asFunctorFrom

                                          theorem CategoryTheory.Grothendieck.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) 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.Grothendieck.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)

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

                                            Equations
                                            Instances For

                                              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.Grothendieck.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.Grothendieck.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) E) :
                                                  (pre F G).comp ((map α).comp K) = (map (G.whiskerLeft α)).comp ((pre H G).comp K)
                                                  @[simp]
                                                  theorem CategoryTheory.Grothendieck.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]

                                                  This proves that base of an eqToHom morphism in the category Grothendieck A is an eqToHom morphism

                                                  theorem CategoryTheory.Grothendieck.Groupoidal.eqToHom_fiber_aux {Γ : Type u_1} [Category.{u_2, u_1} Γ] {F : Functor Γ Grpd} {g1 g2 : ∫(F)} (eq : g1 = g2) :
                                                  (F.map (Hom.base (eqToHom eq))).obj g1.fiber = g2.fiber

                                                  This is the proof of equality used in the eqToHom in Groupoidal.eqToHom_fiber

                                                  @[simp]

                                                  This proves that fiber of an eqToHom morphism in the category Grothendieck A is an eqToHom morphism

                                                  @[simp]
                                                  theorem CategoryTheory.Grothendieck.Groupoidal.map_obj_base {Γ : Type u_1} [Category.{u_2, u_1} Γ] {F G : Functor Γ Grpd} (α : F G) (X : ∫(F)) :
                                                  ((map α).obj X).base = X.base
                                                  @[simp]
                                                  theorem CategoryTheory.Grothendieck.Groupoidal.map_obj_fiber {Γ : Type u_1} [Category.{u_4, u_1} Γ] {F G : Functor Γ Grpd} (α : F G) (X : ∫(F)) :
                                                  ((map α).obj X).fiber = (α.app X.base).obj X.fiber
                                                  @[simp]
                                                  theorem CategoryTheory.Grothendieck.Groupoidal.map_map_base {Γ : Type u_1} [Category.{u_2, u_1} Γ] {F G : Functor Γ Grpd} (α : F G) {X Y : ∫(F)} (f : X Y) :
                                                  @[simp]
                                                  theorem CategoryTheory.Grothendieck.Groupoidal.map_map_fiber {Γ : Type u_1} [Category.{u_4, u_1} Γ] {F G : Functor Γ Grpd} (α : F G) {X Y : ∫(F)} (f : X Y) :
                                                  theorem CategoryTheory.Grothendieck.Groupoidal.map_map {Γ : Type u_1} [Category.{u_4, u_1} Γ] {F G : Functor Γ Grpd} {α : F G} {X Y : ∫(F)} (f : X Y) :
                                                  (map α).map f = { base := Hom.base f, fiber := CategoryStruct.comp (eqToHom ) ((α.app Y.base).map (Hom.fiber f)) }
                                                  @[simp]
                                                  theorem CategoryTheory.Grothendieck.Groupoidal.fiber_eqToHom {Γ : Type u_1} [Category.{u_3, u_1} Γ] {F : Functor Γ Grpd} {X Y : ∫(F)} (f : X Y) (h : X = Y) :
                                                  theorem CategoryTheory.Grothendieck.Groupoidal.Functor.hext {Γ : Type u_1} [Category.{u_2, u_1} Γ] {F : Functor Γ Grpd} {C : Type u} [Category.{v, u} C] (G1 G2 : Functor C ∫(F)) (hbase : G1.comp forget = G2.comp forget) (hfiber_obj : ∀ (x : C), (G1.obj x).fiber (G2.obj x).fiber) (hfiber_map : ∀ {x y : C} (f : x y), Hom.fiber (G1.map f) Hom.fiber (G2.map f)) :
                                                  G1 = G2
                                                  @[simp]
                                                  @[simp]
                                                  theorem CategoryTheory.Grothendieck.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)} (f : X Y) :
                                                  Hom.base ((pre F G).map f) = G.map (Hom.base f)
                                                  @[simp]
                                                  theorem CategoryTheory.Grothendieck.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)} (f : X Y) :
                                                  @[simp]
                                                  theorem CategoryTheory.Grothendieck.Groupoidal.ι_pre {Γ : Type u₂} [Category.{v₂, u₂} Γ] {Δ : Type u₃} [Category.{v₃, u₃} Δ] (σ : Functor Δ Γ) (A : Functor Γ Grpd) (x : Δ) :
                                                  (ι (σ.comp A) x).comp (pre A σ) = ι A (σ.obj x)
                                                  theorem CategoryTheory.Grothendieck.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.Grothendieck.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 : α = β) :
                                                  theorem CategoryTheory.Grothendieck.Groupoidal.map_eqToHom_base {Γ : Type u} [Groupoid Γ] (A : Functor Γ Grpd) {G1 G2 : ∫(A)} (eq : G1 = G2) :
                                                  def CategoryTheory.Grothendieck.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.Grothendieck.Groupoidal.ιNatIso_hom {Γ : Type u} [Groupoid Γ] (A : Functor Γ Grpd) {x y : Γ} (f : x y) :
                                                    theorem CategoryTheory.Grothendieck.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.Grothendieck.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.Grothendieck.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.Grothendieck.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.Grothendieck.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.Grothendieck.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.Grothendieck.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.Grothendieck.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.Grothendieck.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 σ