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
      • One or more equations did not get rendered due to their size.
      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
        • One or more equations did not get rendered due to their size.
        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
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            @[simp]
            @[simp]
            @[simp]
            @[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.pullbackDiagonalMapIso.inv_fst_assoc {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₂] {Z : C} (h : X Z) :
            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
            • One or more equations did not get rendered due to their size.
            Instances For

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

              Equations
              • One or more equations did not get rendered due to their size.
              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
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[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₃] :
                  (pullbackFstFstIso f g f' g' i₁ i₂ i₃ e₁ e₂).hom = pullback.lift (CategoryStruct.comp (pullback.fst (pullback.fst (pullback.fst f' g') i₁) (pullback.fst (pullback.snd f' g') i₂)) (pullback.snd (pullback.fst f' g') i₁)) (CategoryStruct.comp (pullback.snd (pullback.fst (pullback.fst f' g') i₁) (pullback.fst (pullback.snd f' g') i₂)) (pullback.snd (pullback.snd f' g') i₂))
                  @[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) )
                  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₂)