Zulip Chat Archive

Stream: Is there code for X?

Topic: Cocontinuity of hom and procoyoneda lemma


Christian Merten (May 11 2024 at 19:27):

Do we have any of the following?

import Mathlib

open CategoryTheory Limits Opposite

universe u₁ u₂ v₁ v₂

variable {C : Type u₁} [Category.{u₂} C] {I : Type v₁} [Category.{v₂} I] (F : I  C)
variable [HasColimit F] [HasLimit (F.op  coyoneda)]

instance : HasLimit F.op := hasLimit_op_of_hasColimit F

noncomputable def limitOfOpIsoOpColimit : limit F.op  op <| colimit F :=
  let c : Cocone F := colimit.cocone F
  let hc : IsColimit c := colimit.isColimit F
  limit.isoLimitCone c.op, IsColimit.op hc

noncomputable def homCocont : coyoneda.obj (limit F.op)  limit (F.op  coyoneda) :=
  preservesLimitIso coyoneda F.op

noncomputable def homCocont' : coyoneda.obj (op <| colimit F)  limit (F.op  coyoneda) :=
  coyoneda.mapIso (limitOfOpIsoOpColimit F).symm ≪≫ homCocont F

noncomputable def homCocont'App [HasLimitsOfShape Iᵒᵖ (Type u₂)] (A : C) :
    (colimit F  A)  limit (F.op  yoneda.obj A) :=
  ((homCocont' F).app A).trans <| limitObjIsoLimitCompEvaluation _ _

I need it for:

variable {C : Type u₁} [Category.{u₂} C] {J : Type v₁} [Category.{v₂} J] (D : Jᵒᵖ  C)
variable (F : C  Type u₂)

variable [HasColimit (D.rightOp  coyoneda)] [HasLimitsOfShape Jᵒᵖ (Type (max u₁ u₂))]

noncomputable def procoyonedaIso :
    (colimit (D.rightOp  coyoneda)  F)  limit (D  F  uliftFunctor.{u₁}) :=
  (homCocont'App _ F).trans
    (HasLimit.isoOfNatIso (isoWhiskerLeft (D  Prod.sectl C F) (coyonedaLemma C)))

If it does not exist, do you have a suggestion where it should go?


Last updated: May 02 2025 at 03:31 UTC