How could Hom sets not be disjoint in category theory I have came across some comments saying that in category theory, Hom-sets are NOT necessarily supposed to be disjoint, but I don’t see how one could manipulate such a category theory. Indeed, in the definition of the composition of two arrows, it is required to know from which Hom-sets the arrows are coming from, to be able to compose them. So in such a theory, we could imagine that the composition of two arrows depends on if we regard them as part of one Hom-set or another one… it’s problematic, because $f\circ g$ would not mean anything, depending on how we look at $f$ and $g$. Similarly, in the definition of a functor $F$, if we have $f \colon X \longrightarrow Y$ and $f \colon A \longrightarrow B$, then $F(f)$ is supposed to be such that $F(f):F(X)\longrightarrow F(Y)$ and $F(f) \colon F(A) \longrightarrow F(B)$ wich also is problematic no? It adds many things to be checked for each definitions and manipulations. Is this theory still usable and equivalent to a theory with disjoint Hom-sets?
Thanks for any answer you could give me,
Maxime
 A: A category $\newcommand{\cat}{\mathcal}\cat{C}$ can be defined as follows:


*

*We have a class of objects $\mathrm{Ob}(\mathcal{C})$.


*We have for every two objects $X$ and $Y$ of $\cat{C}$ a set $\newcommand{\Hom}{\mathrm{Hom}} \Hom_{\cat{C}}(x, y)$.


*We have for any three objects $X$, $Y$, $Z$ a composition map
$$
  μ_{X, Y, Z}
  \colon
  \Hom_{\cat{C}}(X, Y) × \Hom_{\cat{C}}(Y, Z)
  \longrightarrow
  \Hom_{\cat{C}}(X, Z) \,.
$$
These data must satisfy the following conditions:

*

*There exists for every object $X$ of $\cat{C}$ an element $1_X ∈ \Hom_{\cat{C}}(X, X)$ with

*

*$\mu_{X, X, Y}(1_X, f) = f$ for every $f ∈ \Hom_{\cat{C}}(X, Y)$, and

*$\mu_{X, Y, Y}(f, 1_Y) = f$ for every $f ∈ \Hom_{\cat{C}}(X, Y)$.



*For have for any four objects $W$, $X$, $Y$ and $Z$ the equality
$$
    μ_{W, Y, Z}( μ_{W, X, Y}(f, g), h )
    =
    μ_{W, X, Z}( f, μ_{X, Y, Z}(g, h))
  $$
for all $f ∈ \Hom_{\cat{C}}(W, X)$, $g ∈ \Hom_{\cat{C}}(X, Y)$ and $h ∈ \Hom_{\cat{C}}(Y, Z)$.


This definition doesn’t require $\Hom$-sets to be disjoint.
For convenience, it is nevertheless common to introduce the standard notions:

*

*Once we have specified two objects $X$ and $Y$ of $\cat{C}$, we can introduce synonyms for “$f ∈ \Hom_{\cat{C}}(X, Y)$”.
We often write “$f \colon X \to Y$”, or “$f$ is a morphism from $X$ to $Y$”, or that “$f$ is a morphism with domain $X$ and codomain $Y$” instead.
However, we need to keep in mind that this is just semantic sugar to make things easier to read.


*Given objects $X$, $Y$ and $Z$ and elements $f ∈ \Hom_{\cat{C}}(X, Y)$ and $g ∈ \Hom_{\cat{C}}(Y, Z)$, the element  $μ_{X, Y, Z}(f, g)$ is denoted by $g ∘ f$.
This is an an abuse of notation/operator overloading.
But since we have specified which objects $X$, $Y$ and $Z$ we are working over, this shouldn’t lead to problems.

Similarly, in the definition of a functor $F$, if we have $f \colon X \to Y$ and $f \colon A \to B$, then $F(f)$ is supposed to be such that $F(f) \colon F(X) \to F(Y)$ and $F(f) \colon F(A) \to F(B)$

We define a functor as follows:

Let $\cat{C}$ and $\cat{D}$ be two categories.
A functor $F$ from $\cat{C}$ to $\cat{D}$ consists of

*

*a map $F_0 \colon \mathrm{Ob}(\cat{C}) \to \mathrm{Ob}(\cat{D})$,


*for every two objects $X$ and $Y$ of $\cat{C}$ a map $F_{X, Y} \colon \Hom_{\cat{C}}(X, Y) \to \Hom_{\cat{D}}(F_0(X), F_0(Y))$.
These data must satisfy the following two conditions:

*

*$F_{X, X}(1_X) = 1_{F_0(X)}$ for every object $X$ of $\cat{C}$.


*$F_{X, Z}(g ∘ f) = F_{Y, Z}(g) ∘ F_{X, Y}(f)$ for ever three objects $X$, $Y$ and $Z$ and all $f ∈ \Hom_{\cat{C}}(X, Y)$ and $g ∈ \Hom_{\cat{C}}(Y, Z)$.

As usual, we abbreviate $F_0$ by $F$.
If we have specified which two objects $X$ and $Y$ we are working with, then we can also abbreviate $F_{X, Y}$ by $F$.
A: To make a long story short, if we don’t require the Hom sets to be disjoint, then we slightly change the definition of a category.
When we know hom sets are disjoint, we have a single partial function $a, b \mapsto a \circ b$.
When we don’t know hom sets are disjoint, we require an indexed family of composition operators $\circ_{A, B, C} : Hom(B, C) \times Hom(A, B) \to Hom(A, C)$. We typically suppress the subscript when it is clear from context which $A, B$, and $C$ are being referred to.
It should be noted that when we work with a category $C$ where the Hom sets are not necessarily disjoint, we can construct a category $C’$ which is isomorphic to $C$ where the Hom sets are disjoint. We define $Obj(C’) = Obj(C)$ and, for all $A, B \in Obj(C’)$, $Hom_{C’}(A, B) = \{(A, B, f) \mid f \in Hom_C(A, B)\}$. Composition is defined in the obvious way.
So there is really not much at stake when deciding whether to require Hom sets to be disjoint, except that it’s annoying to have to check it.
