Isomorphisms of categories #
An IsoCat C D is an isomorphism of categories: a pair of functors C ⥤ D and D ⥤ C
whose composites are equal (not merely naturally isomorphic) to the identity functors.
This is a strict notion, stronger than an equivalence of categories C ≌ D.
We also define Functor.IsIso as a property saying that a functor is fully faithful and
bijective on objects. We develop basic api for these two concepts.
Unless the application explicitely demands an isomorphism, the equivalence of categories is to be preferred.
Main definitions #
CategoryTheory.IsoCat: the type of isomorphisms between categoriesCandD.CategoryTheory.Functor.IsIso: a typeclass expressing that a functor is full, faithful and bijective on objects, hence underlies an isomorphism of categories.
An isomorphism of categories: a pair of functors whose composites are equal to the identity functors.
- functor : Functor C D
The forward functor of an isomorphism of categories.
- inverse : Functor D C
The inverse functor of an isomorphism of categories.
Instances For
The identity isomorphism of categories.
Equations
- CategoryTheory.IsoCat.refl C = { functor := CategoryTheory.Functor.id C, inverse := CategoryTheory.Functor.id C, unit_eq := ⋯, counit_eq := ⋯ }
Instances For
The inverse isomorphism of categories, obtained by swapping functor and inverse.
Instances For
Composition of isomorphisms of categories.
Equations
Instances For
A functor F : C ⥤ D is an isomorphism of categories if it is full, faithful and
bijective on objects. Such a functor has a strict inverse Functor.strictInv and assembles
into an IsoCat via Functor.asIsomorphism.
- faithful : F.Faithful
A functor which is an isomorphism of categories is faithful.
- full : F.Full
A functor which is an isomorphism of categories is full.
- bijective_obj : Function.Bijective F.obj
A functor which is an isomorphism of categories is bijective on objects.
Instances
The bijection on objects induced by a functor that is an isomorphism of categories.
Equations
- F.objEquiv = Equiv.ofBijective F.obj ⋯
Instances For
The strict inverse of a functor that is an isomorphism of categories, defined using
Functor.objEquiv on objects and Functor.preimage on morphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor that is an isomorphism of categories assembles into an IsoCat,
with Functor.strictInv as its inverse.
Equations
- F.asIsomorphism = { functor := F, inverse := F.strictInv, unit_eq := ⋯, counit_eq := ⋯ }
Instances For
The equivalence of categories underlying an IsoCat, with the unit and counit
isomorphisms induced by the defining equalities.
Equations
- e.toEquivalence = { functor := e.functor, inverse := e.inverse, unitIso := CategoryTheory.eqToIso ⋯, counitIso := CategoryTheory.eqToIso ⋯, functor_unitIso_comp := ⋯ }
Instances For
Promotes an equivalence of categories e : C ≌ D whose unit and counit isomorphisms are
given by equalities of objects into an IsoCat C D.