Documentation

Mathlib.CategoryTheory.Limits.Shapes.Pullback.Cospan

Cospan & Span #

We define a category WalkingCospan (resp. WalkingSpan), which is the index category for the given data for a pullback (resp. pushout) diagram. Convenience methods cospan f g and span f g construct functors from the walking (co)span, hitting the given morphisms.

References #

@[reducible, inline]

The type of objects for the diagram indexing a pullback, defined as a special case of WidePullbackShape.

Instances For
    @[reducible, match_pattern, inline]

    The left point of the walking cospan.

    Instances For
      @[reducible, match_pattern, inline]

      The right point of the walking cospan.

      Instances For
        @[reducible, match_pattern, inline]

        The central point of the walking cospan.

        Instances For
          @[reducible, inline]

          The type of objects for the diagram indexing a pushout, defined as a special case of WidePushoutShape.

          Instances For
            @[reducible, match_pattern, inline]

            The left point of the walking span.

            Instances For
              @[reducible, match_pattern, inline]

              The right point of the walking span.

              Instances For
                @[reducible, match_pattern, inline]

                The central point of the walking span.

                Instances For
                  @[reducible, inline]

                  The type of arrows for the diagram indexing a pullback.

                  Instances For
                    @[reducible, match_pattern, inline]

                    The left arrow of the walking cospan.

                    Instances For
                      @[reducible, match_pattern, inline]

                      The right arrow of the walking cospan.

                      Instances For
                        @[reducible, match_pattern, inline]

                        The identity arrows of the walking cospan.

                        Instances For
                          @[reducible, inline]

                          The type of arrows for the diagram indexing a pushout.

                          Instances For
                            @[reducible, match_pattern, inline]

                            The left arrow of the walking span.

                            Instances For
                              @[reducible, match_pattern, inline]

                              The right arrow of the walking span.

                              Instances For
                                @[reducible, match_pattern, inline]

                                The identity arrows of the walking span.

                                Instances For

                                  To construct an isomorphism of cones over the walking cospan, it suffices to construct an isomorphism of the cone points and check it commutes with the legs to left and right.

                                  Instances For

                                    To construct an isomorphism of cocones over the walking span, it suffices to construct an isomorphism of the cocone points and check it commutes with the legs from left and right.

                                    Instances For
                                      def CategoryTheory.Limits.cospan {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Z) (g : Y Z) :

                                      cospan f g is the functor from the walking cospan hitting f and g.

                                      Instances For
                                        def CategoryTheory.Limits.span {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Y) (g : X Z) :

                                        span f g is the functor from the walking span hitting f and g.

                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.Limits.cospan_left {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Z) (g : Y Z) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.span_left {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Y) (g : X Z) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.cospan_right {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Z) (g : Y Z) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.span_right {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Y) (g : X Z) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.cospan_one {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Z) (g : Y Z) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.span_zero {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Y) (g : X Z) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.cospan_map_inl {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Z) (g : Y Z) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.span_map_fst {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Y) (g : X Z) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.cospan_map_inr {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Z) (g : Y Z) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.span_map_snd {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Y) (g : X Z) :
                                          theorem CategoryTheory.Limits.span_map_id {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Y) (g : X Z) (w : WalkingSpan) :

                                          Every diagram indexing a pullback is naturally isomorphic (actually, equal) to a cospan

                                          Instances For

                                            Every diagram indexing a pushout is naturally isomorphic (actually, equal) to a span

                                            Instances For
                                              def CategoryTheory.Limits.cospanCompIso {C : Type u} [Category.{v, u} C] {D : Type u₂} [Category.{v₂, u₂} D] (F : Functor C D) {X Y Z : C} (f : X Z) (g : Y Z) :
                                              (cospan f g).comp F cospan (F.map f) (F.map g)

                                              A functor applied to a cospan is a cospan.

                                              Instances For
                                                def CategoryTheory.Limits.spanCompIso {C : Type u} [Category.{v, u} C] {D : Type u₂} [Category.{v₂, u₂} D] (F : Functor C D) {X Y Z : C} (f : X Y) (g : X Z) :
                                                (span f g).comp F span (F.map f) (F.map g)

                                                A functor applied to a span is a span.

                                                Instances For
                                                  @[simp]
                                                  theorem CategoryTheory.Limits.spanCompIso_app_left {C : Type u} [Category.{v, u} C] {D : Type u₂} [Category.{v₂, u₂} D] (F : Functor C D) {X Y Z : C} (f : X Y) (g : X Z) :
                                                  @[simp]
                                                  theorem CategoryTheory.Limits.spanCompIso_app_right {C : Type u} [Category.{v, u} C] {D : Type u₂} [Category.{v₂, u₂} D] (F : Functor C D) {X Y Z : C} (f : X Y) (g : X Z) :
                                                  @[simp]
                                                  theorem CategoryTheory.Limits.spanCompIso_app_zero {C : Type u} [Category.{v, u} C] {D : Type u₂} [Category.{v₂, u₂} D] (F : Functor C D) {X Y Z : C} (f : X Y) (g : X Z) :
                                                  def CategoryTheory.Limits.cospanExt {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Z} {g : Y Z} {f' : X' Z'} {g' : Y' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iZ.hom) (wg : CategoryStruct.comp iY.hom g' = CategoryStruct.comp g iZ.hom) :
                                                  cospan f g cospan f' g'

                                                  Construct an isomorphism of cospans from components.

                                                  Instances For
                                                    @[simp]
                                                    theorem CategoryTheory.Limits.cospanExt_app_left {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Z} {g : Y Z} {f' : X' Z'} {g' : Y' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iZ.hom) (wg : CategoryStruct.comp iY.hom g' = CategoryStruct.comp g iZ.hom) :
                                                    (cospanExt iX iY iZ wf wg).app WalkingCospan.left = iX
                                                    @[simp]
                                                    theorem CategoryTheory.Limits.cospanExt_app_right {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Z} {g : Y Z} {f' : X' Z'} {g' : Y' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iZ.hom) (wg : CategoryStruct.comp iY.hom g' = CategoryStruct.comp g iZ.hom) :
                                                    (cospanExt iX iY iZ wf wg).app WalkingCospan.right = iY
                                                    @[simp]
                                                    theorem CategoryTheory.Limits.cospanExt_app_one {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Z} {g : Y Z} {f' : X' Z'} {g' : Y' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iZ.hom) (wg : CategoryStruct.comp iY.hom g' = CategoryStruct.comp g iZ.hom) :
                                                    (cospanExt iX iY iZ wf wg).app WalkingCospan.one = iZ
                                                    @[simp]
                                                    theorem CategoryTheory.Limits.cospanExt_hom_app_left {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Z} {g : Y Z} {f' : X' Z'} {g' : Y' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iZ.hom) (wg : CategoryStruct.comp iY.hom g' = CategoryStruct.comp g iZ.hom) :
                                                    (cospanExt iX iY iZ wf wg).hom.app WalkingCospan.left = iX.hom
                                                    @[simp]
                                                    theorem CategoryTheory.Limits.cospanExt_hom_app_right {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Z} {g : Y Z} {f' : X' Z'} {g' : Y' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iZ.hom) (wg : CategoryStruct.comp iY.hom g' = CategoryStruct.comp g iZ.hom) :
                                                    (cospanExt iX iY iZ wf wg).hom.app WalkingCospan.right = iY.hom
                                                    @[simp]
                                                    theorem CategoryTheory.Limits.cospanExt_hom_app_one {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Z} {g : Y Z} {f' : X' Z'} {g' : Y' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iZ.hom) (wg : CategoryStruct.comp iY.hom g' = CategoryStruct.comp g iZ.hom) :
                                                    (cospanExt iX iY iZ wf wg).hom.app WalkingCospan.one = iZ.hom
                                                    @[simp]
                                                    theorem CategoryTheory.Limits.cospanExt_inv_app_left {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Z} {g : Y Z} {f' : X' Z'} {g' : Y' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iZ.hom) (wg : CategoryStruct.comp iY.hom g' = CategoryStruct.comp g iZ.hom) :
                                                    (cospanExt iX iY iZ wf wg).inv.app WalkingCospan.left = iX.inv
                                                    @[simp]
                                                    theorem CategoryTheory.Limits.cospanExt_inv_app_right {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Z} {g : Y Z} {f' : X' Z'} {g' : Y' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iZ.hom) (wg : CategoryStruct.comp iY.hom g' = CategoryStruct.comp g iZ.hom) :
                                                    (cospanExt iX iY iZ wf wg).inv.app WalkingCospan.right = iY.inv
                                                    @[simp]
                                                    theorem CategoryTheory.Limits.cospanExt_inv_app_one {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Z} {g : Y Z} {f' : X' Z'} {g' : Y' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iZ.hom) (wg : CategoryStruct.comp iY.hom g' = CategoryStruct.comp g iZ.hom) :
                                                    (cospanExt iX iY iZ wf wg).inv.app WalkingCospan.one = iZ.inv
                                                    def CategoryTheory.Limits.spanExt {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Y} {g : X Z} {f' : X' Y'} {g' : X' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iY.hom) (wg : CategoryStruct.comp iX.hom g' = CategoryStruct.comp g iZ.hom) :
                                                    span f g span f' g'

                                                    Construct an isomorphism of spans from components.

                                                    Instances For
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.spanExt_app_left {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Y} {g : X Z} {f' : X' Y'} {g' : X' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iY.hom) (wg : CategoryStruct.comp iX.hom g' = CategoryStruct.comp g iZ.hom) :
                                                      (spanExt iX iY iZ wf wg).app WalkingSpan.left = iY
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.spanExt_app_right {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Y} {g : X Z} {f' : X' Y'} {g' : X' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iY.hom) (wg : CategoryStruct.comp iX.hom g' = CategoryStruct.comp g iZ.hom) :
                                                      (spanExt iX iY iZ wf wg).app WalkingSpan.right = iZ
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.spanExt_app_one {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Y} {g : X Z} {f' : X' Y'} {g' : X' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iY.hom) (wg : CategoryStruct.comp iX.hom g' = CategoryStruct.comp g iZ.hom) :
                                                      (spanExt iX iY iZ wf wg).app WalkingSpan.zero = iX
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.spanExt_hom_app_left {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Y} {g : X Z} {f' : X' Y'} {g' : X' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iY.hom) (wg : CategoryStruct.comp iX.hom g' = CategoryStruct.comp g iZ.hom) :
                                                      (spanExt iX iY iZ wf wg).hom.app WalkingSpan.left = iY.hom
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.spanExt_hom_app_right {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Y} {g : X Z} {f' : X' Y'} {g' : X' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iY.hom) (wg : CategoryStruct.comp iX.hom g' = CategoryStruct.comp g iZ.hom) :
                                                      (spanExt iX iY iZ wf wg).hom.app WalkingSpan.right = iZ.hom
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.spanExt_hom_app_zero {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Y} {g : X Z} {f' : X' Y'} {g' : X' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iY.hom) (wg : CategoryStruct.comp iX.hom g' = CategoryStruct.comp g iZ.hom) :
                                                      (spanExt iX iY iZ wf wg).hom.app WalkingSpan.zero = iX.hom
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.spanExt_inv_app_left {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Y} {g : X Z} {f' : X' Y'} {g' : X' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iY.hom) (wg : CategoryStruct.comp iX.hom g' = CategoryStruct.comp g iZ.hom) :
                                                      (spanExt iX iY iZ wf wg).inv.app WalkingSpan.left = iY.inv
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.spanExt_inv_app_right {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Y} {g : X Z} {f' : X' Y'} {g' : X' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iY.hom) (wg : CategoryStruct.comp iX.hom g' = CategoryStruct.comp g iZ.hom) :
                                                      (spanExt iX iY iZ wf wg).inv.app WalkingSpan.right = iZ.inv
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.spanExt_inv_app_zero {C : Type u} [Category.{v, u} C] {X Y Z X' Y' Z' : C} (iX : X X') (iY : Y Y') (iZ : Z Z') {f : X Y} {g : X Z} {f' : X' Y'} {g' : X' Z'} (wf : CategoryStruct.comp iX.hom f' = CategoryStruct.comp f iY.hom) (wg : CategoryStruct.comp iX.hom g' = CategoryStruct.comp g iZ.hom) :
                                                      (spanExt iX iY iZ wf wg).inv.app WalkingSpan.zero = iX.inv