Basic API for ULift #
This file contains a very basic API for working with the categorical
instance on ULift C
where C
is a type with a category instance.
CategoryTheory.ULift.upFunctor
is the functorial version of the usualULift.up
.CategoryTheory.ULift.downFunctor
is the functorial version of the usualULift.down
.CategoryTheory.ULift.equivalence
is the categorical equivalence betweenC
andULift C
.
ULiftHom #
Given a type C : Type u
, ULiftHom.{w} C
is just an alias for C
.
If we have category.{v} C
, then ULiftHom.{w} C
is endowed with a category instance
whose morphisms are obtained by applying ULift.{w}
to the morphisms from C
.
This is a category equivalent to C
. The forward direction of the equivalence is ULiftHom.up
,
the backward direction is ULiftHom.down
and the equivalence is ULiftHom.equiv
.
AsSmall #
This file also contains a construction which takes a type C : Type u
with a
category instance Category.{v} C
and makes a small category
AsSmall.{w} C : Type (max w v u)
equivalent to C
.
The forward direction of the equivalence, C ⥤ AsSmall C
, is denoted AsSmall.up
and the backward direction is AsSmall.down
. The equivalence itself is AsSmall.equiv
.
The functorial version of ULift.up
.
Equations
- CategoryTheory.ULift.upFunctor = CategoryTheory.Functor.mk { obj := ULift.up, map := fun {X Y : C} (f : X ⟶ Y) => f }
Instances For
The functorial version of ULift.down
.
Equations
- CategoryTheory.ULift.downFunctor = CategoryTheory.Functor.mk { obj := ULift.down, map := fun {X Y : ULift.{u₂, u₁} C} (f : X ⟶ Y) => f }
Instances For
The categorical equivalence between C
and ULift C
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ULiftHom.{w} C
is an alias for C
, which is endowed with a category instance
whose morphisms are obtained by applying ULift.{w}
to the morphisms from C
.
Equations
- CategoryTheory.ULiftHom C = let x := ULift.{w, u} C; C
Instances For
Equations
- CategoryTheory.instInhabitedULiftHom = { default := default }
Equations
- CategoryTheory.ULiftHom.category = CategoryTheory.Category.mk
One half of the quivalence between C
and ULiftHom C
.
Equations
- CategoryTheory.ULiftHom.up = CategoryTheory.Functor.mk { obj := CategoryTheory.ULiftHom.objUp, map := fun {X Y : C} (f : X ⟶ Y) => { down := f } }
Instances For
One half of the quivalence between C
and ULiftHom C
.
Equations
- CategoryTheory.ULiftHom.down = CategoryTheory.Functor.mk { obj := CategoryTheory.ULiftHom.objDown, map := fun {X Y : CategoryTheory.ULiftHom C} (f : X ⟶ Y) => f.down }
Instances For
The equivalence between C
and ULiftHom C
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
AsSmall C
is a small category equivalent to C
.
More specifically, if C : Type u
is endowed with Category.{v} C
, then
AsSmall.{w} C : Type (max w v u)
is endowed with an instance of a small category.
The objects and morphisms of AsSmall C
are defined by applying ULift
to the
objects and morphisms of C
.
Note: We require a category instance for this definition in order to have direct
access to the universe level v
.
Equations
Instances For
Equations
- CategoryTheory.instSmallCategoryAsSmall = CategoryTheory.Category.mk
One half of the equivalence between C
and AsSmall C
.
Equations
- CategoryTheory.AsSmall.up = CategoryTheory.Functor.mk { obj := fun (X : C) => { down := X }, map := fun {X Y : C} (f : X ⟶ Y) => { down := f } }
Instances For
One half of the equivalence between C
and AsSmall C
.
Equations
- CategoryTheory.AsSmall.down = CategoryTheory.Functor.mk { obj := fun (X : CategoryTheory.AsSmall C) => X.down, map := fun {X Y : CategoryTheory.AsSmall C} (f : X ⟶ Y) => f.down }
Instances For
The equivalence between C
and AsSmall C
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.instInhabitedAsSmall = { default := { down := default } }
The equivalence between C
and ULiftHom (ULift C)
.
Equations
- CategoryTheory.ULiftHomULiftCategory.equiv C = CategoryTheory.ULift.equivalence.trans CategoryTheory.ULiftHom.equiv