**Puzzle 97:** Since we require identity morphisms, any category with four morphisms must have at most four objects. In fact, there is only one such category: the four-object discrete category. With three objects, we can put our fourth morphism between any two objects, or add it as a loop on a single object. In the latter case, we can choose to make this loop idempotent (\\(f \circ f = f\\)) or involutive (\\(f \circ f = I_X\\)). Thus, we have three options in categories with three objects.

With two objects, we can place both morphisms in the same direction, or put them in opposing directions and demand that they be inverses. We can also add two loops to any given object, as long as the set of endomorphisms on that object gives a monoid; with three morphisms on an object, there are apparently seven such monoids up to isomorphism ([OEIS A058129](https://oeis.org/A058129)). Another option is to add one self-loop to each object; this gives three more possibilities, where we pick the same monoid (two choices) or different monoids (one choice) for each object. We can add a morphism \\(f : X \to Y\\) between the objects and add a loop \\(g : X \to X\\); we must have \\(f \circ g = f\\) since we don't have any other morphisms, but we can still choose the monoid on \\(X\\), for two options. Dually, we can add a morphism \\(f : X \to Y\\) and add a loop \\(g : Y \to Y\\), giving another pair of options. In total, we have \\(2 + 7 + 3 + 2 + 2 = 16\\) categories with two objects and four morphisms.

Lastly, with one object, we are concerned only with the number of monoids (up to isomorphism) on four elements, which is 35.

This gives \\(1 + 3 + 16 + 35 = 54\\) categories with four morphisms.

**EDIT:** [OEIS disagrees.](https://oeis.org/A125696) The sequence [A125697](https://oeis.org/A125697) suggests my counting is off for categories with 2 objects.

**EDIT 2:** Okay, I've gone through and corrected my counting. I missed a possibility in the class where we add one loop to each object: we can have the monoids be the same in two different ways (both idem. or both invol.) and we can have the monoids be different in one way (one idem, one invol.). The rest of my errors were just caused by referencing the wrong OEIS sequence -- I believe [OEIS A058129](https://oeis.org/A058129) does count monoids up to isomorphism, even though it doesn't say so explicitly.

With two objects, we can place both morphisms in the same direction, or put them in opposing directions and demand that they be inverses. We can also add two loops to any given object, as long as the set of endomorphisms on that object gives a monoid; with three morphisms on an object, there are apparently seven such monoids up to isomorphism ([OEIS A058129](https://oeis.org/A058129)). Another option is to add one self-loop to each object; this gives three more possibilities, where we pick the same monoid (two choices) or different monoids (one choice) for each object. We can add a morphism \\(f : X \to Y\\) between the objects and add a loop \\(g : X \to X\\); we must have \\(f \circ g = f\\) since we don't have any other morphisms, but we can still choose the monoid on \\(X\\), for two options. Dually, we can add a morphism \\(f : X \to Y\\) and add a loop \\(g : Y \to Y\\), giving another pair of options. In total, we have \\(2 + 7 + 3 + 2 + 2 = 16\\) categories with two objects and four morphisms.

Lastly, with one object, we are concerned only with the number of monoids (up to isomorphism) on four elements, which is 35.

This gives \\(1 + 3 + 16 + 35 = 54\\) categories with four morphisms.

**EDIT:** [OEIS disagrees.](https://oeis.org/A125696) The sequence [A125697](https://oeis.org/A125697) suggests my counting is off for categories with 2 objects.

**EDIT 2:** Okay, I've gone through and corrected my counting. I missed a possibility in the class where we add one loop to each object: we can have the monoids be the same in two different ways (both idem. or both invol.) and we can have the monoids be different in one way (one idem, one invol.). The rest of my errors were just caused by referencing the wrong OEIS sequence -- I believe [OEIS A058129](https://oeis.org/A058129) does count monoids up to isomorphism, even though it doesn't say so explicitly.