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.
The category of finite types.
Equations
Instances For
Equations
- FintypeCat.instCoeSortType = CategoryTheory.Bundled.coeSort
Equations
- FintypeCat.instInhabited = { default := FintypeCat.of PEmpty.{?u.3 + 1} }
Equations
- FintypeCat.instFintypeα = X.str
Equations
- FintypeCat.instCategory = CategoryTheory.InducedCategory.category CategoryTheory.Bundled.α
The fully faithful embedding of FintypeCat into the category of types.
Equations
- FintypeCat.incl = CategoryTheory.inducedFunctor CategoryTheory.Bundled.α
Instances For
Equations
Equations
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
Equations
- ⋯ = ⋯
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}.
Equations
Instances For
Given any natural number n, this creates the associated object of Fintype.Skeleton.
Equations
- FintypeCat.Skeleton.mk = ULift.up
Instances For
Equations
- FintypeCat.Skeleton.instInhabited = { default := FintypeCat.Skeleton.mk 0 }
Given any object of Fintype.Skeleton, this returns the associated natural number.
Equations
- FintypeCat.Skeleton.len = ULift.down
Instances For
Equations
- One or more equations did not get rendered due to their size.
The canonical fully faithful embedding of Fintype.Skeleton into FintypeCat.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Equations
Equations
The equivalence between Fintype.Skeleton and Fintype.
Equations
- FintypeCat.Skeleton.equivalence = FintypeCat.Skeleton.incl.asEquivalence
Instances For
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
- X.uSwitchEquiv = Equiv.ulift.trans (Fintype.equivFin ↑X).symm
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.