Module docstring
{"# Finite categories are equivalent to category in Type 0.
"}
{"# Finite categories are equivalent to category in Type 0.
"}
CategoryTheory.FinCategory.ObjAsType
abbrev
: Type
/-- A FinCategory `α` is equivalent to a category with objects in `Type`. -/
--@[nolint unused_arguments]
abbrev ObjAsType : Type :=
InducedCategory α (Fintype.equivFin α).symm
CategoryTheory.FinCategory.instFintypeHomObjAsType
instance
{i j : ObjAsType α} : Fintype (i ⟶ j)
instance {i j : ObjAsType α} : Fintype (i ⟶ j) :=
FinCategory.fintypeHom ((Fintype.equivFin α).symm i) _
CategoryTheory.FinCategory.objAsTypeEquiv
definition
: ObjAsType α ≌ α
/-- The constructed category is indeed equivalent to `α`. -/
noncomputable def objAsTypeEquiv : ObjAsTypeObjAsType α ≌ α :=
(inducedFunctor (Fintype.equivFin α).symm).asEquivalence
CategoryTheory.FinCategory.AsType
abbrev
: Type
/-- A FinCategory `α` is equivalent to a fin_category with in `Type`. -/
--@[nolint unused_arguments]
abbrev AsType : Type :=
Fin (Fintype.card α)
CategoryTheory.FinCategory.categoryAsType
instance
: SmallCategory (AsType α)
CategoryTheory.FinCategory.asTypeToObjAsType
definition
: AsType α ⥤ ObjAsType α
/-- The "identity" functor from `AsType α` to `ObjAsType α`. -/
@[simps]
noncomputable def asTypeToObjAsType : AsTypeAsType α ⥤ ObjAsType α where
obj := id
map {_ _} := (Fintype.equivFin _).symm
CategoryTheory.FinCategory.objAsTypeToAsType
definition
: ObjAsType α ⥤ AsType α
/-- The "identity" functor from `ObjAsType α` to `AsType α`. -/
@[simps]
noncomputable def objAsTypeToAsType : ObjAsTypeObjAsType α ⥤ AsType α where
obj := id
map {_ _} := Fintype.equivFin _
CategoryTheory.FinCategory.asTypeEquivObjAsType
definition
: AsType α ≌ ObjAsType α
/-- The constructed category (`AsType α`) is equivalent to `ObjAsType α`. -/
noncomputable def asTypeEquivObjAsType : AsTypeAsType α ≌ ObjAsType α where
functor := asTypeToObjAsType α
inverse := objAsTypeToAsType α
unitIso := NatIso.ofComponents Iso.refl
counitIso := NatIso.ofComponents Iso.refl
CategoryTheory.FinCategory.asTypeFinCategory
instance
: FinCategory (AsType α)
noncomputable instance asTypeFinCategory : FinCategory (AsType α) where
fintypeHom := fun _ _ => show Fintype (Fin _) from inferInstance
CategoryTheory.FinCategory.equivAsType
definition
: AsType α ≌ α
/-- The constructed category (`ObjAsType α`) is indeed equivalent to `α`. -/
noncomputable def equivAsType : AsTypeAsType α ≌ α :=
(asTypeEquivObjAsType α).trans (objAsTypeEquiv α)