nLab double profunctor




A double profunctor is an appropriate notion of profunctor between double categories.

Thinking of a profunctor H:CDH : C ⇸ D as representing some notion of heteromorphism, double profunctors either represent a notion of vertical heteromorphism or horizontal heteromorphism. For clarity, this article focuses on the horizontal double profunctors. Vertical double profunctors can be defined by taking the transpose.

That is, HH defines for each cC,dDc\in C, d \in D a set H(d,c)H(d,c) of horizontal heteromorphisms from dd to cc, so that a heteromorphism hH(d,c)h \in H(d,c) can be composed with horizontal morphisms f:ddf : d' \to d in DD and g:ccg : c \to c' in CC to yield a heteromorphism (f;h;g)H(d,c)(f;h;g) \in H(d',c').

Furthermore, HH defines, for each heteromorphisms hH(d,c),hH(d,c)h \in H(d,c), h' \in H(d',c') and vertical arrows α:dd\alpha : d \to d' in DD and β:cc\beta : c \to c' in CC, a notion of hetero-2-cell:

d h c α ϕ β d h c \begin{matrix} d &\stackrel{h}{\to} & c \\ {}^{\mathllap{\alpha}}\downarrow &\Downarrow^{\mathrlap{\phi}}& \downarrow^{\mathrlap{\beta}} \\ d' &\underset{h'}{\to} & c' \end{matrix}

These can be composed vertically with hetero-2-cells along h,hh,h', and horizontally with 2-cells in D,CD, C of the appropriate shape along α,β\alpha, \beta.


A double profunctor can be defined in several equivalent ways. In each case, however, we must choose whether to regard the “vertical” or the “horizontal” direction as primary; applying transposes results in a different notion of double profunctor.

As internal profunctors in Cat

Since a (strict) double category is an internal category in Cat, it makes sense to define a double profunctor to be an internal profunctor in CatCat. Thus, if CC and DD are double categories, a double profunctor CDC ⇸ D consists of a span C 0HD 0C_0 \leftarrow H \to D_0 in CatCat, together with actions C 1× C 0HHC_1 \times_{C_0} H \to H and H× D 0D 1HH\times_{D_0} D_1 \to H which are associative and commute with each other.

As collages in DblCat

Another natural way to define a double profunctor is in terms of its collage. From this perspective, a double profunctor CDC ⇸ D consists of a double category HH, together with double functors CHC\to H and DHD\to H such that:

  1. The images of CC and DD in HH are disjoint.
  2. The induced functor CDHC\sqcup D\to H is bijective on objects and vertical arrows.
  3. Each functor CHC\to H and DHD\to H is fully faithful on horizontal arrows and squares.
  4. There are no horizontal arrows in HH from an object of CC to an object of DD, and therefore also no squares whose horizontal source is a vertical arrow in CC and whose horizontal target is a vertical arrow in DD.

In order to identify this with the previous definition as written, for a double category C=C 1C 0C = C_1 \;\rightrightarrows\; C_0 written as an internal category in CatCat, we have to write the arrows of C 0C_0 vertically and the objects of C 1C_1 horizontally.

Defined in this way, double profunctors can be seen to be precisely the two-sided codiscrete cofibrations in the 2-category DblCatDblCat of double categories, double functors, and horizontal transformations.

As Span-valued double functors

A third natural way to define double profunctors is as functors defined on D op×CD^{op}\times C. In order to make this agree with the previous two definitions, we have to consider lax double functors from D op×CD^{op}\times C to SpanSpan, where D opD^{op} denotes horizontal reversal, and SpanSpan denotes the (pseudo) double category whose objects are sets, whose horizontal arrows are functions, and whose vertical arrows are spans.

Explicit definition

Each of these definitions can be unraveled to give a more explicit definition, and thereby shown to be the same. Explicitly, a double profunctor H:CDH\colon C ⇸ D consists of the following.

  • An ordinary profunctor H 0:C 0D 0H^0\colon C^0 ⇸ D^0, where now C 0C^0 denotes the horizontal category of CC.

  • An ordinary profunctor H 1:C 1D 1H^1 \colon C^1 ⇸ D^1.

  • Each rH 1(q,p)r \in H^1(q,p) is assigned a vertical source s(r)H 0(s(q),s(p))s(r) \in H^0(s(q),s(p)) and target t(r)H 0(t(q),t(p))t(r) \in H^0(t(q),t(p)).

  • Each hH 0(d,c)h \in H^0(d,c) is assigned an identity 1 hH 1(1 d,1 c)1_h \in H^1(1_d,1_c).

  • If r 1H 1(q 1,p 1)r_1 \in H^1(q_1,p_1) and r 2H 1(q 2,p 2)r_2 \in H^1(q_2,p_2) and t(r 1)=s(r 2)t(r_1) = s(r_2) (hence t(q 1)=s(q 2)t(q_1)=s(q_2) and t(p 1)=s(p 2)t(p_1)=s(p_2)), then there is a vertical composite r 2r 1H 1(q 2q 1,p 2p 1)r_2 \boxminus r_1 \in H^1(q_2 q_1,p_2 p_1) with s(r 2r 1)=s(r 1)s(r_2\boxminus r_1) = s(r_1) and t(r 2r 1)=t(r 2)t(r_2\boxminus r_1) = t(r_2).

  • The composition \boxminus is associative and unital (with 1 h1_h as identities), and interchanges with the action of the profunctor H 1H^1 and the vertical composition of squares in CC and DD.


  • As with any notion of profunctor, the appropriate hom should be a double profunctor. In fact, since there are 2 kinds of morphism, there are 2 different hom profunctors. Following the convention above, the horizontal hom is a profunctor CCC ⇸ C and is given by the canonical span C 0sC 1tC 0C_0 \stackrel{s}{\leftarrow} C_1 \stackrel{t}{\to} C_0 and the vertical hom is just the horizontal hom on the transpose.

  • If CC and DD are strict 2-categories regarded as vertically-discrete double categories, then a double profunctor CDC ⇸ D is the same as a CatCat-enriched profunctor, i.e. a strict 2-functor D op×CCatD^{op}\times C \to Cat. There is a corresponding statement in the pseudo case (see below).

  • On the other hand, if CC and DD are 2-categories regarded as horizontally-discrete double categories, then a double profunctor CDC ⇸ D is the same as a lax 2-functor D co×CSpanD^{co}\times C \to Span, or equivalently a normal lax 2-functor D co×CProfD^{co}\times C \to Prof.


The definition can be weakened to the case when the composition of CC and DD is weak in one direction or the other, or both (modulo a suitable definition of the latter situation, see double category for several possibilities).

  • The internal definition can easily be weakened in the case when CC and DD are horizontally pseudo, since then they are simply pseudo internal categories in CatCat.

  • The collage definition, on the other hand, can easily be weakened to the case when CC and DD are vertically pseudo, by looking at codiscrete cofibrations in the 2-category of vertically-pseudo double categories, pseudo double functors, and horizontal transformations. The explicit description of the collages could also be given for horizontally or doubly pseudo double categories, although in those cases it would be harder to identify them with codiscrete cofibrations, since horizontal transformations would no longer be the 2-cells in a 2-category (only a tricategory of some sort).

  • The Span-valued double functor definition makes perfect sense as written if CC and DD are vertically pseudo, and also if they are horizontally or doubly pseudo, modulo a suitable definition of “vertically lax functor” in the latter two cases.

  • The explicit definition can also easily be weakened, with an insertion of coherence isomorphisms for CC and DD in appropriate places.

There is also a natural notion of profunctor between virtual double categories, namely the proarrows in the virtual equipment vDblProf=KMod(Span,fc)vDblProf = KMod(Span,fc) whose objects are virtual double categories (here fcfc is the free-category monad on Span=Span(Set)Span = Span(Set)). If CC and DD are (possibly vertically pseudo) double categories, regarded as vertically-virtual double categories, then any double profunctor CDC ⇸ D in the sense of the above definitions can also be considered as a “virtual-double profunctor” in a straightforward way. However, not every virtual-double profunctor between double categories is a double profunctor; those that are are those satisfying a “representability” property.


Composition of double profunctors is, unfortunately, hard to define and not well-behaved. Several of the above definitions suggest a possible way to compose them. However, not all of these ideas are well-defined, and those that are well-defined are not associative. In particular, there is not a double category of double categories, double functors, and double profunctors (although there are various weaker structures, such as a virtual double category and a lax double category?).

Using internal profunctors

Internal profunctors can be composed, using a coequalizer, in any category which has coequalizers preserved by pullback. However, while CatCat has coequalizers, they are not preserved by pullback, so this does not work – it is not even possible to define actions making the putative “composite” into a double profunctor. (This failure has nothing to do with strictness or weakness; 2-colimits in CatCat are also not preserved by 2-pullbacks.)

This definition does, however, suggest a replacement for the nonexistent double category of double profunctors. Namely, internal categories, functors, and profunctors in any category with pullbacks always form a virtual double category, and in fact a virtual equipment. Thus, in particular, there is a virtual equipment DblProfDblProf of double categories, double functors, and double profunctors. In terms of the explicit definition, a cell in DblProfDblProf with some given boundary consists of:

  • An ordinary cell in ProfProf, whose boundary is obtained by applying () 0(-)^0, and

  • Another ordinary cell in ProfProf, whose boundary is obtained by applying () 1(-)^1, such that

  • Vertical sources, targets, identities, and composites are respected.

For many purposes, having a virtual equipment of double profunctors is sufficient. For instance, this is all we need in order to talk about weighted limits, and in order to define generalized multicategories. We can also use this as a setting in which to ask whether some particular pair (or string) of double profunctors might have a composite, or a “weak composite,” as described at tensor product.

The virtual equipment DblProfDblProf is also contained as a non-full sub-virtual-equipment of the virtual equipment vDblProfvDblProf of virtual double categories, functors, and virtual-double profunctors mentioned above.

Using collages

The standard way to compose codiscrete cofibrations CHDC\to H \leftarrow D and DKED\to K\leftarrow E is to take the pushout (or 2-pushout) H DKH\sqcup_D K and then factor CEH DKC\sqcup E \to H\sqcup_D K as CEHKH DKC\sqcup E \to H\circ K \to H\sqcup_D K in some way such as to make CEHKC\sqcup E \to H\circ K codiscrete. We can do this for codiscrete cofibrations in DblCatDblCat and thereby obtain composites of double profunctors. However, the resulting composition operation is not associative, since pushouts in DblCatDblCat do not preserve the requisite factorizations.

I believe that the binary composite of double profunctors defined in this way is a “weak composite” in the virtual double category DblProfDblProf, i.e. it has a universal property relative to cells with source of length 2 only. We can likewise define basic nn-ary composites of codiscrete cofibrations by taking an nn-ary pushout and then a factorization, but for n>2n\gt 2, as far as I can tell, there is little relation between these composites and DblProfDblProf. In particular, these composites form a “lax double category”, whereas a virtual double category with all weak composites can be identified with an “oplax double category.” I also don’t know whether the cells in DblProfDblProf with source of length >2\gt 2 can be seen from the perspective of collages.

Failure of associativity

Here is a concrete example of the failure of associativity, for any reasonable notion of “composite” for double profunctors.

  • Let AA be the free double category on two composable vertical arrows a 0α 0a 1α 1a 2a_0 \xrightarrow {\alpha_0} a_1 \xrightarrow{\alpha_1} a_2.

  • Let BB have four objects, vertical arrows β 0:b 0b 1\beta_0 : b_0\to b_1 and β 1:b 1b 2\beta_1 : b_1'\to b_2, and a horizontal arrow β:b 1b 1\beta' : b_1\to b_1' (plus identities).

  • Let C=AC=A, named instead c 0γ 0c 1γ 1c 2c_0 \xrightarrow{\gamma_0} c_1 \xrightarrow{\gamma_1} c_2.

  • Let DD be the free double category on one vertical arrow, d 0δd 2d_0 \xrightarrow{\delta} d_2.

  • Let H:ABH:A\to B be the double profunctor with

    • Four heteromorphisms h 0:a 0b 0h_0 :a_0 \to b_0, h 1:a 1b 1h_1 : a_1 \to b_1, h 1:a 1b 1h_1' : a_1 \to b_1', and h 2:a 2b 2h_2 : a_2 \to b_2.
    • Composition action h 1;β=h 1h_1 ; \beta' = h_1'
    • Two hetero-2-cells
      a 0 h 0 b 0 α 0 θ 0 β 0 a 1 h 1 b 1anda 1 h 1 b 1 α 1 θ 1 β 1 a 2 h 2 b 2 \begin{matrix} a_0 &\stackrel{h_0}{\to} & b_0 \\ {}^{\mathllap{\alpha_0}}\downarrow &\Downarrow^{\mathrlap{\theta_0}}& \downarrow^{\mathrlap{\beta_0}} \\ a_1 &\underset{h_1}{\to} & b_1 \end{matrix} \qquad\text{and}\qquad \begin{matrix} a_1 &\stackrel{h_1'}{\to} & b_1' \\ {}^{\mathllap{\alpha_1}}\downarrow &\Downarrow^{\mathrlap{\theta_1}}& \downarrow^{\mathrlap{\beta_1}} \\ a_2 &\underset{h_2}{\to} & b_2 \end{matrix}

      (note that they are not vertically composable!)

  • Let K:BCK:B\to C be the double profunctor with

    • Four heteromorphisms k 0:b 0c 0k_0 :b_0 \to c_0, k 1:b 1c 1k_1 : b_1 \to c_1, k 1:b 1c 1k_1' : b_1' \to c_1', and k 2:b 2c 2k_2 : b_2 \to c_2.
    • Composition action β;k 1=k 1\beta' ; k_1' = k_1
    • Two hetero-2-cells
      b 0 k 0 c 0 β 0 κ 0 γ 0 b 1 k 1 c 1andb 1 k 1 c 1 β 1 κ 1 γ 1 b 2 k 2 c 2 \begin{matrix} b_0 &\stackrel{k_0}{\to} & c_0 \\ {}^{\mathllap{\beta_0}}\downarrow &\Downarrow^{\mathrlap{\kappa_0}}& \downarrow^{\mathrlap{\gamma_0}} \\ b_1 &\underset{k_1}{\to} & c_1 \end{matrix} \qquad\text{and}\qquad \begin{matrix} b_1' &\stackrel{k_1'}{\to} & c_1 \\ {}^{\mathllap{\beta_1}}\downarrow &\Downarrow^{\mathrlap{\kappa_1}}& \downarrow^{\mathrlap{\gamma_1}} \\ b_2 &\underset{k_2}{\to} & c_2 \end{matrix}

      (also not vertically composable!)

  • Let L:CDL:C\to D be the double profunctor with

    • Two heteromorphisms 0:c 0d 0\ell_0 : c_0 \to d_0 and 2:c 2d 2\ell_2 : c_2 \to d_2.
    • One hetero-2-cell
      c 0 0 d 0 γ 0;γ 1 λ δ c 2 2 d 2 \begin{matrix} c_0 &\stackrel{\ell_0}{\to} & d_0 \\ {}^{\mathllap{\gamma_0;\gamma_1}}\downarrow &\Downarrow^{\mathrlap{\lambda}}& \downarrow^{\mathrlap{\delta}} \\ c_2 &\underset{\ell_2}{\to} & d_2 \end{matrix}

Then in the composite (H;K):AC(H;K) : A\to C, the composite hetero-2-cell (θ 0,κ 0)(\theta_0, \kappa_0) has vertical codomain (h 1,k 1)(h_1,k_1), while the composite hetero-2-cell (θ 1,κ 1)(\theta_1,\kappa_1) has vertical domain (h 1,k 1)(h_1',k_1'). But

(h 1,k 1)=(h 1,(β;h 1))=((h 1;β),h 1)=(h 1,k 1).(h_1,k_1) = (h_1, (\beta' ; h_1)) = ((h_1;\beta'),h_1) = (h_1',k_1').

Thus, (θ 0,κ 0)(\theta_0, \kappa_0) and (θ 1,κ 1)(\theta_1,\kappa_1) are vertically composable in (H;K)(H;K), producing a hetero-cell from α 0;α 1\alpha_0;\alpha_1 to γ 0;γ 1\gamma_0;\gamma_1. This can then be hetero-composed with λ\lambda to produce a hetero-2-cell in ((H;K);L)((H;K);L) from α 0;α 1\alpha_0;\alpha_1 to δ\delta.

However, there are no hetero-2-cells in KK that can be composed with λ\lambda in K;LK;L. Thus, in (H;(K;L))(H;(K;L)) there is no hetero-2-cell from α 0;α 1\alpha_0;\alpha_1 to δ\delta. Therefore

((H;K);L)(H;(K;L)). ((H;K);L) \neq (H;(K;L)).


  • Pécsi Bertalan, Hidak és profunktorok, Master’s dissertation (2012), pdf, English summary.

  • Robert Paré. Yoneda theory for double categories. Theory and Applications of Categories 25.17 (2011): 436-489.

Last revised on July 15, 2024 at 15:08:36. See the history of this page for a list of all contributions to it.