nLab
comma category

Contents

Idea

The comma category of two functors f:CE and g:DE is like an arrow category of E where all arrows have their source in the image of f and their target in the image of g (and the morphisms between arrows keep track of how these sources and targets are in these images).

Definition

If f:CE and g:DE are functors, their comma category is the category (f/g) whose

  • objects are triples (c,d,α) where cC, dD, and α:f(c)g(d) is a morphism in E, and whose

  • morphisms from (c 1,d 1,α 1) to (c 2,d 2,α 2) are pairs (β,γ), where β:c 1c 2 and γ:d 1d 2 are morphisms in C and D, respectively, such that α 2.f(β)=g(γ).α 1.

f(c 1) f(β) f(c 2) α 1 α 2 g(d 1) g(γ) g(d 2) (c 1,d 1,α 1) (β,γ) (c 2,d 2,α 2)\array{ f(c_1) &\stackrel{f(\beta)}{\to}& f(c_2) \\ \downarrow^{\alpha_1} && \downarrow^{\alpha_2} \\ g(d_1) &\stackrel{g(\gamma)}{\to}& g(d_2) \\ \\ (c_1,d_1, \alpha_1) &\stackrel{(\beta,\gamma)}{\to}& (c_2,d_2, \alpha_2) }

Another common notation for the comma category is (fg). The original notation, from which the terminology is derived, is (f,g), but this is rarely used any more; see the discussion below.

Definition in terms of pullbacks

Let I={ab} be the (directed) interval category and E I=Funct(I,E) the functor category.

The comma category is the pullback

(f/g) E I d 0×d 1 C×D f×g E×E\array{ (f/g) &\to& E^I \\ \downarrow && \downarrow^{d_0 \times d_1} \\ C \times D &\stackrel{f \times g}{\to}& E \times E }

(in the 1-category of categories).

Compare this with the construction at generalized universal bundle and with the definition of loop space object.

Alternatively, the comma category is the “lax pullback” – or rather the comma object (see the discussion at 2-limit) of the pullback diagram,

C f D g E\array{ && C \\ && \downarrow^f \\ D &\stackrel{g}{\to}& E }

i.e. the universal cone that commutes up to a natural transformation

(f/g) C f D g E\array{ (f/g) &\to& C \\ \downarrow &\Downarrow& \downarrow^f \\ D &\stackrel{g}{\to}& E }

In terms of the imagery of loop spaces objects, the comma category is the category of directed paths in E which start in the image of f and end in the image of g.

Examples

  • If f and g are both the identity functor of a category C, then (f/g) is the category C 2 of arrows in C.

  • If f is the identity functor of C and g is the inclusion 1C of an object cC, then (f/g) is the slice category C/c.

  • Likewise if g is the identity and f is the inclusion of c, then (f/g) is the coslice category c/C.

2-categorical properties

The comma category (f/g) comes with a canonical 2-cell in the square

Comma Square (f/g) C D E f g α

which is universal in the 2-category Cat; that is, it is an example of a 2-limit (in fact, it is a strict 2-limit). Squares with the same universal property in an arbitrary 2-category are called comma squares and their top left vertex is called a comma object.

Further properties

Discussion about notation

The terminology “comma category” is a holdover from the original notation (f,g) for such a category, which generalises (x,y) or C(x,y) for a hom-set.

It's a very natural notation, as it generalises the notation (x,y) (or [x,y] as is now more common) for a hom-set. But personally, I like (fg) (or (fg) if you want to differentiate from a cocomma category, but that seems an unlikely confusion), as it is a category of arrows from f to g. —Toby Bartels

Mike: Perhaps. I never write (x,y) for a hom-set, only A(x,y) or hom A(x,y) where A is the category involved, and this is also the common practice in nearly all mathematics I have read. I have seen [x,y] for an internal-hom object in a closed monoidal category, and for a hom-set in a homotopy category, but not for a hom-set in an arbitrary category.

I would be okay with calling the comma category (or more generally the comma object) E(f,g) or hom E(f,g) if you are considering it as a discrete fibration from A to B. But if you are considering it as a category in its own right, I think that such notation is confusing. I don’t mind the arrow notations, but I prefer (f/g) as less visually distracting, and evidently a generalization of the common notation C/x for a slice category.

Toby: Well, I never stick ‘E’ in there unless necessary to avoid ambiguity. I agree that the slice-generalising notation is also good. I'll use it too, but I edited the text to not denigrate the hom-set generalising notation so much.

Mike: The main reason I don’t like unadorned (f,g) for either comma objects or hom-sets is that it’s already such an overloaded notation. My first thought when I see (f,g) in a category is that we have f:XA and g:XB and we’re talking about the pair (f,g):XA×B — surely also a natural generalization of the very well-established notation for ordered pairs.

Toby: The notation (f/g/h) for a double comma object makes me like (fgh) even more!

Mike: I’d rather avoid using in the name of an object; talking about projections p:(fg)A looks a good deal more confusing to me than p:(f/g)A.

Toby: I can handle that, but after thinking about it more, I've realised that the arrow doesn't really work. If f,g:AB, then fg ought to be the set of transformations between them. (Or fg, but you can't keep that decoration up.)

Mike: Let me summarize this discussion so far, and try to get some other people into it. So far the only argument I have heard in favor of the notation (f,g) is that it generalizes a notation for hom-sets. In my experience that notation for hom-sets is rare-to-nonexistent, nor do I like it as a notation for hom-sets: for one thing it doesn’t indicate the category in question, and for another it looks like an ordered pair. The notation (f,g) for a comma category also looks like an ordered pair, which it isn’t. I also don’t think that a comma category is very much like a hom-set; it happens to be a hom-set when the domains of f and g are the point, but in general it seems to me that a more natural notion of hom-set between functors is a set of natural transformations. It’s really the fibers of the comma category, considered as a fibration from C to D, that are hom-sets. Finally, I don’t think the notation (f,g) scales well to double comma objects; we could write (f,g,h) but it is now even less like a hom-set.

Urs: to be frank, I used it without thinking much about it. Which of the other two is your favorite? By the way, Kashiwara-Schapira use M[CfEgD]. Maybe comma[CfEgD]? Lengthy, but at least unambiguous. Or maybe fE I g?

Zoran Skoda: (f/g) or (fg) are the only two standard notations nowdays, I think the original (f,g) which was done for typographical reasons in archaic period is abandonded by the LaTeX era. (f/g) is more popular among practical mathematicians, and special cases, like when g=id D) and (fg) among category experts…other possibilities for notation should be avoided I think.

Urs: sounds good. I’ll try to stick to (f/g) then.

Mike: There are many category theorists who write (f/g), including (in my experience) most Australians. I prefer (f/g) myself, although I occasionally write (fg) if I’m talking to someone who I worry might be confused by (f/g).

Urs: recently in a talk when an over-category appeared as C/a somebody in the audience asked: “What’s that quotient?”. But (C/a) already looks different. And of course the proper (Id C/const a) even more so.

Anyway, that just to say: i like (f/g), find it less cumbersome than (fg) and apologize for having written (f,g) so often.

Toby: I find (fg) more self explanatory, but (f/g) is cool. (f,g) was reasonable, but we now have better options.

Further reading

a low-tech description with several special cases identified in somewhat archaic terminology