Zulip Chat Archive

Stream: Is there code for X?

Topic: Category of diagrams


Adam Topaz (Mar 01 2021 at 22:02):

I'm looking for some construction of "the category of diagrams" along the following lines:

import category_theory.eq_to_hom
import category_theory.whiskering
import category_theory.essential_image

open category_theory

universes v u
variables (C : Type u) [category.{v} C]

@[ext]
structure diagram :=
(J : Type v)
[small_cat : small_category J]
(F : J  C)

namespace diagram

variable {C}

instance : has_coe_to_sort (diagram C) := Type v, λ X, X.J
instance {X : diagram C} : small_category X := X.small_cat

@[ext]
structure hom (X Y : diagram C) :=
(i : X  Y)
(j : X.F.ess_image  Y.F.ess_image)
(comm : i  Y.F.to_ess_image  X.F.to_ess_image  j)

@[simps]
def id (X : diagram C) : hom X X :=
{ i := functor.id _,
  j := functor.id _,
  comm :=
  { hom := 𝟙 _,
    inv := 𝟙 _  } }

@[simps]
def comp {X Y Z : diagram C} (f : hom X Y) (g : hom Y Z) : hom X Z :=
{ i := f.i  g.i,
  j := f.j  g.j,
  comm :=
    functor.associator f.i g.i _ ≪≫
    iso_whisker_left f.i g.comm ≪≫
    (functor.associator _ _ _).symm ≪≫
    iso_whisker_right f.comm g.j ≪≫
    functor.associator _ f.j g.j }

instance : category (diagram C) :=
{ hom := hom,
  id := λ X, id _,
  comp := λ X Y Z, comp,
  id_comp' := begin
    intros a b f,
    ext,
    { apply category_theory.functor.ext, tidy },
    { apply category_theory.functor.ext, tidy },
    recover,
    tidy,
  end,
  comp_id' := begin
    intros a b f,
    ext,
    { apply category_theory.functor.ext, tidy },
    { apply category_theory.functor.ext, tidy },
    recover,
    tidy,
  end,
  assoc' := begin
    intros a b c d f g h,
    ext,
    { apply category_theory.functor.ext, tidy },
    { apply category_theory.functor.ext, tidy },
    recover,
    tidy,
  end }

end diagram

And while I'm asking, I also don't really understand why recover is necessary in the last few proofs (I get an error if these lines are removed).
Finally, if someone has any ideas about how to make this construction less "evil" (due to the use of category_theory.functor.ext), that would also be helpful!

Scott Morrison (Mar 01 2021 at 23:20):

Isn't this construction just inherently 'evil'? There's a 2-category of diagrams that wouldn't be.

Adam Topaz (Mar 01 2021 at 23:21):

Yeah, youre right.

Adam Topaz (Mar 01 2021 at 23:23):

I just never imagined that something so mundane like the category of diagrams should really be a 2-category.

Adam Topaz (Mar 01 2021 at 23:25):

But I guess whenever you need to talk about commuting diagrams of functors, you're forced into 2-categories.


Last updated: Dec 20 2023 at 11:08 UTC