The category of finite types. #
We define the category of finite types, denoted FintypeCat
as
(bundled) types with a Fintype
instance.
We also define FintypeCat.Skeleton
, the standard skeleton of FintypeCat
whose objects
are Fin n
for n : ℕ
. We prove that the obvious inclusion functor
FintypeCat.Skeleton ⥤ FintypeCat
is an equivalence of categories in
FintypeCat.Skeleton.equivalence
.
We prove that FintypeCat.Skeleton
is a skeleton of FintypeCat
in FintypeCat.isSkeleton
.
Construct a bundled FintypeCat
from the underlying type and typeclass.
Instances For
The fully faithful embedding of FintypeCat
into the category of types.
Instances For
Equivalences between finite types are the same as isomorphisms in FintypeCat
.
Instances For
The "standard" skeleton for FintypeCat
. This is the full subcategory of FintypeCat
spanned by objects of the form ULift (Fin n)
for n : ℕ
. We parameterize the objects
of Fintype.Skeleton
directly as ULift ℕ
, as the type ULift (Fin m) ≃ ULift (Fin n)
is nonempty if and only if n = m
. Specifying universes, Skeleton : Type u
is a small
skeletal category equivalent to Fintype.{u}
.
Instances For
Given any natural number n
, this creates the associated object of Fintype.Skeleton
.
Instances For
Given any object of Fintype.Skeleton
, this returns the associated natural number.
Instances For
The canonical fully faithful embedding of Fintype.Skeleton
into FintypeCat
.