where πk is the canonical projection morphism to the k-th component. The existence of this morphism is a consequence of the universal property which characterizes the product (up to isomorphism). The restriction to binary products here is for ease of notation; diagonal morphisms exist similarly for arbitrary products. The image of a diagonal morphism in the category of sets, as a subset of the Cartesian product, is a relation on the domain, namely equality.
For concrete categories, the diagonal morphism can be simply described by its action on elements x of the object a. Namely, δa(x) = (x,x), the ordered pair formed from x. The reason for the name is that the graph of such a diagonal morphism is diagonal (whenever it makes sense), for example the graph of the diagonal morphism R → R2 on the real line is given by the line which is a graph of the equation y=x. The diagonal morphism into the infinite product X∞ may provide an injection into the space of sequences valued in X; each element maps to the constant sequence at that element. However, most notions of sequence spaces have convergence restrictions which the image of the diagonal map will fail to satisfy.
In particular, the category of categories has products, and so one finds the diagonal functor Δ: C → C×C given by Δ(a) = (a,a), the ordered pair for any object a in C. This functor can be employed to give a succinct alternate description of the product of objects within the category C: a product a×b is a universal arrow from Δ to (a,b). The arrow comprises the projection maps.
More generally, in any functor category CJ (here J should be thought of as a small index category), for each object a in C, there is a constant functor Δa which maps each object j in J to a Δa(j) = a and maps each morphism j → k in J to the identity morphism on a. The diagonal functor Δ: C → CJ assigns to each object of C the constant functor at that object (Δ(a) = Δa ∈ CJ), and to each morphism f: a → b in C the obvious natural transformation in CJ (given by ηj = f). In the case that J is a discrete category with two objects, the diagonal functor C → C×C is recovered.
Diagonal functors provide a way to define limits and colimits of functors. The limit of any functor F: J → C is a universal arrow from Δ to F and a colimit is a universal arrow F → Δ. If every functor from J to C has a limit (which will be the case if C is complete), then the operation of taking limits is itself a functor from CJ to C. The limit functor is the right-adjoint of the diagonal functor. Similarly, the colimit functor (which exists if the category is cocomplete) is the left-adjoint of the diagonal functor. For example, the diagonal functor from the discrete two object category is the left-adjoint of the binary product functor and the right-adjoint of the binary coproduct functor.