Zulip Chat Archive

Stream: Is there code for X?

Topic: Equivalence-invariance of constructions on categories


Brendan Seamas Murphy (May 28 2023 at 01:18):

Specifically, if I have e1 : C ≌ C' and e2 : D ≌ D' is there a definition that will give me (C ⥤ D) ≌ (C' ⥤ D') and (C ⥤ D) × (C' ⥤ D') in terms of them?

Brendan Seamas Murphy (May 28 2023 at 01:27):

This follows from the fact that Prod : Cat.{v₁, u₁} × Cat.{v₂, u₂} → Cat.{max v₁ v₂, max u₂ u₁} and Fun : Cat.{v₁, u₁}^op × Cat.{v₂, u₂} → Cat.{max u₁ v₂, max (max (max u₂ u₁) v₂) v₁} are (strict) 2-functors, but I don't really feel like filling in that theory

(edit: and also it's insufficient when C, C' live in different universes)

Thomas Browning (May 28 2023 at 01:41):

You could combine docs#category_theory.equivalence.congr_left with docs#category_theory.equivalence.congr_right, swapping out one side at a time

Brendan Seamas Murphy (May 28 2023 at 01:49):

oh great, I only needed congr_left. thanks!

Brendan Seamas Murphy (May 28 2023 at 01:51):

(but there's no such code for products still, right?)

Thomas Browning (May 28 2023 at 02:00):

Did you mean to write (C × C') ≌ (D × D')? Not that I could find on a cursory scan of the docs.

Brendan Seamas Murphy (May 28 2023 at 02:00):

Yep, sorry

Brendan Seamas Murphy (May 28 2023 at 02:01):

guess I'll add this to Mathlib.CategoryTheory.Products.Basic

def Equivalence.prodCongr {C : Type u₁} [Category.{v₁} C] {D : Type u₂} [Category.{v₂} D]
    {C' : Type u₃} [Category.{v₃} C'] {D' : Type u₄} [Category.{v₄} D']
    (e1 : C  C') (e2 : D  D') : C × D  C' × D' where
  functor := e1.functor.prod e2.functor
  inverse := e1.inverse.prod e2.inverse
  unitIso := NatTrans.prod e1.unitIso.hom e2.unitIso.hom, NatTrans.prod e1.unitIso.inv e2.unitIso.inv, _, _
  counitIso := NatTrans.prod e1.counitIso.hom e2.counitIso.hom, NatTrans.prod e1.counitIso.inv e2.counitIso.inv, _, _
  functor_unitIso_comp := by rintro X, Y; simp

Last updated: Dec 20 2023 at 11:08 UTC