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

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

          Equations
          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

                  The chosen pullback functor of a composition of morphisms is naturally isomorphic to the composition of the chosen pullback functors.

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