A retrofunctor (sometimes called a cofunctor) is a kind of morphism between categories. In contrast to a functor, the assignment on objects of a retrofunctor goes in the opposite direction to the assignment on morphisms.
Retrofunctors generalise both bijective-on-objects functors and discrete opfibrations.
Retrofunctors arise naturally in the study non-cartesian internal categories.
In the literature, the terminology “cofunctor” is common. However, terminology is misleading, as a cofunctor is not the opposite of a functor. Moreover, the terminology “cofunctor” is also used for a morphism of cocategories?. We use the terminology “retrofunctor”, as this avoids confusion, and aligns with the concept of monad retromorphism (of which retrofunctors are a motivating example).
A retrofunctor $\varphi : A \nrightarrow B$ from a category $A$ to a category $B$ consists of a map sending each object $a \in A$ to an object $\varphi_{0}a \in B$ and a map sending each pair $(a \in A, u : \varphi_{0}a \to b \in B)$ to a morphism $\varphi_{1}(a, u) : a \to a'$ in $A$ such that
$\varphi_{1}$ respects codomains: $\varphi_{0}a' = cod(u)$ where $a' = cod(\varphi_{1}(a, u))$,
$\varphi_{1}$ preserves identity morphisms: $\varphi_{1}(a, 1_{\varphi_{0}a}) = 1_{a}$,
$\varphi_{1}$ preserves composition: $\varphi_{1}(a, v \circ u) = \varphi_{1}(a', v) \circ \varphi_{1}(a, u)$.
Given a pair of retrofunctors $\varphi : A \nrightarrow B$ and $\gamma : B \nrightarrow C$, their composite retrofunctor $\gamma \circ \varphi \colon A \nrightarrow C$ sends each object $a \in A$ to an object $\gamma_{0}\varphi_{0}a \in C$ and each pair $(a \in A, u : \gamma_{0}\varphi_{0}a \to c \in C)$ to a morphism $\varphi_{1}(a, \gamma_{1}(\varphi_{0}a, u))$ in $A$. This defines a category $\mathbf{Cof}$ whose objects are small categories, and whose morphisms are retrofunctors.
The category $\mathbf{Cof}$ of small categories and retrofunctors has an orthogonal factorization system $(Bij^{op}, DOpf)$ which factors each retrofunctor $\varphi : A \nrightarrow B$ into a bijective on objects functor $A \leftarrow I$ followed by a discrete opfibration $I \to B$.
Let $\mathbf{Poly}(1, 1)$ be the monoidal category arising from the bicategory of polynomials on the singleton set. Then $\mathbf{Cof}$ is isomorphic to the category of comonoids in $\mathbf{Poly}(1, 1)$.
Originally proven in (Ahman-Uustalu 2016). See (Spivak-Niu 2021, Theorem 6.26) for details.
A comonoid in $\mathbf{Poly}(1, 1)$ is also known as polynomial comonad.
Every function $A \to B$ yields a retrofunctor $disc(A) \nrightarrow disc(B)$ between discrete categories. This defines a fully faithful functor $\mathbf{Set} \to \mathbf{Cof}$.
Every monoid homomorphism $A \to B$ yields a retrofunctor $B \nrightarrow A$. This defines a fully faithful functor $\mathbf{Mon} \to \mathbf{Cof}^{op}$.
Every bijective on objects functor $A \to B$ yields a retrofunctor $B \nrightarrow A$.
Every discrete opfibration $A \to B$ yields a retrofunctor $A \nrightarrow B$.
Every split Grothendieck opfibration has an underlying retrofunctor given by the splitting.
More generally, every delta lens has an underlying retrofunctor.
Let $\mathbb{N}$ denote the monoid of natural numbers under addition. A retrofunctor $\tau : A \to \mathbb{N}$ is the same as a choice of morphism $\tau(a, 1)$ out of every object in $a \in A$.
A comorphism of Lie groupoids is an internal retrofunctor in the category Diff of smooth manifolds; see (Higgins-Mackenzie 1993, definition 5.12).
The notion of retrofunctor first appeared under the name comorphism in the paper:
The definition of internal retrofunctor between non-cartesian internal categories was introduced in Section 4.4 of the thesis:
The characterization of retrofunctors as morphisms between directed containers is developed in the papers:
Danel Ahman, Tarmo Uustalu, Directed Containers as Categories, EPTCS, 207, 2016 (doi:10.4204/EPTCS.207.5)
Danel Ahman, Tarmo Uustalu, Taking updates seriously, CEUR Workshop Proceedings, 1827, 2017 (pdf)
The link between retrofunctors, delta lenses, and split Grothendieck opfibrations is developed in the papers:
Bryce Clarke, Internal lenses as functors and cofunctors, EPTCS, 323, 2020 (doi:10.4204/EPTCS.323.13)
Bryce Clarke, Internal split opfibrations and cofunctors, Theory and Applications of Categories, 35, 2020 (link)
Retrofunctors between groupoids and the link with inner automorphisms of groupoids is explored in the paper:
The notion of retrofunctor between partite internal categories is introduced in Definition 5.5 of the paper:
A detailed account of the relationship between retrofunctors and polynomials appears in Chapter 6 of the draft textbook:
Enrichment in the category of $\mathbf{Cof}$ of categories and retrofunctors is considered in the paper:
The terminology retrofunctor was introduced in:
The terminology is justified by the fact that retrofunctors are monad retromorphisms in the double category $Span(Set)$.
Last revised on August 24, 2024 at 05:20:09. See the history of this page for a list of all contributions to it.