Zulip Chat Archive

Stream: Is there code for X?

Topic: (X : C) for C : Cat.{u,v}


Dean Young (Aug 20 2023 at 22:09):

I've noticed I don't get an error if I type X : C instead of X : C.α. Do these mean the same thing?

e.g.

structure example.{u₀,v₀} where
  Obj : Cat.{u₀,v₀}
  Pnt : Obj.α
  CmpObj : Obj.α  Cat.{u₀,v₀}
  CmpHom : (C : Obj.α) 
        (D : Obj.α) 
        (F : C  D) 
        ((CmpObj C)  (CmpObj D))

Eric Wieser (Aug 20 2023 at 22:15):

You can answer this question by comparing variable (X : C) in #check X and variable (X : C.α) in #check X

Dean Young (Aug 20 2023 at 23:37):

Looks like it checks out.

Jason Rute (Aug 21 2023 at 00:55):

The reason is explained by @Eric Wieser in your other most recent thread. In this circumstance, there is a coercion from C to its carrier C.α. (And note that otherwise X : C wouldn’t type check since C : Cat is not a type.)

Dean Young (Aug 21 2023 at 20:26):

@Jason Rute thanks for your help


Last updated: Dec 20 2023 at 11:08 UTC