Two categories and are equivalent if there are functors and with natural isomorphisms and . Requiring equalities instead gives the stricter isomorphism of categories, which “involves equality of objects” and is therefore rarely the right notion (DaoFP §10.5). Equivalently, is fully faithful and essentially surjective.
Sources: 7 Sketches Remarks 1.74, 2.71, 3.59 (“can be identified with”), Example 3.56; DaoFP §10.5; Kittenlab Lecture 5 (preorders vs. thin categories); CTfS §4.3.4 (Definition 4.3.4.1, Examples 4.3.4.3–4.3.4.7, Proposition 4.3.4.9, Definition 4.3.4.12, Proposition 4.3.4.15), Theorem 4.4.2.3
Examples. (Preorders are Bool-Categories); ; the arrow category of ; is equivalent to its Skeleton of ordinals ; any category is equivalent to its skeleton, so a Preorder is equivalent to its poset reflection; . From Category Theory for Scientists. Insisting on isomorphism of categories “is akin to saying that two material samples are the same if there is an atom-by-atom matching, or that two words are the same if they are written in the same font, of the same size, by the same person, in the same state of mind” (CTfS §4.3.4). Examples: the indiscrete category on any nonempty set is equivalent to , witnessed by any choice of element (Codiscrete Category); , finite linear orders with “funny labels” vs. the standard (Simplex Category); (Categories and Schemas are Equivalent); every category is equivalent to the elected skeleton obtained by choosing one representative per isomorphism class (CTfS Proposition 4.3.4.9, Skeleton). A non-example: the group as a one-object category is not equivalent to even though there are functors both ways and both morphisms of are isomorphisms — the would-be component must satisfy , impossible since (CTfS Example 4.3.4.7). Equivalences are fully faithful (CTfS Proposition 4.3.4.15), and is not faithful.
An Adjunction whose unit and counit are isomorphisms is an equivalence — “a half-equivalence is still very interesting”.
#check CategoryTheory.Equivalence -- structure: functor, inverse, unitIso, counitIso, functor_unitIso_comp
#check CategoryTheory.Equivalence.ofFullyFaithfullyEssSurj
#check CategoryTheory.currying -- (C × D ⥤ E) ≌ (C ⥤ D ⥤ E)-- an equivalence: two functors with natural isomorphisms of the round trips (unenforceable)
data Equiv f g = Equiv (forall a. f a -> g a) (forall a. g a -> f a) -- for endofunctor-level examples