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