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.

Equations
    Instances For
      @[reducible, match_pattern, inline]

      The left point of the walking cospan.

      Equations
        Instances For
          @[reducible, match_pattern, inline]

          The right point of the walking cospan.

          Equations
            Instances For
              @[reducible, match_pattern, inline]

              The central point of the walking cospan.

              Equations
                Instances For
                  @[reducible, inline]

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

                  Equations
                    Instances For
                      @[reducible, match_pattern, inline]

                      The left point of the walking span.

                      Equations
                        Instances For
                          @[reducible, match_pattern, inline]

                          The right point of the walking span.

                          Equations
                            Instances For
                              @[reducible, match_pattern, inline]

                              The central point of the walking span.

                              Equations
                                Instances For
                                  @[reducible, inline]

                                  The type of arrows for the diagram indexing a pullback.

                                  Equations
                                    Instances For
                                      @[reducible, match_pattern, inline]

                                      The left arrow of the walking cospan.

                                      Equations
                                        Instances For
                                          @[reducible, match_pattern, inline]

                                          The right arrow of the walking cospan.

                                          Equations
                                            Instances For
                                              @[reducible, match_pattern, inline]

                                              The identity arrows of the walking cospan.

                                              Equations
                                                Instances For
                                                  @[reducible, inline]

                                                  The type of arrows for the diagram indexing a pushout.

                                                  Equations
                                                    Instances For
                                                      @[reducible, match_pattern, inline]

                                                      The left arrow of the walking span.

                                                      Equations
                                                        Instances For
                                                          @[reducible, match_pattern, inline]

                                                          The right arrow of the walking span.

                                                          Equations
                                                            Instances For
                                                              @[reducible, match_pattern, inline]

                                                              The identity arrows of the walking span.

                                                              Equations
                                                                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.

                                                                  Equations
                                                                    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.

                                                                      Equations
                                                                        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.

                                                                          Equations
                                                                            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.

                                                                              Equations
                                                                                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.cospan_map_id {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Z) (g : Y Z) (w : WalkingCospan) :
                                                                                  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

                                                                                  Equations
                                                                                    Instances For

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

                                                                                      Equations
                                                                                        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.

                                                                                          Equations
                                                                                            Instances For
                                                                                              @[simp]
                                                                                              @[simp]
                                                                                              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.

                                                                                              Equations
                                                                                                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) :
                                                                                                  @[simp]
                                                                                                  @[simp]
                                                                                                  @[simp]
                                                                                                  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.

                                                                                                  Equations
                                                                                                    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) :
                                                                                                      @[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) :
                                                                                                      @[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.

                                                                                                      Equations
                                                                                                        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