The category of finite types. #
We define the category of finite types, denoted FintypeCat as
the full subcategory of types with a Finite 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.
The category of finite types.
Instances For
Construct a term of FintypeCat from a type endowed with a Finite instance.
Equations
- FintypeCat.of X = { obj := X, property := ⋯ }
Instances For
Equations
- FintypeCat.instCoeSort = { coe := fun (X : FintypeCat) => X.obj }
Equations
- FintypeCat.instInhabited = { default := FintypeCat.of PEmpty.{?u.3 + 1} }
A Fintype instance on objects on FintypeCat, that should be turned on as needed.
Prefer the Finite instance if possible.
Equations
Instances For
The fully faithful embedding of FintypeCat into the category of types.
Instances For
Constructor for morphisms in FintypeCat.
Equations
- FintypeCat.homMk f = { hom := TypeCat.ofHom f }
Instances For
Equivalences between finite types are the same as isomorphisms in FintypeCat.
Equations
- One or more equations did not get rendered due to their size.
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 FintypeCat.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 FintypeCat.{u}.
Equations
Instances For
Given any natural number n, this creates the associated object of FintypeCat.Skeleton.
Equations
Instances For
Equations
- FintypeCat.Skeleton.instInhabited = { default := FintypeCat.Skeleton.mk 0 }
Given any object of FintypeCat.Skeleton, this returns the associated natural number.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
The canonical fully faithful embedding of FintypeCat.Skeleton into FintypeCat.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence between FintypeCat.Skeleton and FintypeCat.
Instances For
FintypeCat.Skeleton is a skeleton of FintypeCat.
If u and v are two arbitrary universes, we may construct a functor
uSwitch.{u, v} : FintypeCat.{u} ⥤ FintypeCat.{v} by sending
X : FintypeCat.{u} to ULift.{v} (Fin (Fintype.card X)).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Switching the universe of an object X : FintypeCat.{u} does not change X up to equivalence
of types. This is natural in the sense that it commutes with uSwitch.map f for
any f : X ⟶ Y in FintypeCat.{u}.
Equations
Instances For
uSwitch.{u, v} is an equivalence of categories with quasi-inverse uSwitch.{v, u}.
Equations
- One or more equations did not get rendered due to their size.