Documentation

Mathlib.CategoryTheory.Comma.Over

Over and under categories #

Over (and under) categories are special cases of comma categories.

Tags #

Comma, Slice, Coslice, Over, Under

def CategoryTheory.Over {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] (X : T) :
Type (max u₁ v₁)

The over category has as objects arrows in T with codomain X and as morphisms commutative triangles.

See https://stacks.math.columbia.edu/tag/001G.

Equations
Instances For
    theorem CategoryTheory.Over.OverMorphism.ext {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {U V : CategoryTheory.Over X} {f g : U V} (h : f.left = g.left) :
    f = g
    @[simp]
    @[simp]

    To give an object in the over category, it suffices to give a morphism with codomain X.

    Equations
    Instances For
      @[simp]
      @[simp]

      We can set up a coercion from arrows with codomain X to over X. This most likely should not be a global instance, but it is sometimes useful.

      Equations
      Instances For
        @[simp]
        def CategoryTheory.Over.homMk {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {U V : CategoryTheory.Over X} (f : U.left V.left) (w : CategoryTheory.CategoryStruct.comp f V.hom = U.hom := by aesop_cat) :
        U V

        To give a morphism in the over category, it suffices to give an arrow fitting in a commutative triangle.

        Equations
        Instances For
          @[simp]
          theorem CategoryTheory.Over.homMk_left {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {U V : CategoryTheory.Over X} (f : U.left V.left) (w : CategoryTheory.CategoryStruct.comp f V.hom = U.hom := by aesop_cat) :
          @[simp]
          theorem CategoryTheory.Over.homMk_right_down_down {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {U V : CategoryTheory.Over X} (f : U.left V.left) (w : CategoryTheory.CategoryStruct.comp f V.hom = U.hom := by aesop_cat) :
          =
          def CategoryTheory.Over.isoMk {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {f g : CategoryTheory.Over X} (hl : f.left g.left) (hw : CategoryTheory.CategoryStruct.comp hl.hom g.hom = f.hom := by aesop_cat) :
          f g

          Construct an isomorphism in the over category given isomorphisms of the objects whose forward direction gives a commutative triangle.

          Equations
          Instances For
            @[simp]
            theorem CategoryTheory.Over.isoMk_hom_right_down_down {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {f g : CategoryTheory.Over X} (hl : f.left g.left) (hw : CategoryTheory.CategoryStruct.comp hl.hom g.hom = f.hom := by aesop_cat) :
            =
            @[simp]
            theorem CategoryTheory.Over.isoMk_hom_left {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {f g : CategoryTheory.Over X} (hl : f.left g.left) (hw : CategoryTheory.CategoryStruct.comp hl.hom g.hom = f.hom := by aesop_cat) :
            (CategoryTheory.Over.isoMk hl hw).hom.left = hl.hom
            @[simp]
            theorem CategoryTheory.Over.isoMk_inv_right_down_down {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {f g : CategoryTheory.Over X} (hl : f.left g.left) (hw : CategoryTheory.CategoryStruct.comp hl.hom g.hom = f.hom := by aesop_cat) :
            =
            @[simp]
            theorem CategoryTheory.Over.isoMk_inv_left {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {f g : CategoryTheory.Over X} (hl : f.left g.left) (hw : CategoryTheory.CategoryStruct.comp hl.hom g.hom = f.hom := by aesop_cat) :
            (CategoryTheory.Over.isoMk hl hw).inv.left = hl.inv

            The natural cocone over the forgetful functor Over X ⥤ T with cocone point X.

            Equations
            Instances For
              @[simp]
              theorem CategoryTheory.Over.map_obj_left {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X Y : T} {f : X Y} {U : CategoryTheory.Over X} :
              ((CategoryTheory.Over.map f).obj U).left = U.left
              @[simp]
              theorem CategoryTheory.Over.map_map_left {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X Y : T} {f : X Y} {U V : CategoryTheory.Over X} {g : U V} :
              ((CategoryTheory.Over.map f).map g).left = g.left

              This section proves various equalities between functors that demonstrate, for instance, that over categories assemble into a functor mapFunctor : T ⥤ Cat.

              These equalities between functors are then converted to natural isomorphisms using eqToIso. Such natural isomorphisms could be obtained directly using Iso.refl but this method will have better computational properties, when used, for instance, in developing the theory of Beck-Chevalley transformations.

              Mapping by f and then forgetting is the same as forgetting.

              Mapping by the composite morphism f ≫ g is the same as mapping by f then by g.

              If f = g, then map f is naturally isomorphic to map g.

              Equations
              Instances For
                @[simp]
                theorem CategoryTheory.Over.mapCongr_inv_app {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X Y : T} (f g : X Y) (h : f = g) (X✝ : CategoryTheory.Over X) :
                @[simp]
                theorem CategoryTheory.Over.mapCongr_hom_app {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X Y : T} (f g : X Y) (h : f = g) (X✝ : CategoryTheory.Over X) :

                The functor defined by the over categories.

                Equations
                Instances For

                  If k.left is an epimorphism, then k is an epimorphism. In other words, Over.forget X reflects epimorphisms. The converse does not hold without additional assumptions on the underlying category, see CategoryTheory.Over.epi_left_of_epi.

                  If k.left is a monomorphism, then k is a monomorphism. In other words, Over.forget X reflects monomorphisms. The converse of CategoryTheory.Over.mono_left_of_mono.

                  This lemma is not an instance, to avoid loops in type class inference.

                  If k is a monomorphism, then k.left is a monomorphism. In other words, Over.forget X preserves monomorphisms. The converse of CategoryTheory.Over.mono_of_mono_left.

                  Given f : Y ⟶ X, this is the obvious functor from (T/X)/f to T/Y

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[simp]
                    theorem CategoryTheory.Over.iteratedSliceForward_map {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} (f : CategoryTheory.Over X) {X✝ Y✝ : CategoryTheory.Over f} (κ : X✝ Y✝) :
                    f.iteratedSliceForward.map κ = CategoryTheory.Over.homMk κ.left.left
                    @[simp]
                    theorem CategoryTheory.Over.iteratedSliceForward_obj {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} (f : CategoryTheory.Over X) (α : CategoryTheory.Over f) :
                    f.iteratedSliceForward.obj α = CategoryTheory.Over.mk α.hom.left

                    Given f : Y ⟶ X, this is the obvious functor from T/Y to (T/X)/f

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Over.iteratedSliceBackward_map {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} (f : CategoryTheory.Over X) {X✝ Y✝ : CategoryTheory.Over f.left} (α : X✝ Y✝) :
                      f.iteratedSliceBackward.map α = CategoryTheory.Over.homMk (CategoryTheory.Over.homMk α.left )

                      Given f : Y ⟶ X, we have an equivalence between (T/X)/f and T/Y

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem CategoryTheory.Over.iteratedSliceEquiv_counitIso {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} (f : CategoryTheory.Over X) :
                        f.iteratedSliceEquiv.counitIso = CategoryTheory.NatIso.ofComponents (fun (g : CategoryTheory.Over f.left) => CategoryTheory.Over.isoMk (CategoryTheory.Iso.refl ((f.iteratedSliceBackward.comp f.iteratedSliceForward).obj g).left) )
                        @[simp]
                        theorem CategoryTheory.Over.iteratedSliceEquiv_functor {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} (f : CategoryTheory.Over X) :
                        f.iteratedSliceEquiv.functor = f.iteratedSliceForward
                        @[simp]
                        theorem CategoryTheory.Over.iteratedSliceEquiv_inverse {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} (f : CategoryTheory.Over X) :
                        f.iteratedSliceEquiv.inverse = f.iteratedSliceBackward

                        A functor F : T ⥤ D induces a functor Over X ⥤ Over (F.obj X) in the obvious way.

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

                          A natural transformation F ⟶ G induces a natural transformation on Over X up to Under.map.

                          Equations
                          Instances For

                            If F and G are naturally isomorphic, then Over.post F and Over.post G are also naturally isomorphic up to Over.map

                            Equations
                            Instances For
                              @[simp]
                              theorem CategoryTheory.Over.postCongr_hom_app_left {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {X : T} {F G : CategoryTheory.Functor T D} (e : F G) (X✝ : CategoryTheory.Over X) :
                              ((CategoryTheory.Over.postCongr e).hom.app X✝).left = e.hom.app X✝.left
                              @[simp]
                              theorem CategoryTheory.Over.postCongr_inv_app_left {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {X : T} {F G : CategoryTheory.Functor T D} (e : F G) (X✝ : CategoryTheory.Over X) :
                              ((CategoryTheory.Over.postCongr e).inv.app X✝).left = e.inv.app X✝.left

                              An equivalence of categories induces an equivalence on over categories.

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

                                Reinterpreting an F-costructured arrow F.obj d ⟶ X as an arrow over X induces a functor CostructuredArrow F X ⥤ Over X.

                                Equations
                                Instances For

                                  An equivalence F induces an equivalence CostructuredArrow F X ≌ Over X.

                                  def CategoryTheory.Under {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] (X : T) :
                                  Type (max u₁ v₁)

                                  The under category has as objects arrows with domain X and as morphisms commutative triangles.

                                  Equations
                                  Instances For
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    theorem CategoryTheory.Under.UnderMorphism.ext {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {U V : CategoryTheory.Under X} {f g : U V} (h : f.right = g.right) :
                                    f = g
                                    @[simp]

                                    To give an object in the under category, it suffices to give an arrow with domain X.

                                    Equations
                                    Instances For
                                      @[simp]
                                      @[simp]
                                      def CategoryTheory.Under.homMk {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {U V : CategoryTheory.Under X} (f : U.right V.right) (w : CategoryTheory.CategoryStruct.comp U.hom f = V.hom := by aesop_cat) :
                                      U V

                                      To give a morphism in the under category, it suffices to give a morphism fitting in a commutative triangle.

                                      Equations
                                      Instances For
                                        @[simp]
                                        theorem CategoryTheory.Under.homMk_left_down_down {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {U V : CategoryTheory.Under X} (f : U.right V.right) (w : CategoryTheory.CategoryStruct.comp U.hom f = V.hom := by aesop_cat) :
                                        =
                                        @[simp]
                                        theorem CategoryTheory.Under.homMk_right {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {U V : CategoryTheory.Under X} (f : U.right V.right) (w : CategoryTheory.CategoryStruct.comp U.hom f = V.hom := by aesop_cat) :
                                        def CategoryTheory.Under.isoMk {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {f g : CategoryTheory.Under X} (hr : f.right g.right) (hw : CategoryTheory.CategoryStruct.comp f.hom hr.hom = g.hom := by aesop_cat) :
                                        f g

                                        Construct an isomorphism in the over category given isomorphisms of the objects whose forward direction gives a commutative triangle.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.Under.isoMk_hom_right {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {f g : CategoryTheory.Under X} (hr : f.right g.right) (hw : CategoryTheory.CategoryStruct.comp f.hom hr.hom = g.hom) :
                                          (CategoryTheory.Under.isoMk hr hw).hom.right = hr.hom
                                          @[simp]
                                          theorem CategoryTheory.Under.isoMk_inv_right {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X : T} {f g : CategoryTheory.Under X} (hr : f.right g.right) (hw : CategoryTheory.CategoryStruct.comp f.hom hr.hom = g.hom) :
                                          (CategoryTheory.Under.isoMk hr hw).inv.right = hr.inv

                                          The natural cone over the forgetful functor Under X ⥤ T with cone point X.

                                          Equations
                                          Instances For
                                            @[simp]
                                            theorem CategoryTheory.Under.map_obj_right {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X Y : T} {f : X Y} {U : CategoryTheory.Under Y} :
                                            ((CategoryTheory.Under.map f).obj U).right = U.right
                                            @[simp]
                                            theorem CategoryTheory.Under.map_map_right {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {X Y : T} {f : X Y} {U V : CategoryTheory.Under Y} {g : U V} :
                                            ((CategoryTheory.Under.map f).map g).right = g.right

                                            This section proves various equalities between functors that demonstrate, for instance, that under categories assemble into a functor mapFunctor : Tᵒᵖ ⥤ Cat.

                                            Mapping by f and then forgetting is the same as forgetting.

                                            Mapping by the composite morphism f ≫ g is the same as mapping by f then by g.

                                            If f = g, then map f is naturally isomorphic to map g.

                                            Equations
                                            Instances For
                                              @[simp]
                                              @[simp]

                                              The functor defined by the under categories.

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

                                                If k.right is a monomorphism, then k is a monomorphism. In other words, Under.forget X reflects epimorphisms. The converse does not hold without additional assumptions on the underlying category, see CategoryTheory.Under.mono_right_of_mono.

                                                If k.right is an epimorphism, then k is an epimorphism. In other words, Under.forget X reflects epimorphisms. The converse of CategoryTheory.Under.epi_right_of_epi.

                                                This lemma is not an instance, to avoid loops in type class inference.

                                                If k is an epimorphism, then k.right is an epimorphism. In other words, Under.forget X preserves epimorphisms. The converse of CategoryTheory.under.epi_of_epi_right.

                                                A functor F : T ⥤ D induces a functor Under X ⥤ Under (F.obj X) in the obvious way.

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

                                                  A natural transformation F ⟶ G induces a natural transformation on Under X up to Under.map.

                                                  Equations
                                                  Instances For

                                                    If F and G are naturally isomorphic, then Under.post F and Under.post G are also naturally isomorphic up to Under.map

                                                    Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem CategoryTheory.Under.postCongr_hom_app_right {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {X : T} {F G : CategoryTheory.Functor T D} (e : F G) (X✝ : CategoryTheory.Under X) :
                                                      ((CategoryTheory.Under.postCongr e).hom.app X✝).right = e.hom.app X✝.right
                                                      @[simp]
                                                      theorem CategoryTheory.Under.postCongr_inv_app_right {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {X : T} {F G : CategoryTheory.Functor T D} (e : F G) (X✝ : CategoryTheory.Under X) :
                                                      ((CategoryTheory.Under.postCongr e).inv.app X✝).right = e.inv.app X✝.right

                                                      An equivalence of categories induces an equivalence on under categories.

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

                                                        Reinterpreting an F-structured arrow X ⟶ F.obj d as an arrow under X induces a functor StructuredArrow X F ⥤ Under X.

                                                        Equations
                                                        Instances For

                                                          An equivalence F induces an equivalence StructuredArrow X F ≌ Under X.

                                                          def CategoryTheory.Functor.toOver {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {S : Type u₂} [CategoryTheory.Category.{v₂, u₂} S] (F : CategoryTheory.Functor S T) (X : T) (f : (Y : S) → F.obj Y X) (h : ∀ {Y Z : S} (g : Y Z), CategoryTheory.CategoryStruct.comp (F.map g) (f Z) = f Y) :

                                                          Given X : T, to upgrade a functor F : S ⥤ T to a functor S ⥤ Over X, it suffices to provide maps F.obj Y ⟶ X for all Y making the obvious triangles involving all F.map g commute.

                                                          Equations
                                                          Instances For
                                                            @[simp]
                                                            theorem CategoryTheory.Functor.toOver_obj_left {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {S : Type u₂} [CategoryTheory.Category.{v₂, u₂} S] (F : CategoryTheory.Functor S T) (X : T) (f : (Y : S) → F.obj Y X) (h : ∀ {Y Z : S} (g : Y Z), CategoryTheory.CategoryStruct.comp (F.map g) (f Z) = f Y) (Y : S) :
                                                            ((F.toOver X f h).obj Y).left = F.obj Y
                                                            @[simp]
                                                            theorem CategoryTheory.Functor.toOver_map_left {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {S : Type u₂} [CategoryTheory.Category.{v₂, u₂} S] (F : CategoryTheory.Functor S T) (X : T) (f : (Y : S) → F.obj Y X) (h : ∀ {Y Z : S} (g : Y Z), CategoryTheory.CategoryStruct.comp (F.map g) (f Z) = f Y) {X✝ Y✝ : S} (g : X✝ Y✝) :
                                                            ((F.toOver X f h).map g).left = F.map g
                                                            def CategoryTheory.Functor.toOverCompForget {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {S : Type u₂} [CategoryTheory.Category.{v₂, u₂} S] (F : CategoryTheory.Functor S T) (X : T) (f : (Y : S) → F.obj Y X) (h : ∀ {Y Z : S} (g : Y Z), CategoryTheory.CategoryStruct.comp (F.map g) (f Z) = f Y) :
                                                            (F.toOver X f ).comp (CategoryTheory.Over.forget X) F

                                                            Upgrading a functor S ⥤ T to a functor S ⥤ Over X and composing with the forgetful functor Over X ⥤ T recovers the original functor.

                                                            Equations
                                                            Instances For
                                                              @[simp]
                                                              theorem CategoryTheory.Functor.toOver_comp_forget {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {S : Type u₂} [CategoryTheory.Category.{v₂, u₂} S] (F : CategoryTheory.Functor S T) (X : T) (f : (Y : S) → F.obj Y X) (h : ∀ {Y Z : S} (g : Y Z), CategoryTheory.CategoryStruct.comp (F.map g) (f Z) = f Y) :
                                                              (F.toOver X f ).comp (CategoryTheory.Over.forget X) = F
                                                              def CategoryTheory.Functor.toUnder {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {S : Type u₂} [CategoryTheory.Category.{v₂, u₂} S] (F : CategoryTheory.Functor S T) (X : T) (f : (Y : S) → X F.obj Y) (h : ∀ {Y Z : S} (g : Y Z), CategoryTheory.CategoryStruct.comp (f Y) (F.map g) = f Z) :

                                                              Given X : T, to upgrade a functor F : S ⥤ T to a functor S ⥤ Under X, it suffices to provide maps X ⟶ F.obj Y for all Y making the obvious triangles involving all F.map g commute.

                                                              Equations
                                                              Instances For
                                                                @[simp]
                                                                theorem CategoryTheory.Functor.toUnder_obj_right {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {S : Type u₂} [CategoryTheory.Category.{v₂, u₂} S] (F : CategoryTheory.Functor S T) (X : T) (f : (Y : S) → X F.obj Y) (h : ∀ {Y Z : S} (g : Y Z), CategoryTheory.CategoryStruct.comp (f Y) (F.map g) = f Z) (Y : S) :
                                                                ((F.toUnder X f h).obj Y).right = F.obj Y
                                                                @[simp]
                                                                theorem CategoryTheory.Functor.toUnder_map_right {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {S : Type u₂} [CategoryTheory.Category.{v₂, u₂} S] (F : CategoryTheory.Functor S T) (X : T) (f : (Y : S) → X F.obj Y) (h : ∀ {Y Z : S} (g : Y Z), CategoryTheory.CategoryStruct.comp (f Y) (F.map g) = f Z) {X✝ Y✝ : S} (g : X✝ Y✝) :
                                                                ((F.toUnder X f h).map g).right = F.map g
                                                                def CategoryTheory.Functor.toUnderCompForget {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {S : Type u₂} [CategoryTheory.Category.{v₂, u₂} S] (F : CategoryTheory.Functor S T) (X : T) (f : (Y : S) → X F.obj Y) (h : ∀ {Y Z : S} (g : Y Z), CategoryTheory.CategoryStruct.comp (f Y) (F.map g) = f Z) :
                                                                (F.toUnder X f ).comp (CategoryTheory.Under.forget X) F

                                                                Upgrading a functor S ⥤ T to a functor S ⥤ Under X and composing with the forgetful functor Under X ⥤ T recovers the original functor.

                                                                Equations
                                                                Instances For
                                                                  @[simp]
                                                                  theorem CategoryTheory.Functor.toUnder_comp_forget {T : Type u₁} [CategoryTheory.Category.{v₁, u₁} T] {S : Type u₂} [CategoryTheory.Category.{v₂, u₂} S] (F : CategoryTheory.Functor S T) (X : T) (f : (Y : S) → X F.obj Y) (h : ∀ {Y Z : S} (g : Y Z), CategoryTheory.CategoryStruct.comp (f Y) (F.map g) = f Z) :
                                                                  (F.toUnder X f ).comp (CategoryTheory.Under.forget X) = F

                                                                  A functor from the structured arrow category on the projection functor for any structured arrow category.

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

                                                                    Characterization of the structured arrow category on the projection functor of any structured arrow category.

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

                                                                      The canonical functor from the structured arrow category on the diagonal functor T ⥤ T × T to the structured arrow category on Under.forget.

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

                                                                        Characterization of the structured arrow category on the diagonal functor T ⥤ T × T.

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

                                                                          A version of StructuredArrow.ofDiagEquivalence with the roles of the first and second projection swapped.

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

                                                                            The inverse functor used to define the equivalence ofCommaSndEquivalence.

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

                                                                              There is a canonical equivalence between the structured arrow category with domain c on the functor Comma.fst F G : Comma F G ⥤ F and the comma category over Under.forget c ⋙ F : Under c ⥤ T and G.

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

                                                                                A functor from the costructured arrow category on the projection functor for any costructured arrow category.

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

                                                                                  Characterization of the costructured arrow category on the projection functor of any costructured arrow category.

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

                                                                                    The canonical functor from the costructured arrow category on the diagonal functor T ⥤ T × T to the costructured arrow category on Under.forget.

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

                                                                                      Characterization of the costructured arrow category on the diagonal functor T ⥤ T × T.

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

                                                                                        A version of CostructuredArrow.ofDiagEquivalence with the roles of the first and second projection swapped.

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

                                                                                          The inverse functor used to define the equivalence ofCommaFstEquivalence.

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

                                                                                            There is a canonical equivalence between the costructured arrow category with codomain c on the functor Comma.fst F G : Comma F G ⥤ F and the comma category over Over.forget c ⋙ F : Over c ⥤ T and G.

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

                                                                                              The canonical functor by reversing structure arrows.

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

                                                                                                The canonical functor by reversing structure arrows.

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

                                                                                                  Over.opToOpUnder is an equivalence of categories.

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

                                                                                                    The canonical functor by reversing structure arrows.

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

                                                                                                      The canonical functor by reversing structure arrows.

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

                                                                                                        Under.opToOpOver is an equivalence of categories.

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