Basic concepts
📄️ Category
To define what a category is, we need to clarify a few terms. In many cases, we will use the term set, a collection of unique elements, and class for collections of sets. The use of the term class may depend on the foundational context, such as Zermelo–Fraenkel set theory or von Neumann–Bernays–Gödel set theory. For simplicity, we will use the term set if its elements have no additional properties and the term class if the elements represent structures with properties. Thus, we can define what a category is.
📄️ Functor
Programmers are familiar with the concept of functor and can recognize generic types such as lists as functors in object-oriented languages because they usually have a map/fmap/select method that transforms a list of type List<int> in a list List<string> through a function $$f : int \rightarrow string$$.
📄️ Natural transformations
In the previous section, we discussed functors, but even more important than functors in category theory are natural transformations. Informally, a natural transformation is a mapping between functors; through a natural transformation, one functor is transformed into another.
📄️ Tipuri de morfisme
Când lucră în teoria categoriilor dar și alte teorii matematice nu avem de multe ori noțiunea de egalitate, însă avem de cele mai multe ori noțiunea de izomorfism care este cel puțin la fel de puternică. În cazul mulțimilor și a funcțiilor
📄️ Construcții universale
În teoria categoriilor ne vor interesa obiecte cu proprietăți speciale. De obicei, ne vom pune întrebarea care dintre aceste obiecte au proprietățile cele mai "mari", respectiv cele mai "mici", acestea fiind obiecte universale cu aceste proprietăți. Chiar dacă pare neintuitiv modul cum ne punem
📄️ Functori adjuncți
Un lucru care este foarte important de discutat în teoria categoriilor este echivalența între categorii. Pentru categorii nu avem o definiție strictă pentru echivalență cum ar fi o corespondență unu la unu între mulțimea de obiecte și cea a