# Should an object in the category always be a formal mathematical structure?

Today I heard during a popular lecture about the applications of category theory, than an object in the category should always be some kind of mathematical structure e.g. a set, ring, monoid, etc. So I can't just say let's define database tables as objects in the category of...Or lets define data types as objects in the category of...and so on, because it's wrong. I have to proof in some way that some thing is really an object in the category. So as I understood there are some laws or criterias that every object in any category should satisfy or we can't call them "objects". But I couldn't find any really formal definition of an object in the category. I always thought that category theory is very abstract and we can call objects not only mathematical structures but whatever we want just declaratively. I agree with the point that if I say:"Let objects of the category be magmas. Than - yes, I should proof this". But can I call an object every thing I want without formal proof?

So I' interested are there really some laws that object in the category should satisfy and we define some kind of category we should proof that some element is really an object.

• Maybe you are looking for the difference between small and so called large categories. In small categories the objects form really a set and also the morphisms between objects form sets. Besides that you can always define categories which are not related to any popular mathematical structure, of course. – user42761 Apr 21 '15 at 11:32
• @André Thanks for the comment. I read about small and large categories and it is look interesting. As I understood from your comment - is I define a category as large then I can define any element I want as an object. If so then can you please answer with more details? Thanks – MainstreamDeveloper00 Apr 21 '15 at 11:37
• Maybe you shoud first try to read articles over ZFC, such as here en.wikipedia.org/wiki/Zermelo%E2%80%93Fraenkel_set_theory. Furthermore you can't define something to be large. For example the category of sets and functions between them is not small since the objects do not form a set. (There can't be the set of all sets.) So the objects form a so called class, and hence the category of sets is large. – user42761 Apr 21 '15 at 11:42
• @André: So instead you formalize large categories by adding universes/inaccessible cardinals. That's not the real issue, is it now? – Asaf Karagila Apr 21 '15 at 14:37

[...] an object in the category should always be some kind of mathematical structure e.g. a set, ring, monoid, etc. [...]

This is a really restricted point of view on category theory. Of course, the simplest examples that come to mind when talking about categories are such, but if category theory was only about those, it would be nothing else than a fancy language.

I give you some examples where the objects are not mathematical structures:

• For any monoid $M$, there is an associated category $\mathbf M$ with a unique object that I denote $\star$ and such that $\hom_{\mathbf M}(\star,\star) = M$ (where composition is the product in $M$). In that example, the object $\star$ is completely "inert", it can be anything and you don't care.

• For any poset $(P,\leq)$, there is a category $\mathbf P$ whose objects are the elements of $P$ and such that: \hom_{\mathbf P}(x,y) = \left\{ \begin{aligned} \{\ast\} &\quad \text{if x\leq y,}\\ \emptyset &\quad \text{otherwise} \end{aligned} \right. and the composition is the only one possible. For example, taking the poset of strictly positive natural numbers with the divisibility relation, one gets a category where the object are natural numbers (in particular, not structures!).

• For a topological space $X$, there is a category (in fact a groupoid) $\Pi_1(X)$ called the fundamental groupoid of $X$. Its objects are the points of $X$ (again, these are not structures) and the morphisms are the paths between those points up to homotopy. (Composition is the concatenation of paths.)

• It seems that you can in fact look at database from the categorical point of view. I don't know much about database, so I let you be the judge of the document.

One reason why categories of mathematical structures (where the morphisms are structure-preserving maps) are nice is that universal constructions like limits and colimits (1) exist and (2) are easy to describe. This usually boils down to the fact that limits and colimits in the category $\mathsf{Set}$ of sets are easy to describe, and for most "categories of mathematical structures", there are obvious functors to the category of sets which have good properties that allow us to "lift" these limits / colimits to the category in question. For example, limits and (more subtly) colimits can be constructed in the category $\mathsf{Grp}$ of groups by using properties of the forgetful functor $\mathsf{Grp} \to \mathsf{Set}$ like adjointness and monadicity.

That being said, there are lots of interesting categories which are not categories of mathematical structures. Pece gives some good examples of categories which are not "categories of mathematical structures". Here are some more:

• One class of examples comes from categories which are small enough to describe explicitly as graphs with composition laws. For example, the empty category, the terminal category $\bullet$, the arrow category $\bullet \to \bullet$, the walking span $\bullet \leftarrow \bullet \to \bullet$, the walking parallel pair $\bullet \underset{\to}{\to} \bullet$, the walking idempotent $\bullet \circlearrowleft e$ (with $e\circ e = e$),...

• Another class of examples comes from localizations. If you start with a category $\mathcal{C}$ with a subcategory $\mathcal W \subseteq \mathcal C$, you can form a new category $\mathcal C [ \mathcal W ^{-1}]$ by adjoining inverses to all the maps of $\mathcal W$. For example, the homotopy category of spaces is derived from the category of topological spaces by inverting all the weak homotopy equivalences.

• In a strongly-typed programming language, there is a category where the objects are datatypes and the morphisms are functions written in the programming language.

• There is a typo: it should be "by adjoining inverses to all the maps of $\mathcal W$". – Pece Apr 21 '15 at 20:44
• Ah! Thanks, I'll fix that. – tcamps Apr 22 '15 at 0:22