Documentation

Mathlib.CategoryTheory.Limits.FunctorCategory.Shapes.Pullbacks

Pullbacks in functor categories #

We prove the isomorphism (pullback f g).obj d ≅ pullback (f.app d) (g.app d).

def CategoryTheory.Limits.PullbackCone.combine {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} (f : F H) (g : G H) (c : (X : D) → PullbackCone (f.app X) (g.app X)) (hc : (X : D) → IsLimit (c X)) :

Given functors F G H and natural transformations f : F ⟶ H and g : g : G ⟶ H, together with a collection of limiting pullback cones for each cospan F X ⟶ H X, G X ⟶ H X, we can stich them together to give a pullback cone for the cospan formed by f and g. combinePullbackConesIsLimit shows that this pullback cone is limiting.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem CategoryTheory.Limits.PullbackCone.combine_π_app {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} (f : F H) (g : G H) (c : (X : D) → PullbackCone (f.app X) (g.app X)) (hc : (X : D) → IsLimit (c X)) (j : WalkingCospan) :
    (combine f g c hc).π.app j = Option.rec (CategoryStruct.comp { app := fun (X : D) => (c X).fst, naturality := } f) (fun (val : WalkingPair) => WalkingPair.rec { app := fun (X : D) => (c X).fst, naturality := } { app := fun (X : D) => (c X).snd, naturality := } val) j
    @[simp]
    theorem CategoryTheory.Limits.PullbackCone.combine_pt_map {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} (f : F H) (g : G H) (c : (X : D) → PullbackCone (f.app X) (g.app X)) (hc : (X : D) → IsLimit (c X)) {X Y : D} (h : X Y) :
    (combine f g c hc).pt.map h = (hc Y).lift { pt := (c X).pt, π := CategoryStruct.comp (c X).π (cospanHomMk (H.map h) (F.map h) (G.map h) ) }
    @[simp]
    theorem CategoryTheory.Limits.PullbackCone.combine_pt_obj {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} (f : F H) (g : G H) (c : (X : D) → PullbackCone (f.app X) (g.app X)) (hc : (X : D) → IsLimit (c X)) (X : D) :
    (combine f g c hc).pt.obj X = (c X).pt
    def CategoryTheory.Limits.PullbackCone.combineIsLimit {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} (f : F H) (g : G H) (c : (X : D) → PullbackCone (f.app X) (g.app X)) (hc : (X : D) → IsLimit (c X)) :
    IsLimit (combine f g c hc)

    The pullback cone combinePullbackCones is limiting.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      noncomputable def CategoryTheory.Limits.pullbackObjIso {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPullbacks C] (f : F H) (g : G H) (d : D) :
      (pullback f g).obj d pullback (f.app d) (g.app d)

      Evaluating a pullback amounts to taking the pullback of the evaluations.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem CategoryTheory.Limits.pullbackObjIso_hom_comp_fst {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPullbacks C] (f : F H) (g : G H) (d : D) :
        @[simp]
        theorem CategoryTheory.Limits.pullbackObjIso_hom_comp_fst_assoc {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPullbacks C] (f : F H) (g : G H) (d : D) {Z : C} (h : F.obj d Z) :
        @[simp]
        theorem CategoryTheory.Limits.pullbackObjIso_hom_comp_snd {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPullbacks C] (f : F H) (g : G H) (d : D) :
        @[simp]
        theorem CategoryTheory.Limits.pullbackObjIso_hom_comp_snd_assoc {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPullbacks C] (f : F H) (g : G H) (d : D) {Z : C} (h : G.obj d Z) :
        @[simp]
        theorem CategoryTheory.Limits.pullbackObjIso_inv_comp_fst {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPullbacks C] (f : F H) (g : G H) (d : D) :
        @[simp]
        theorem CategoryTheory.Limits.pullbackObjIso_inv_comp_fst_assoc {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPullbacks C] (f : F H) (g : G H) (d : D) {Z : C} (h : F.obj d Z) :
        @[simp]
        theorem CategoryTheory.Limits.pullbackObjIso_inv_comp_snd {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPullbacks C] (f : F H) (g : G H) (d : D) :
        @[simp]
        theorem CategoryTheory.Limits.pullbackObjIso_inv_comp_snd_assoc {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPullbacks C] (f : F H) (g : G H) (d : D) {Z : C} (h : G.obj d Z) :
        noncomputable def CategoryTheory.Limits.pushoutObjIso {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPushouts C] (f : F G) (g : F H) (d : D) :
        (pushout f g).obj d pushout (f.app d) (g.app d)

        Evaluating a pushout amounts to taking the pushout of the evaluations.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem CategoryTheory.Limits.inl_comp_pushoutObjIso_hom {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPushouts C] (f : F G) (g : F H) (d : D) :
          @[simp]
          theorem CategoryTheory.Limits.inl_comp_pushoutObjIso_hom_assoc {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPushouts C] (f : F G) (g : F H) (d : D) {Z : C} (h : pushout (f.app d) (g.app d) Z) :
          @[simp]
          theorem CategoryTheory.Limits.inr_comp_pushoutObjIso_hom {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPushouts C] (f : F G) (g : F H) (d : D) :
          @[simp]
          theorem CategoryTheory.Limits.inr_comp_pushoutObjIso_hom_assoc {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPushouts C] (f : F G) (g : F H) (d : D) {Z : C} (h : pushout (f.app d) (g.app d) Z) :
          @[simp]
          theorem CategoryTheory.Limits.inl_comp_pushoutObjIso_inv {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPushouts C] (f : F G) (g : F H) (d : D) :
          @[simp]
          theorem CategoryTheory.Limits.inl_comp_pushoutObjIso_inv_assoc {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPushouts C] (f : F G) (g : F H) (d : D) {Z : C} (h : (pushout f g).obj d Z) :
          @[simp]
          theorem CategoryTheory.Limits.inr_comp_pushoutObjIso_inv {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPushouts C] (f : F G) (g : F H) (d : D) :
          @[simp]
          theorem CategoryTheory.Limits.inr_comp_pushoutObjIso_inv_assoc {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {F G H : Functor D C} [HasPushouts C] (f : F G) (g : F H) (d : D) {Z : C} (h : (pushout f g).obj d Z) :