Zulip Chat Archive

Stream: new members

Topic: equivIsoLimit for cones over different diagrams?


Shanghe Chen (May 14 2024 at 17:42):

Hi I saw CategoryTheory.Limits.IsLimit.equivIsoLimit shows that two isomorphic cones over the same diagram give limit or not at the same time. Is it similar theorem for two cones over different diagrams with the same shape?

Joël Riou (May 14 2024 at 17:45):

We have docs#CategoryTheory.Limits.IsLimit.postcomposeHomEquiv

Shanghe Chen (May 14 2024 at 17:47):

Ah awesome :tada: I am trying to read the doc and using it

Shanghe Chen (May 14 2024 at 17:53):

Btw do we have theorem turning a cone into a diagram? It seems similar to WidePullbackShape or WidePushoutShape but with also morphisms indexed by morphisms in the original diagram.

Shanghe Chen (May 14 2024 at 18:02):

image.png
as said in Riehl's _Category Theory in Context_

Shanghe Chen (May 14 2024 at 18:03):

I am trying

import Mathlib.CategoryTheory.Category.Basic
import Mathlib.CategoryTheory.Functor.Basic
set_option autoImplicit false
universe v u v' u'

noncomputable section

open CategoryTheory Category

variable {C : Type u} [Category.{v} C]
variable (J : Type u') [Category.{v'} J]
variable {F : J  C}
variable (G : J  C)

def AddInitObj := Option J

namespace AddInitObj
inductive Hom : AddInitObj J -> AddInitObj J -> Type u'
  | id :  X, Hom X X
  | term :  j : J, Hom (some j) none
  | mor :  j j' : J,  (f: j  j'), Hom (some j) (some j')
  deriving DecidableEq
end AddInitObj

But it seems there is some universe level error saying

invalid universe level in constructor 'AddInitObj.Hom.mor', parameter 'f' has type
  j  j'
at universe level
  v'+1
it must be smaller than or equal to the inductive datatype universe level
  u'+1

Kevin Buzzard (May 14 2024 at 18:09):

[Category.{v'} J] means "Hom sets in J are in universe v'", so your Homs for AddInitObj J should also be taking values in universe v'.

Shanghe Chen (May 14 2024 at 18:09):

Ah the following version works for smallcategory:

import Mathlib.CategoryTheory.Category.Basic
import Mathlib.CategoryTheory.Functor.Basic
set_option autoImplicit false
universe v u v' u'

noncomputable section

open CategoryTheory Category

variable {C : Type u} [Category.{v} C]
variable (J : Type u') [SmallCategory J]
variable {F : J  C}
variable (G : J  C)

def AddInitObj := Option J

namespace AddInitObj
inductive Hom : AddInitObj J -> AddInitObj J -> Type u'
  | id :  X, Hom X X
  | term :  j : J, Hom (some j) none
  | mor :  j j' : J,  (f: j  j'), Hom (some j) (some j')
end AddInitObj

maybe I can try both postcomposeHomEquiv and turn cone into diagram and prove similar result hhhh

Shanghe Chen (May 14 2024 at 18:12):

Yeah changing to

inductive Hom : AddInitObj J -> AddInitObj J -> Type v'

gives error at the line | id : ∀ X, Hom X X now. Declaring J SmallCategory seems OK now :tada:

Joël Riou (May 14 2024 at 18:35):

We have WithInitial, see CategoryTheory.WithTerminal.

Shanghe Chen (May 14 2024 at 18:37):

Ah I didn’t notice it. Thank you very much :blush:


Last updated: May 02 2025 at 03:31 UTC