Documentation

Mathlib.CategoryTheory.LocallyCartesianClosed.ChosenPullbacksAlong

Chosen pullbacks along a morphism #

Main declarations #

Main results #

class CategoryTheory.ChosenPullbacksAlong {C : Type u₁} [Category.{v₁, u₁} C] {Y X : C} (f : Y X) :
Type (max u₁ v₁)

A functorial choice of pullbacks along a morphism f : Y ⟶ X in C given by a functor Over X ⥤ Over Y which is a right adjoint to the functor Over.map f.

Instances
    @[reducible, inline]
    abbrev CategoryTheory.ChosenPullbacks (C : Type u₁) [Category.{v₁, u₁} C] :
    Type (max u₁ v₁)

    A category has chosen pullbacks if every morphism has a chosen pullback.

    Equations
    Instances For

      Relating the existing noncomputable HasPullbacksAlong typeclass to ChosenPullbacksAlong.

      Equations
      Instances For

        The identity morphism has a functorial choice of pullbacks.

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

          Any chosen pullback functor of the identity morphism is naturally isomorphic to the identity functor.

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

            Every isomorphism has a functorial choice of pullbacks.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem CategoryTheory.ChosenPullbacksAlong.iso_pullback_map {C : Type u₁} [Category.{v₁, u₁} C] {Y X : C} (f : Y X) {Y✝ Z : Over X} (g : Y✝ Z) :
              @[simp]
              theorem CategoryTheory.ChosenPullbacksAlong.iso_mapPullbackAdj_counit_app {C : Type u₁} [Category.{v₁, u₁} C] {Y X : C} (f : Y X) (U : Over X) :
              (mapPullbackAdj f.hom).counit.app U = Over.homMk (CategoryStruct.id (({ obj := fun (Z : Over X) => Over.mk (CategoryStruct.comp Z.hom f.inv), map := fun {Y_1 Z : Over X} (g : Y_1 Z) => Over.homMk g.left , map_id := , map_comp := }.comp (Over.map f.hom)).obj U).left)

              The inverse of an isomorphism has a functorial choice of pullbacks.

              Equations
              Instances For
                @[simp]
                theorem CategoryTheory.ChosenPullbacksAlong.isoInv_pullback_map_left {C : Type u₁} [Category.{v₁, u₁} C] {Y X : C} (f : Y X) {Y✝ Z : Over Y} (g : Y✝ Z) :

                The composition of morphisms with chosen pullbacks has a chosen pullback.

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

                  Any chosen pullback of a composite of morphisms is naturally isomorphic to the composition of chosen pullback functors.

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

                    In cartesian monoidal categories, any morphism to the terminal tensor unit has a functorial choice of pullbacks.

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

                      In cartesian monoidal categories, the first product projections fst have a functorial choice of pullbacks.

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

                        In cartesian monoidal categories, the second product projections snd have a functorial choice of pullbacks.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[reducible, inline]
                          abbrev CategoryTheory.ChosenPullbacksAlong.pullbackObj {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} (f : Y X) (g : Z X) [ChosenPullbacksAlong g] :
                          C

                          The underlying object of the chosen pullback along g of f.

                          Equations
                          Instances For
                            @[reducible, inline]
                            abbrev CategoryTheory.ChosenPullbacksAlong.fst' {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} (f : Y X) (g : Z X) [ChosenPullbacksAlong g] :

                            A morphism in Over X from the chosen pullback along g of f to Over.mk f.

                            Equations
                            Instances For
                              @[reducible, inline]
                              abbrev CategoryTheory.ChosenPullbacksAlong.fst {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} (f : Y X) (g : Z X) [ChosenPullbacksAlong g] :

                              The first projection from the chosen pullback along g of f to the domain of f.

                              Equations
                              Instances For
                                theorem CategoryTheory.ChosenPullbacksAlong.fst'_left {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} (f : Y X) (g : Z X) [ChosenPullbacksAlong g] :
                                (fst' f g).left = fst f g
                                @[reducible, inline]
                                abbrev CategoryTheory.ChosenPullbacksAlong.snd {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} (f : Y X) (g : Z X) [ChosenPullbacksAlong g] :

                                The second projection from the chosen pullback along g of f to the domain of g.

                                Equations
                                Instances For
                                  @[reducible, inline]
                                  abbrev CategoryTheory.ChosenPullbacksAlong.snd' {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} (f : Y X) (g : Z X) [ChosenPullbacksAlong g] :

                                  A morphism in Over X from the chosen pullback along g of f to Over.mk g.

                                  Equations
                                  Instances For
                                    theorem CategoryTheory.ChosenPullbacksAlong.snd'_left {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} (f : Y X) (g : Z X) [ChosenPullbacksAlong g] :
                                    (snd' f g).left = snd f g
                                    theorem CategoryTheory.ChosenPullbacksAlong.hom_ext {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} (f : Y X) (g : Z X) [ChosenPullbacksAlong g] {W : C} {φ₁ φ₂ : W pullbackObj f g} (h₁ : CategoryStruct.comp φ₁ (fst f g) = CategoryStruct.comp φ₂ (fst f g)) (h₂ : CategoryStruct.comp φ₁ (snd f g) = CategoryStruct.comp φ₂ (snd f g)) :
                                    φ₁ = φ₂
                                    theorem CategoryTheory.ChosenPullbacksAlong.hom_ext_iff {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} {f : Y X} {g : Z X} [ChosenPullbacksAlong g] {W : C} {φ₁ φ₂ : W pullbackObj f g} :
                                    φ₁ = φ₂ CategoryStruct.comp φ₁ (fst f g) = CategoryStruct.comp φ₂ (fst f g) CategoryStruct.comp φ₁ (snd f g) = CategoryStruct.comp φ₂ (snd f g)
                                    def CategoryTheory.ChosenPullbacksAlong.lift {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} {f : Y X} {g : Z X} [ChosenPullbacksAlong g] {W : C} (a : W Y) (b : W Z) (h : CategoryStruct.comp a f = CategoryStruct.comp b g := by cat_disch) :

                                    Given morphisms a : W ⟶ Y and b : W ⟶ Z satisfying a ≫ f = b ≫ g, constructs the unique morphism W ⟶ pullbackObj f g which lifts a and b.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      @[simp]
                                      theorem CategoryTheory.ChosenPullbacksAlong.lift_fst {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} {f : Y X} {g : Z X} [ChosenPullbacksAlong g] {W : C} (a : W Y) (b : W Z) (h : CategoryStruct.comp a f = CategoryStruct.comp b g := by cat_disch) :
                                      CategoryStruct.comp (lift a b h) (fst f g) = a
                                      @[simp]
                                      theorem CategoryTheory.ChosenPullbacksAlong.lift_fst_assoc {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} {f : Y X} {g : Z X} [ChosenPullbacksAlong g] {W : C} (a : W Y) (b : W Z) (h : CategoryStruct.comp a f = CategoryStruct.comp b g := by cat_disch) {Z✝ : C} (h✝ : Y Z✝) :
                                      @[simp]
                                      theorem CategoryTheory.ChosenPullbacksAlong.lift_snd {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} {f : Y X} {g : Z X} [ChosenPullbacksAlong g] {W : C} (a : W Y) (b : W Z) (h : CategoryStruct.comp a f = CategoryStruct.comp b g := by cat_disch) :
                                      CategoryStruct.comp (lift a b h) (snd f g) = b
                                      @[simp]
                                      theorem CategoryTheory.ChosenPullbacksAlong.lift_snd_assoc {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} {f : Y X} {g : Z X} [ChosenPullbacksAlong g] {W : C} (a : W Y) (b : W Z) (h : CategoryStruct.comp a f = CategoryStruct.comp b g := by cat_disch) {Z✝ : C} (h✝ : Z Z✝) :
                                      def CategoryTheory.ChosenPullbacksAlong.pullbackMap {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} (f : Y X) (g : Z X) [ChosenPullbacksAlong g] {Y' Z' X' : C} (f' : Y' X') (g' : Z' X') [ChosenPullbacksAlong g'] (γ₁ : Y' Y) (γ₂ : Z' Z) (γ₃ : X' X) (comm₁ : CategoryStruct.comp f' γ₃ = CategoryStruct.comp γ₁ f := by cat_disch) (comm₂ : CategoryStruct.comp g' γ₃ = CategoryStruct.comp γ₂ g := by cat_disch) :

                                      The functoriality of pullbackObj f g in both arguments: Given a map from the pullback cospans of f' : Y' ⟶ X' and g' : Z' ⟶ X' to the pullback cospan of f : Y ⟶ X and g : Z ⟶ X as in the diagram below

                                      Y' ⟶ Y
                                        ↘   ↘
                                        X' ⟶ X
                                        ↗   ↗
                                      Z' ⟶ Z
                                      

                                      if the morphisms g' and g both have chosen pullbacks, then we get an induced morphism pullbackMap f g f' g' comm₁ comm₂ from the chosen pullback of f' : Y' ⟶ X' along g' to the chosen pullback of f : Y ⟶ X along g. Here comm₁ and comm₂ are the commutativity conditions of the squares in the diagram above.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        @[simp]
                                        theorem CategoryTheory.ChosenPullbacksAlong.pullbackMap_fst {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} {f : Y X} {g : Z X} [ChosenPullbacksAlong g] {Y' Z' X' : C} {f' : Y' X'} {g' : Z' X'} [ChosenPullbacksAlong g'] {γ₁ : Y' Y} {γ₂ : Z' Z} {γ₃ : X' X} (comm₁ : CategoryStruct.comp f' γ₃ = CategoryStruct.comp γ₁ f := by cat_disch) (comm₂ : CategoryStruct.comp g' γ₃ = CategoryStruct.comp γ₂ g := by cat_disch) :
                                        CategoryStruct.comp (pullbackMap f g f' g' γ₁ γ₂ γ₃ comm₁ comm₂) (fst f g) = CategoryStruct.comp (fst f' g') γ₁
                                        @[simp]
                                        theorem CategoryTheory.ChosenPullbacksAlong.pullbackMap_fst_assoc {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} {f : Y X} {g : Z X} [ChosenPullbacksAlong g] {Y' Z' X' : C} {f' : Y' X'} {g' : Z' X'} [ChosenPullbacksAlong g'] {γ₁ : Y' Y} {γ₂ : Z' Z} {γ₃ : X' X} (comm₁ : CategoryStruct.comp f' γ₃ = CategoryStruct.comp γ₁ f := by cat_disch) (comm₂ : CategoryStruct.comp g' γ₃ = CategoryStruct.comp γ₂ g := by cat_disch) {Z✝ : C} (h : Y Z✝) :
                                        CategoryStruct.comp (pullbackMap f g f' g' γ₁ γ₂ γ₃ comm₁ comm₂) (CategoryStruct.comp (fst f g) h) = CategoryStruct.comp (fst f' g') (CategoryStruct.comp γ₁ h)
                                        @[simp]
                                        theorem CategoryTheory.ChosenPullbacksAlong.pullbackMap_snd {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} {f : Y X} {g : Z X} [ChosenPullbacksAlong g] {Y' Z' X' : C} {f' : Y' X'} {g' : Z' X'} [ChosenPullbacksAlong g'] {γ₁ : Y' Y} {γ₂ : Z' Z} {γ₃ : X' X} (comm₁ : CategoryStruct.comp f' γ₃ = CategoryStruct.comp γ₁ f := by cat_disch) (comm₂ : CategoryStruct.comp g' γ₃ = CategoryStruct.comp γ₂ g := by cat_disch) :
                                        CategoryStruct.comp (pullbackMap f g f' g' γ₁ γ₂ γ₃ comm₁ comm₂) (snd f g) = CategoryStruct.comp (snd f' g') γ₂
                                        @[simp]
                                        theorem CategoryTheory.ChosenPullbacksAlong.pullbackMap_snd_assoc {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} {f : Y X} {g : Z X} [ChosenPullbacksAlong g] {Y' Z' X' : C} {f' : Y' X'} {g' : Z' X'} [ChosenPullbacksAlong g'] {γ₁ : Y' Y} {γ₂ : Z' Z} {γ₃ : X' X} (comm₁ : CategoryStruct.comp f' γ₃ = CategoryStruct.comp γ₁ f := by cat_disch) (comm₂ : CategoryStruct.comp g' γ₃ = CategoryStruct.comp γ₂ g := by cat_disch) {Z✝ : C} (h : Z Z✝) :
                                        CategoryStruct.comp (pullbackMap f g f' g' γ₁ γ₂ γ₃ comm₁ comm₂) (CategoryStruct.comp (snd f g) h) = CategoryStruct.comp (snd f' g') (CategoryStruct.comp γ₂ h)
                                        @[simp]
                                        theorem CategoryTheory.ChosenPullbacksAlong.pullbackMap_comp {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} {f : Y X} {g : Z X} [ChosenPullbacksAlong g] {Y' Z' X' Y'' Z'' X'' : C} {f' : Y' X'} {g' : Z' X'} {f'' : Y'' X''} {g'' : Z'' X''} [ChosenPullbacksAlong g'] [ChosenPullbacksAlong g''] {γ₁ : Y' Y} {γ₂ : Z' Z} {γ₃ : X' X} {δ₁ : Y'' Y'} {δ₂ : Z'' Z'} {δ₃ : X'' X'} (comm₁ : CategoryStruct.comp f' γ₃ = CategoryStruct.comp γ₁ f := by cat_disch) (comm₂ : CategoryStruct.comp g' γ₃ = CategoryStruct.comp γ₂ g := by cat_disch) (comm₁' : CategoryStruct.comp f'' δ₃ = CategoryStruct.comp δ₁ f' := by cat_disch) (comm₂' : CategoryStruct.comp g'' δ₃ = CategoryStruct.comp δ₂ g' := by cat_disch) :
                                        CategoryStruct.comp (pullbackMap f' g' f'' g'' δ₁ δ₂ δ₃ comm₁' comm₂') (pullbackMap f g f' g' γ₁ γ₂ γ₃ comm₁ comm₂) = pullbackMap f g f'' g'' (CategoryStruct.comp δ₁ γ₁) (CategoryStruct.comp δ₂ γ₂) (CategoryStruct.comp δ₃ γ₃)
                                        @[simp]
                                        theorem CategoryTheory.ChosenPullbacksAlong.pullbackMap_comp_assoc {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} {f : Y X} {g : Z X} [ChosenPullbacksAlong g] {Y' Z' X' Y'' Z'' X'' : C} {f' : Y' X'} {g' : Z' X'} {f'' : Y'' X''} {g'' : Z'' X''} [ChosenPullbacksAlong g'] [ChosenPullbacksAlong g''] {γ₁ : Y' Y} {γ₂ : Z' Z} {γ₃ : X' X} {δ₁ : Y'' Y'} {δ₂ : Z'' Z'} {δ₃ : X'' X'} (comm₁ : CategoryStruct.comp f' γ₃ = CategoryStruct.comp γ₁ f := by cat_disch) (comm₂ : CategoryStruct.comp g' γ₃ = CategoryStruct.comp γ₂ g := by cat_disch) (comm₁' : CategoryStruct.comp f'' δ₃ = CategoryStruct.comp δ₁ f' := by cat_disch) (comm₂' : CategoryStruct.comp g'' δ₃ = CategoryStruct.comp δ₂ g' := by cat_disch) {Z✝ : C} (h : pullbackObj f g Z✝) :
                                        CategoryStruct.comp (pullbackMap f' g' f'' g'' δ₁ δ₂ δ₃ comm₁' comm₂') (CategoryStruct.comp (pullbackMap f g f' g' γ₁ γ₂ γ₃ comm₁ comm₂) h) = CategoryStruct.comp (pullbackMap f g f'' g'' (CategoryStruct.comp δ₁ γ₁) (CategoryStruct.comp δ₂ γ₂) (CategoryStruct.comp δ₃ γ₃) ) h
                                        @[simp]
                                        @[simp]

                                        The canonical pullback cone is a limit cone. Note: this limit cone is computable as lifts are constructed from the data contained in the ChosenPullbackAlong instance, contrary to IsPullback.isLimit, which constructs lifting data from CategoryTheory.Square.IsPullback (a Prop).

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          theorem CategoryTheory.ChosenPullbacksAlong.isPullback {C : Type u₁} [Category.{v₁, u₁} C] {Y Z X : C} (f : Y X) (g : Z X) [ChosenPullbacksAlong g] :
                                          IsPullback (fst f g) (snd f g) f g

                                          If g has a chosen pullback, then Over.ChosenPullbacksAlong.fst f g has a chosen pullback.

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