Zulip Chat Archive
Stream: mathlib4
Topic: Obj component in `Cat`
Dean Young (Aug 16 2023 at 18:44):
Mathlib has Cat (which I've imported from Category.Cat). How do you access the object component of a particular term t : Cat?
Jason Rute (Aug 16 2023 at 19:53):
I think it is exposed via t.α. More specifically, docs#CategoryTheory.Cat is the type made up of every docs#CategoryTheory.Bundled t containing a type α : Type u and some category structure str : Category α on α. So t.α is the carrier (object component) for the category t.str. (Note, the carrier is not a data field in the class docs#CategoryTheory.Category, but a parameter of Category, which is why Cat and Bundle look the way they do.)
Jason Rute (Aug 16 2023 at 20:00):
import Mathlib.CategoryTheory.Category.Cat
#check fun (t : CategoryTheory.Cat) => ((t.α : Type _), (t.str : CategoryTheory.Category t.α))
Eric Wieser (Aug 16 2023 at 20:11):
I think you're supposed to just cast, which inserts the .α automatically:
import Mathlib.CategoryTheory.Category.Cat
#check fun t : CategoryTheory.Cat => ((t : Type _), (inferInstance : CategoryTheory.Category t))
Dean Young (Aug 16 2023 at 22:55):
Thanks this is great.
Last updated: May 02 2025 at 03:31 UTC