nLab anafunctor



Category theory

Homotopy theory

homotopy theory, (∞,1)-category theory, homotopy type theory

flavors: stable, equivariant, rational, p-adic, proper, geometric, cohesive, directed

models: topological, simplicial, localic, …

see also algebraic topology



Paths and cylinders

Homotopy groups

Basic facts




An anafunctor F:CDF\colon C \to D is a generalized functor.

A basic fact in ordinary category theory is that a functor f:CDf\colon C \to D is an equivalence of categories – in that there is a functor g:DCg\colon D \to C and natural isomorphisms fgId Df \circ g \simeq Id_D and gfId Cg \circ f \simeq Id_C – if and only if it is essentially surjective and fully faithful. However, the “if” part of this statement depends crucially on the axiom of choice: the functor gg is obtained by choosing for each object dDd \in D an object cCc \in C such that f(c)df(c) \simeq d. In fact, the statement that “every fully faithful and essentially surjective functor is an equivalence of categories” is equivalent to the axiom of choice.

The notion of anafunctor is a generalization of the usual notion of functor, which enables us to recover a version of this statement without the axiom of choice. It was first studied in detail (Makkai) with foundational concerns in mind, although it also appears unnamed in (Kelly). Later, they were applied by Toby Bartels to internal categories, where the axiom of choice is simply not an option. These “internal anafunctors” actually turned out to be known already (at least up to equivalence) in some contexts, in particular as Hilsum-Skandalis morphisms between Lie groupoids.

We present three motivations and applications of anafunctors:

Foundational motivation

There is a sense in which the construction of inverse equivalences is not a “real” use of the axiom of choice, because the choice of dd is determined up to unique isomorphism. Note that in ordinary set theory, the axiom of choice is not necessary to make choices that are uniquely defined; this is sometimes called the “axiom of non-choice” or the “function comprehension principle.” Since in category theory, an object can only be expected to be determined up to unique isomorphism, it is natural to regard the above statement as really being a “functor comprehension principle” or an “axiom of non-choice for categories.” The fact that the full axiom of choice is required to make such choices is then an artifact of the usual foundational choice to define categories as having a set of objects.

In fact, however, we can recover the functor comprehension principle while maintaining the definition of categories in set theory if we modify the notion of functor. This results in the notion of anafunctor, which is essentially “a functor which determines its values on objects only up to isomorphism.” In particular, an anafunctor is an equivalence of categories (in the sense of having an inverse anafunctor) precisely if it is essentially surjective and full and faithful. From this point of view, an anafunctor is not necessarily a fundamental notion, but rather an artifact that makes it possible to approximate the “natural” theory of categories, which doesn’t need choice but has a functor comprehension principle, while still working in a set-theoretic foundation lacking choice.

Every functor may be interpreted as an anafunctor; that every anafunctor is equivalent to a functor is equivalent to the axiom of choice, in which case the inclusion of functors into anafunctors is in fact an equivalence of categories. But if you ignore functors and deal only with anafunctors (or saturated anafunctors), then the theory becomes entirely constructive (without using the axiom of choice or even excluded middle). Thus, anafunctors (or even saturated anafunctors) are the correct notion to use if you are doing constructive mathematics and you still want to found mathematics on some sort of set theory.

Motivation from internal categories

Since questions concerning the axiom of choice tend to look a bit esoteric to those not actively interested in questions of foundations, it is helpful (and useful!) to think of this more generally in terms of internal category theory, where the concept is of independent use, and in fact well known by other names than “anafunctor”.

Consider some ambient category \mathcal{E} internal to which we want to do category theory. A good example to keep in mind is the category Top of topological spaces. We observe that “the axiom of choice fails in Top”, but that this is a very non-esoteric and obvious statement: it just means that not every continuous epimorphism PXP \to X between topological spaces has a continuous section.

Then it may easily happen that an internal functor f:CDf\colon C \to D between internal categories in \mathcal{E} (for instance between topological categories) is fully faithful, in the “internal” sense that

C 1 D 1 C 0×C 0 D 0×D 0\array{C_1 & \overset{}{\to} & D_1\\ \downarrow && \downarrow\\ C_0 \times C_0 & \underset{}{\to} & D_0\times D_0}

is a pullback, and essentially surjective, in the “internal” sense that C 0× D 0Iso(D)D 0C_0 \times_{D_0} Iso(D) \to D_0 is surjective (or even a quotient map, i.e. a regular epimorphism), but for which there still does not exist a weak inverse in Cat()Cat(\mathcal{E}).

For example, let XX be a topological space and consider the functor C(U)XC(U) \to X, where XX is regarded as an internal category in TopTop which is discrete in the categorical sense, and C(U)C(U) is the Cech groupoid associated to an open cover X= iU iX = \bigcup_i U_i of XX. That means that the space of objects of C(U)C(U) is iU i\coprod_i U_i, and its space of morphisms is i,j(U iU j)\coprod_{i,j} (U_i\cap U_j). Then the functor C(U)XC(U)\to X is fully faithful (essentially by definition of the morphisms in C(U)C(U)) and essentially surjective (since the U iU_i are a cover of XX) in the senses above. However, in general it does not admit a weak inverse, since the continuous function iU iX\coprod_i U_i \to X does not have a continuous section if XX is connected unless one of the U iU_i is already equal to XX.

Note that the foundational point of view also fits in this picture; we can simply take =Set ¬AC\mathcal{E} = Set_{\not AC} to be the category Set of sets in a model of set theory that need not satisfy the axiom of choice. Here the same thing may happen: not every fully faithful and essentially surjective functor has a weak inverse.

Homotopical motivation

There is a standard way to deal with such situations where we are faced with a category – here the category Cat()Cat(\mathcal{E}) of categories internal to \mathcal{E} – some of whose morphisms look like they ought to have inverses, but do not: we call these would-be invertible morphisms weak equivalences such that our category becomes a category with weak equivalences or a homotopical category. Then we pass to the corresponding homotopy category: the universal “improvement” of our category such that all the would-be invertible morphisms do become invertible.

Here we take the weak equivalences in Cat()Cat(\mathcal{E}) to be the internal functors that are internally fully faithful and essentially surjective. It turns out that this choice of weak equivalences is particularly well-behaved in that it actually forms a calculus of fractions. Due to the early work on abstract homotopy theory by Gabriel and Zisman, there is simple explicit construction of the corresponding homotopy category Ho(Cat())Ho(Cat(\mathcal{E})) in this case: the objects are the same as those of Cat(E)Cat(E) – hence categories internal to \mathcal{E} for us – and the morphisms f:CDf\colon C \to D are spans of morphism in Cat()Cat(\mathcal{E})

C^ f^ D W C, \array{ \hat C &\stackrel{\hat f}{\to}& D \\ \downarrow^{\mathrlap{\in W}} \\ C } \,,

where the left leg is a weak equivalence, hence for us: where the left leg is an internal functor that is kk-surjective for all kk. (This is the beginning of the construction of the Dwyer-Kan localization at our chosen weak equivalences.)

For the case =Top\mathcal{E} = Top such a span is a morphism out of a Cech cover. For instance for C=XC = X a topological space regarded as a topological category, for GG a topological group and D=BGD = \mathbf{B}G its delooping one-object topological groupoid, such a span is a Cech cocycle on XX with values in GG.

And finally: for the case that =Set ¬C\mathcal{E} = Set_{\not C} is the category of sets without the axiom of choice, such a span is an anafunctor: a functor C^C\hat C \to C that is surjective on objects and full and faithful, together with a functor C^D\hat C \to D out of the “resolution” of CC.

So one can understand ordinary anafunctors as follows:

  1. first we consider that the axiom of choice may fail, which makes previously invertible functors non-invertible;

  2. then we universally force the now non-invertible functors to become invertible after all, by throwing in formal inverses for them.

More generally, in any category of fibrant objects the morphisms in the homotopy category are represented by spans of the form

X^ Y X \array{ \hat X &\to & Y \\ \downarrow^{\mathrlap{\simeq}} \\ X }

with the left leg being an acyclic fibration. (This is a special case of the general statements of simplicial localization).


Given categories CC and DD, an anafunctor F:CDF\colon C \to D may be rather slickly defined as a span of ordinary (strict) functors CσF¯τDC \overset{\sigma}\leftarrow \overline{F} \overset{\tau}\rightarrow D (where F¯\overline{F} is some category), with the property that the functor σ:F¯C\sigma\colon {\overline{F}} \to C is both faithful and (strictly!) surjective on both objects and morphisms (therefore both full and essentially surjective on objects). It is also possible to define an anafunctor as a span in which σ\sigma is merely a weak equivalence (that is, faithful, full, and essentially surjective on objects), although that is slightly more complicated to work with.

Explicit set-theoretic definition

In more explicit detail, an anafunctor F:CDF\colon C \to D consists of:

  • a set |F|{|F|} of specifications of FF (which corresponds to the set of objects of F¯\overline{F});
  • maps σ:|F|C\sigma\colon {|F|} \to C and τ:|F|D\tau\colon {|F|} \to D (taking values in objects). Given x:Cx\colon C and y:Dy\colon D, we say that yy is a specified value of FF at xx if, for some s:|F|s\colon {|F|}, x=σ(s)x = \sigma(s) and y=τ(s)y = \tau(s); in this case, ss specifies yy as a value of FF at xx, and we write F s(x)=yF_s(x) = y. That is,
    F s(x)τ(s). F_s(x) \coloneqq \tau(s) .

    We say that yy is a value of FF at xx if yy is isomorphic (in DD) to some specified value of FF at xx; we write F(x)yF(x) \cong y. (There is no notion of the value of FF at xx, except in the up-to-isomorphism sense of the generalised the, and F(x)=yF(x) = y is a meaningless statement.);

  • for each s,t:|F|s, t\colon {|F|} and morphism f:σ(s)σ(t)f\colon \sigma(s) \to \sigma(t) in CC, a morphism
    F s,t(f):F s(x)F t(y) F_{s,t}(f)\colon F_s(x) \to F_t(y)

    in DD, where xσ(s)x \coloneqq \sigma(s) and yσ(t)y \coloneqq \sigma(t). Similarly to the above, we can define whether a given morphism gg in DD is a specified value of FF at a given morphism ff in CC or whether gg is (merely) a value of FF at ff. (Again, there is no notion of the value of FF at ff.);

  • σ\sigma is a surjective function. Thus, FF has some value at any given object or morphism of CC. (In the internalized case, this requirement can become quite complicated; for example, internal to Diff, one requires a surjective submersion.);
  • FF preserves identities. That is, given s:|F|s\colon {|F|}, the value of FF specified by ss and ss at the identity of σ(s)\sigma(s) is the identity of τ(s)\tau(s), or (in symbols) F s,s(id σ(s))=id τ(s)F_{s,s}(\id_{\sigma(s)}) = \id_{\tau(s)}, or (whenever this makes sense)
    F s,s(id x)=id F s(x); F_{s,s}(\id_x) = \id_{F_s(x)} ;
  • FF preserves composition. That is, given s,t,u:|F|s, t, u\colon {|F|}, f:σ(s)σ(t)f\colon \sigma(s) \to \sigma(t), and g:σ(t)σ(u)g\colon \sigma(t) \to \sigma(u),
    F s,u(f;g)=F s,t(f);F t,u(g). F_{s,u}(f;g) = F_{s,t}(f);F_{t,u}(g) .

    (Here the semicolon indicates composition in the anti-Leibniz order.).

From the above explicit data, the category F¯\overline{F} is constructed as follows: the objects of F¯\overline{F} are the elements of |F|{|F|}, while a morphism sts \to t in F¯\overline{F} is simply a morphism σ(s)σ(t)\sigma(s) \to \sigma(t) in CC. Then σ\sigma extends to a surjective faithful functor from F¯\overline{F} to CC (acting as the identity on morphisms), and τ\tau extends to a functor from F¯\overline{F} to DD (mapping the morphism f:stf\colon s \to t in F¯\overline{F} to F s,t(f):τ(s)τ(t)F_{s,t}(f)\colon \tau(s) \to \tau(t) in DD).

An anafunctor FF is saturated if, whenever F(x)yF(x) \cong y, F s(x)=yF_s(x) = y for some unique specification ss, where the unicity of ss depends not only on xx and yy but also on how yy is a value of FF at xx. To be precise: if g:yyg\colon y' \to y is an isomorphism in DD and F s(x)=yF_{s'}(x) = y' for some specification ss', then there is a unique specification ss such that F s,s(id x)=gF_{s',s}(\id_x) = g (where in particular, σ(s)=x\sigma(s) = x and F s(x)=yF_s(x) = y). Every anafunctor F:CDF\colon C \to D has a saturation F¯\overline{F}; F¯\overline{F} is a saturated anafunctor and FF¯F \cong \overline{F} in the category of anafunctors from CC to DD. In fact, the inclusion of the saturated anafunctors into the anafunctors (as a full subcategory) is an equivalence of categories (given fixed CC and DD).

The usual notions of full functors and faithful functors can be generalized to anafunctors. An anafunctor FF is full if the maps F s,t:Hom(σ(s),σ(t))Hom(τ(s),τ(t))F_{s, t}: Hom(\sigma(s), \sigma(t)) \to Hom(\tau(s), \tau(t)) are all surjective, and it is faithful if the maps are injective.

Anafunctors can be composed via pullback. Given anafunctors F:CDF: C \to D, G:DEG: D \to E, we can form the pullback

|GF| |G| τ GE σ G |F| τ F D σ F C \array{ |GF| & \to & |G| & \overset{\tau_G}\to E\\ \downarrow & & \downarrow\mathrlap{\sigma_G}\\ |F| & \underset{\tau_F}\to & D\\ \mathllap{\sigma_F}\downarrow\\ C }

More explicitly, the specifications are given by pairs (s,t)|F|×|G|(s, t) \in |F| \times |G| such that τ F(s)=σ G(t)\tau_F(s) = \sigma_G(t), and σ GF(s,t)=σ F(s)\sigma_{G F}(s, t) = \sigma_F(s), τ GF(s,t)=τ G(t)\tau_{G F}(s, t) = \tau_G(t). For (s,t),(s,t)|GF|(s, t), (s', t') \in |GF| and an arrow f:σ F(s)σ F(s)f: \sigma_F(s) \to \sigma_F(s'), we obtain an arrow F s,s(f):τ(s)τ(s)F_{s, s'}(f): \tau(s) \to \tau(s'). This is also an arrow σ G(t)σ G(t)\sigma_G(t) \to \sigma_G(t'), so we can lift this map to G t,tF s,s(f):τ(t)τ(t)G_{t, t'}F_{s, s'}(f): \tau(t) \to \tau(t'), and this completes the description of the anafunctor. The other axioms can be verified straightforwardly.

Categories, anafunctors, and a suitably defined notion of ananatural transformation between them form a bicategory Cat anaCat_{ana}; an internal equivalence in this 2-category is called an anaequivalence. Every functor may be interpreted as an anafunctor, with |F|{|F|} always taken to be (the set of objects in) CC itself and σ\sigma the identity functor. Indeed, there is a 2-functor to Cat anaCat_{ana} from the strict 2-category StrCatStr Cat of categories, functors and natural transformations; this functor is an equivalence if and only if the axiom of choice holds. Thus, most mathematicians will identify Cat anaCat_{ana} and StrCatStr Cat as simply Cat, the 22-category of categories; however, mathematicians who doubt the axiom of choice will distinguish them. While anafunctors exist in any case, there is an ideological statement that may be implied by their use: that CatCat is really Cat anaCat_{ana} rather than StrCatStr Cat.

In any case, (modulo “size issues” which one may want to impose) the inclusion of StrCatStr Cat into Cat anaCat_{ana} has a right adjoint, described using cliques. Accordingly, we can instead define anafunctors by means of clique categories, taking an anafunctor from CC into DD to be a genuine functor from CC into Clique(D)Clique(D) (and the 2-category of anafunctors as the Kleisli category for the Clique()Clique(-) 2-monad (in particular, natural transformations between anafunctors into DD are simply natural transformations of the corresponding genuine functors into Clique(D)Clique(D))).

Internal definition using covers

We generalise the slick definition of anafunctors as spans rather than the detailed definition involving specified values.

Let SS be a category containing a collection of morphisms called “covers” such that

Note that these are precisely the axioms saying that the singleton families {p:VU}\{p\colon V\to U\} where pp is a cover form a subcanonical Grothendieck pretopology. One important class of examples is when SS is a regular category and the covers are the regular epimorphisms. Another is when SS is the category of smooth manifolds and the covers are the surjective submersions.

In such a situation, if CC and DD are internal categories in SS, we define an anafunctor CDC\to D to consist of a span CFDC\leftarrow F \to D of internal functors such that:

  1. F 0C 0F_0\to C_0 (the map of objects) is a cover.

  2. FCF\to C is fully-faithful, in the internal sense that the following is a pullback square:

    F 1 C 1 F 0×F 0 C 0×C 0\array{F_1 & \to & C_1 \\ \downarrow && \downarrow \\ F_0\times F_0& \to & C_0\times C_0}

Note that assuming F 0C 0F_0\to C_0 is a cover, so is F 0×F 0C 0×C 0F_0\times F_0\to C_0\times C_0 (it is a composition of pullbacks of F 0C 0F_0\to C_0); thus the above pullback always exists.

By the remarks above, if SS is Set and “cover” means “surjection” (an example where the covers are the regular epimorphisms), then we recover the original external notion of (small) anafunctor. An anafunctor, defined in this way, is saturated just when the map core(F)core(C×D)core(F) \to core(C\times D) of cores is an isofibration, so we need an internal notion of core to define saturated anafunctors internally. An anafunctor is an anaequivalence when FDF\to D is fully faithful and essentially surjective, meaning the canonical map F 0× C 0C 1C 0F_0\times_{C_0}C_1 \to C_0 has splits over a cover of C 0C_0. For Lie groupoids, these are the Morita equivalences.

If CFDC\leftarrow F \to D and CGDC\leftarrow G \to D are internal anafunctors, we define an ananatural transformation between them (or simply a natural transformation, given the context) to be a natural transformation between the two induced internal functors F× CGDF\times_C G \to D. We can then prove that internal categories, anafunctors, and natural transformations form a bicategory. (Interestingly, you may need the axiom of choice in the metalogic? to conclude this, depending on whether there is a natural way to choose the necessary pullbacks; else you get an anabicategory, in which the composition functors are anafunctors.)

The role of the assumptions about covers is:

  • Identity maps must be covers in order to have identity anafunctors (and more generally, for every functor to give rise to an anafunctor).
  • To compose anafunctors by pullback, the pullbacks of covers must exist and be covers, and covers must be closed under composition.
  • To define F× CGF \times_C G and obtain a notion of natural transformation, we again need covers to have pullbacks.
  • To define composition of natural transformations between anafunctors, we need covers to be effective; see diagram (118) in HGT1.

Note: in Section 1.1.5 of HGT1, the following additional axiom was assumed on the class of covers:

  • every congruence involving a cover has a quotient object which is a cover.

This is not needed for anafunctors but is used to relate descent to bundles (and then to 22-bundles).

As an operation on 2-categories

This section is work in progress by me

While internal anafunctors seem to require a lot of baggage, they can be defined very elegantly by working with the 2-category Cat(S)Cat(S) (or some sub-2-category thereof) as a 2-category. One first makes the observation:

  • functors internal to SS which are fully faithful and whose object component belongs to a singleton Grothendieck pretopology themselves form a (strict) singleton pretopology on Cat(S)Cat(S). Thus one can consider anafunctors as spans in a 2-category where the source leg belongs to a strict, subcanonical singleton Grothendieck pretopology, all of whose covers are ff.

Homotopy-theoretic interpretation

Observe that the surjective-on-objects equivalences are precisely the acyclic fibrations for the canonical model structure on Cat. Therefore, anafunctors can be identified with the “one-step generalized morphisms” in CatCat whose first leg is not just a weak equivalence but an acyclic fibration. However, it appears that the canonical model structure on Cat only exists (with its weak equivalences being the fully faithful and essentially surjective maps) under the assumption of some choice—though full AC is not needed, COSHEP suffices.

More generally, it is proven in EKV that if SS has a Grothendieck coverage, then under suitable additional conditions on SS (and, of course, the axiom of choice assumed external to SS), there is a model structure on the category Cat(S)Cat(S) of internal categories in SS relative to that coverage. The internal anafunctors relative to the given coverage, as defined above, can then once again be identified with the spans whose first leg is an acyclic fibration.

Since all objects in the canonical model structure on Cat are fibrant, according to Kenneth Brown’s theorem in homotopical cohomology theory it follows that one-step generalized morphisms already realize the full localization, i.e. they represent all morphisms in the homotopy category Ho(Cat)Ho(Cat).

If we specialize to groupoids, with their canonical model structure by BrownGolasiński, then by the general idea of homotopical cohomology theory this means that anafunctors between groupoids represent nonabelian cocycles on groupoids with values in groupoids. By the notion of codescent such homotopical cocycles are related to descent data that enters the definition of sheaves and stacks.


We will use the explicit set-theoretic definition in this section.

Product anafunctor

Given a category CC with binary products, we can form a product functor P:C×CCP: C \times C \to C that sends a pair of objects (A,B)(A, B) to a product of them. This requires picking a product for each pair, and hence requires the axiom of choice.

However, we can form the product anafunctor without using choice. The specifications are given by |P|=product diagrams in C|P| = \text{product diagrams in }\;C, and the maps σ:|P|C×C\sigma: |P| \to C \times C and τ:|P|C\tau: |P| \to C are given by

σ(ADB)=(A,B),τ(ADB)=D. \sigma(A \leftarrow D \rightarrow B) = (A, B),\;\; \tau(A \leftarrow D \rightarrow B) = D.

Given product diagrams ADBA \leftarrow D \rightarrow B and ADBA' \leftarrow D' \rightarrow B', and a map (f,g):(A,B)(A,C)(f, g): (A, B) \to (A', C') in C×CC \times C, we obtain P(f,g):DDP(f, g): D \to D' by the universal property of the product. The compatibility conditions are easy to check.

Anafunctor from functor

Suppose we have a usual functor F:CDF: C \to D. Then we can obtain an anafunctor as the span

C F D id C C \array{ C & \overset{F}\to & D\\ \mathllap{id_C} \downarrow \\ C }

The composition of anafunctors agree with the composition of functors.

Inverses of anafunctors

Given an anafunctor F:CDF: C \to D with σ:|F|C\sigma: |F| \to C and τ:|F|D\tau: |F| \to D, if FF (ie. τ\tau) is essentially surjective, then its saturation is strictly surjective.

Then given a saturated full and faithful essentially surjective anafunctor, we can obtain an inverse anafunctor F 1:DCF^{-1}: D \to C by swapping τ\tau and σ\sigma around. The conditions of being full and faithful and essentially surjective guarantees the axioms are still satisfied.

Questions of size

Even if CC and DD are small categories, then the category Ana(C,D)Ana(C,D) of anafunctors from CC to DD is not necessarily even essentially small, and thus the 2-category Cat anaCat_{ana} of categories and anafunctors is not cartesian closed. Some models in which this fails to be true are sketched in this MO discussion.

This is true, however, under the assumption of COSHEP, since in that case (as above) anafunctors represent maps in Ho(Cat)Ho(Cat), which is locally small by general model category theory. More specifically, under COSHEP every anafunctor CFDC\leftarrow F \to D is equivalent to one where the set of objects of FF is C 0C_0', where C 0C 0C_0'\to C_0 is a projective cover of the set C 0C_0 of objects of CC.

COSHEP is actually stronger than necessary for this; all that is really needed is WISC, i.e. for any set XX, the full subcategory of Set/XSet/X consisting of surjections has a weakly initial set. For in that case, any anafunctor CFDC\leftarrow F \to D is equivalent to one where the set of objects of FF, equipped with its surjection to C 0C_0, belongs to the weakly initial set. Note that COSHEP implies WISC, as do the axiom of multiple choice and the axiom of small violations of choice (SVC).

In Makkai’s paper, he proves that Ana(C,D)Ana(C,D) is essentially small under the assumption of his small cardinality selection axiom (SCSA), which also follows from SVC. Although SCSA and WISC carry the same feel that “choice is violated only in a small way,” Makkai’s proof from SCSA is an “injective” approach, in that the set of possibilities for the objects of FF is constructed mainly from DD, rather than purely from CC as in the “projective” approach above using COSHEP or WISC.

Another axiom ensuring that Ana(C,D)Ana(C,D) is essentially small is the axiom of stack completions (ASC), since if DD^D\to \hat{D} is an intrinsic stack completion we have Ana(C,D)Fun(C,D^)Ana(C,D) \simeq Fun(C,\hat{D}).

In particular, the bicategory of categories and anafunctors is locally essentially small and cartesian closed in the internal logic of any Grothendieck topos, because the latter satisfies WISC, SCSA, and ASC.

Anafunctors in homotopy type theory

Anafunctors are unnecessary when using “saturated/univalent” categories in homotopy type theory (see Def. 9.1.3 of the HoTT book, and Chap. 9 notes), because of their functor comprehension principle. An anafunctor is a span whose first leg is a surjective and fully faithful functor, but for saturated categories any such functor is an equivalence (in the strong sense of having an inverse), so any anafunctor is equivalent to a functor.

Anafunctors versus representable profunctors

A different way of describing “a functor whose values are determined only up to isomorphism” is with a representable profunctor (a.k.a. distributor). A profunctor ABA ⇸ B is a functor F:A[B op,Set]F\colon A \to [B^{op},Set], and we call it representable if each presheaf F(a)F(a) is representable.

In the presence of AC, one can then choose a representing object F aBF_a\in B for each aa and thereby define a functor ABA\to B, but without choice this is generally not possible. However, one can define an anafunctor from AA to BB, whose specifications at aa are “representations” of F(a)F(a).

Conversely, given an anafunctor represented by a span AgPfBA \xleftarrow{g} P \xrightarrow{f} B, one can define a profunctor ABA ⇸ B as the composite f *g *f_* \circ g^*, where f *(p)(b)=B(b,f(p))f_*(p)(b) = B(b,f(p)) and g *(a)(p)=A(g(p),a)g_*(a)(p) = A(g(p),a), and this profunctor will be representable. This defines a bijective-on-objects equivalence of 2-categories between Cat anaCat_{ana} and Prof repProf_{rep}, the locally full sub-2-category of Prof determined by the representable profunctors. (This appears to have been written down first here by Jean Benabou).

Anafunctors and representable profunctors each have advantages. For purposes which require only the 2-category Cat anaProf repCat_{ana}\simeq Prof_{rep}, either one is of course sufficient. For instance, a non-cloven Grothendieck fibration can equally well be turned into a pseudofunctor valued in Cat anaCat_{ana} or in Prof repProf_{rep}. However, in this case Prof repProf_{rep} is arguably more natural, since an arbitrary functor (not necessarily a fibration) ABA \to B can be turned into a normal lax 2-functor B opProfB^{op}\to Prof, which is a pseudofunctor landing in Prof repProf_{rep} exactly when the given functor was a fibration. (It is a pseudofunctor landing in Prof corepProf_{corep} iff the functor was an opfibration, and it is a pseudofunctor iff the functor was exponentiable.) More generally, one good point about using representable profunctors is that they fit in immediately with the general notion of profunctor.

On the other hand, sometimes it requires a little contortion to put something in the form of a representable distributor. For instance, if AA has binary products, then there is obviously a product-assigning representable distributor P:A×AAP\colon A \times A ⇸ A defined by P(a 1,a 2)(a)=Hom A(a,a 1)×Hom A(a,a 2)P(a_1,a_2)(a) = Hom_A(a,a_1) \times Hom_A(a,a_2). But if A has binary coproducts, then in order to define a coproduct-assigning representable distributor C:A×AAC\colon A \times A ⇸ A, one needs to say something like

  • C(a 1,a 2)(a)=C(a_1,a_2)(a)= the set of triples (a 3,p 1,p 2,f)(a_3,p_1,p_2,f) where p i:a ia 3p_i\colon a_i \to a_3 are the injections into a coproduct and ff is a morphism aa 3a \to a_3, modulo an equivalence relation (a 3,p 1,p 2,f)(a 3,p 1,p 2,f)(a_3,p_1,p_2,f) \sim (a_3',p_1',p_2',f') if there exists a (necessarily unique iso)morphism g:a 3a 3g\colon a_3 \to a_3' commuting with all the structure maps.

(This is essentially making explicit the functor Cat anaProf repCat_{ana} \to Prof_{rep} defined above.) Of course, CC is more easily defined as a corepresentable distributor. But if we want to define a functor that involves both limits and colimits, like (a,b,c)a×(b+c)(a,b,c) \mapsto a \times (b + c), then it is not “naturally” represented as either a representable or a corepresentable profunctor. However, with anafunctors, all of these functors can be represented “naturally” in analogous ways. In the first case, we consider the span A×APAA\times A \leftarrow P \to A, where PP is the category of binary product diagrams in AA. In the second case, we consider the span A×ACAA\times A \leftarrow C \to A, where CC is the category of binary coproduct diagrams. And in the third case, we consider the span A×A×ADAA\times A\times A \leftarrow D \to A, where DD is the category of binary coproduct diagrams together with a product diagram one of whose factors is the vertex of the coproduct diagram.

Roughly speaking, anafunctors are formulated exactly in order to describe “functors defined up to isomorphism,” while representable distributors describe “functors valued in representable presheaves.” “Objects defined up to isomorphism” and “representable presheaves” are formally equivalent (without invoking AC), but not every “naturally occurring” object-defined-up-to-isomorphism is “given in nature” by the presheaf it represents. Some are given by the copresheaf they corepresent; others aren’t given directly in either of those ways. One can also think of an anafunctor as a particularly convenient “presentation” of a representable distributor.

A further reason that the notion of anafunctor is useful is that when working with internal categories, the quotienting operations necessary to define the composite of internal profunctors may not exist, whereas internal anafunctors can always be composed. Thus, when working with (for instance) smooth categories or groupoids, profunctors are not so much an option, but anafunctors are well-behaved (see the papers by Bartels and Roberts referenced below).


Higher versions

see infinity-anafunctor

Lower version

see anafunction

Additive version

The notion of abelian butterfly introduced by Behrang Noohi Weak maps of 2-groups is the additive version of the notion of (saturated) anafunctor: the equivalence between, on the one hand, internal groupoids and internal functors and, on the other hand, arrows and commutative squares in an abelian category extends to an equivalence between saturated anafunctors and butterflies.


The term “anafunctor” was introduced by Michael Makkai in

motivated in part to complete the analogy prophase:anaphase::profunctor:??.

The concept also appears, unnamed, in the article

Max Kelly, Complete functors in homology I (1963)

on homological algebra.

The popularity of the term was notably pushed by Toby Bartels, who considered internalizations of Makkai’s definition in

A development and exposition of the general setup taking Makkai’s and Bartels’ motivations and the theory of homotopical categories into account is

and a purely formal construction using 2-categories appears in the notes

See also

  • Erik Palmgren, Locally cartesian closed categories without chosen constructions, TAC.

Since anafunctors are a special case of a more general concept, they, or the general theory applying to them, has been considered under different terms elsewhere.

The general question of model category structures on categories of internal categories is discussed in

  • T. Everaert, R.W. Kieboom and T. Van der Linden , Model structures for homotopy of internal categories TAC, Vol. 15, CT2004, No. 3, pp 66-94. (web (pdf))

Closely related, still a bit more general, are the considerations in

  • Jardine, Cocycle categories K-theory 0782 (web) (pdf)

Some models of set theory in which the bicategory of anafunctors fails to be small are sketched in the answers to

Last revised on February 5, 2024 at 09:28:34. See the history of this page for a list of all contributions to it.