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
              Instances For

                Any 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
                      Instances For
                        @[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)
                        @[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) :

                        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
                              Instances For

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

                                Equations
                                  Instances For

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

                                    Equations
                                      Instances For

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

                                        Equations
                                          Instances For

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

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

                                                                            The canonical pullback cone from the data of a chosen pullback of f along g.

                                                                            Equations
                                                                              Instances For

                                                                                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
                                                                                  Instances For

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

                                                                                    Equations
                                                                                      Instances For

                                                                                        The computable ChosenPullbacksAlong.pullback g is naturally isomorphic to the noncomputable Over.pullback g.

                                                                                        Equations
                                                                                          Instances For