Documentation

Mathlib.CategoryTheory.Limits.Shapes.Diagonal

The diagonal object of a morphism. #

We provide various API and isomorphisms considering the diagonal object Δ_{Y/X} := pullback f f of a morphism f : X ⟶ Y.

@[reducible, inline]
abbrev CategoryTheory.Limits.pullback.diagonalObj {C : Type u_1} [Category.{u_2, u_1} C] {X Y : C} (f : X Y) [HasPullback f f] :
C

The diagonal object of a morphism f : X ⟶ Y is Δ_{X/Y} := pullback f f.

Equations
    Instances For

      The diagonal morphism X ⟶ Δ_{X/Y} for a morphism f : X ⟶ Y.

      Equations
        Instances For
          @[simp]
          theorem CategoryTheory.Limits.pullback.diagonal_fst_assoc {C : Type u_1} [Category.{u_2, u_1} C] {X Y : C} (f : X Y) [HasPullback f f] {Z : C} (h : X Z) :
          @[simp]
          theorem CategoryTheory.Limits.pullback.diagonal_snd_assoc {C : Type u_1} [Category.{u_2, u_1} C] {X Y : C} (f : X Y) [HasPullback f f] {Z : C} (h : X Z) :

          The two projections Δ_{X/Y} ⟶ X form a kernel pair for f : X ⟶ Y.

          @[reducible, inline]
          abbrev CategoryTheory.Limits.pullbackDiagonalMapIso.hom {C : Type u_1} [Category.{u_2, u_1} C] {X Y : C} [HasPullbacks C] {U V₁ V₂ : C} (f : X Y) (i : U Y) (i₁ : V₁ pullback f i) (i₂ : V₂ pullback f i) [HasPullback i₁ i₂] :

          The underlying map of pullbackDiagonalIso

          Equations
            Instances For
              @[reducible, inline]
              abbrev CategoryTheory.Limits.pullbackDiagonalMapIso.inv {C : Type u_1} [Category.{u_2, u_1} C] {X Y : C} [HasPullbacks C] {U V₁ V₂ : C} (f : X Y) (i : U Y) (i₁ : V₁ pullback f i) (i₂ : V₂ pullback f i) [HasPullback i₁ i₂] :

              The underlying inverse of pullbackDiagonalIso

              Equations
                Instances For
                  def CategoryTheory.Limits.pullbackDiagonalMapIso {C : Type u_1} [Category.{u_2, u_1} C] {X Y : C} [HasPullbacks C] {U V₁ V₂ : C} (f : X Y) (i : U Y) (i₁ : V₁ pullback f i) (i₂ : V₂ pullback f i) [HasPullback i₁ i₂] :

                  This iso witnesses the fact that given f : X ⟶ Y, i : U ⟶ Y, and i₁ : V₁ ⟶ X ×[Y] U, i₂ : V₂ ⟶ X ×[Y] U, the diagram

                  V₁ ×[X ×[Y] U] V₂ ⟶ V₁ ×[U] V₂
                          |                 |
                          |                 |
                          ↓                 ↓
                          X         ⟶   X ×[Y] X
                  

                  is a pullback square. Also see pullback_fst_map_snd_isPullback.

                  Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Limits.pullbackDiagonalMapIso.inv_fst {C : Type u_1} [Category.{u_2, u_1} C] {X Y : C} [HasPullbacks C] {U V₁ V₂ : C} (f : X Y) (i : U Y) (i₁ : V₁ pullback f i) (i₂ : V₂ pullback f i) [HasPullback i₁ i₂] :
                      @[simp]
                      theorem CategoryTheory.Limits.pullback_fst_map_snd_isPullback {C : Type u_1} [Category.{u_2, u_1} C] {X Y : C} [HasPullbacks C] {U V₁ V₂ : C} (f : X Y) (i : U Y) (i₁ : V₁ pullback f i) (i₂ : V₂ pullback f i) [HasPullback i₁ i₂] :

                      This iso witnesses the fact that given f : X ⟶ T, g : Y ⟶ T, and i : T ⟶ S, the diagram

                      X ×ₜ Y ⟶ X ×ₛ Y
                        |         |
                        |         |
                        ↓         ↓
                        T    ⟶  T ×ₛ T
                      

                      is a pullback square. Also see pullback_map_diagonal_isPullback.

                      Equations
                        Instances For

                          The diagonal object of X ×[Z] Y ⟶ X is isomorphic to Δ_{Y/Z} ×[Z] X.

                          Equations
                            Instances For

                              Informally, this is a special case of pullback_map_diagonal_isPullback for T = X.

                              def CategoryTheory.Limits.pullbackFstFstIso {C : Type u_1} [Category.{u_2, u_1} C] [HasPullbacks C] {X Y S X' Y' S' : C} (f : X S) (g : Y S) (f' : X' S') (g' : Y' S') (i₁ : X X') (i₂ : Y Y') (i₃ : S S') (e₁ : CategoryStruct.comp f i₃ = CategoryStruct.comp i₁ f') (e₂ : CategoryStruct.comp g i₃ = CategoryStruct.comp i₂ g') [Mono i₃] :

                              Given the following diagram with S ⟶ S' a monomorphism,

                                  X ⟶ X'
                                    ↘      ↘
                                      S ⟶ S'
                                    ↗      ↗
                                  Y ⟶ Y'
                              

                              This iso witnesses the fact that

                                    X ×[S] Y ⟶ (X' ×[S'] Y') ×[Y'] Y
                                        |                  |
                                        |                  |
                                        ↓                  ↓
                              (X' ×[S'] Y') ×[X'] X ⟶ X' ×[S'] Y'
                              

                              is a pullback square. The diagonal map of this square is pullback.map. Also see pullback_lift_map_is_pullback.

                              Equations
                                Instances For
                                  @[simp]
                                  theorem CategoryTheory.Limits.pullbackFstFstIso_inv {C : Type u_1} [Category.{u_2, u_1} C] [HasPullbacks C] {X Y S X' Y' S' : C} (f : X S) (g : Y S) (f' : X' S') (g' : Y' S') (i₁ : X X') (i₂ : Y Y') (i₃ : S S') (e₁ : CategoryStruct.comp f i₃ = CategoryStruct.comp i₁ f') (e₂ : CategoryStruct.comp g i₃ = CategoryStruct.comp i₂ g') [Mono i₃] :
                                  (pullbackFstFstIso f g f' g' i₁ i₂ i₃ e₁ e₂).inv = pullback.lift (pullback.lift (pullback.map f g f' g' i₁ i₂ i₃ e₁ e₂) (pullback.fst f g) ) (pullback.lift (pullback.map f g f' g' i₁ i₂ i₃ e₁ e₂) (pullback.snd f g) )
                                  @[simp]
                                  theorem CategoryTheory.Limits.pullbackFstFstIso_hom {C : Type u_1} [Category.{u_2, u_1} C] [HasPullbacks C] {X Y S X' Y' S' : C} (f : X S) (g : Y S) (f' : X' S') (g' : Y' S') (i₁ : X X') (i₂ : Y Y') (i₃ : S S') (e₁ : CategoryStruct.comp f i₃ = CategoryStruct.comp i₁ f') (e₂ : CategoryStruct.comp g i₃ = CategoryStruct.comp i₂ g') [Mono i₃] :
                                  theorem CategoryTheory.Limits.pullback_map_eq_pullbackFstFstIso_inv {C : Type u_1} [Category.{u_2, u_1} C] [HasPullbacks C] {X Y S X' Y' S' : C} (f : X S) (g : Y S) (f' : X' S') (g' : Y' S') (i₁ : X X') (i₂ : Y Y') (i₃ : S S') (e₁ : CategoryStruct.comp f i₃ = CategoryStruct.comp i₁ f') (e₂ : CategoryStruct.comp g i₃ = CategoryStruct.comp i₂ g') [Mono i₃] :
                                  pullback.map f g f' g' i₁ i₂ i₃ e₁ e₂ = CategoryStruct.comp (pullbackFstFstIso f g f' g' i₁ i₂ i₃ e₁ e₂).inv (CategoryStruct.comp (pullback.snd (pullback.fst (pullback.fst f' g') i₁) (pullback.fst (pullback.snd f' g') i₂)) (pullback.fst (pullback.snd f' g') i₂))
                                  theorem CategoryTheory.Limits.pullback_lift_map_isPullback {C : Type u_1} [Category.{u_2, u_1} C] [HasPullbacks C] {X Y S X' Y' S' : C} (f : X S) (g : Y S) (f' : X' S') (g' : Y' S') (i₁ : X X') (i₂ : Y Y') (i₃ : S S') (e₁ : CategoryStruct.comp f i₃ = CategoryStruct.comp i₁ f') (e₂ : CategoryStruct.comp g i₃ = CategoryStruct.comp i₂ g') [Mono i₃] :
                                  IsPullback (pullback.lift (pullback.map f g f' g' i₁ i₂ i₃ e₁ e₂) (pullback.fst f g) ) (pullback.lift (pullback.map f g f' g' i₁ i₂ i₃ e₁ e₂) (pullback.snd f g) ) (pullback.fst (pullback.fst f' g') i₁) (pullback.fst (pullback.snd f' g') i₂)