## 2 State of the Art
### Category Theory
#### 2.3.1 Category  
Category theory studies categories, which are mathematical entities that contain objects and relations between objects.  
In this context, mathematicians use relations to study the properties of objects rather than looking at the objects themselves. It is also possible to define relations between categories called functors; this leads to defining more extensive categories within which the objects are the categories and the relations are the functors. Although this can sound complicated when first encountered, it provides a way to represent abstraction levels; this concept also leads to the definition of some fundamental concepts for logic that we do not use here.  
We choose to use category theory in this work because of its properties that encompass both set theory and graphs. At the same time, category theory also has essential composition properties that allow propagating relations in the models we study and abstraction properties that are interesting in model comparisons.  
**Definition 1**.: _Category_  
_A category_ \(C\) _is composed of:_  
* _A class_ \(Ob(C)\) _of objects;_
* _For_ \(x,y\in Ob(C)\)_, the set_ \(Hom_{C}(x,y)\) _of morphisms from_ \(x\) _to_ \(y\)_;_ _Morphisms are often called arrows;_ _This set is called the_ \(H\) _most of_ \(x\) _and_ \(y\)_._  
_A category respects the following rules:_  
* _Composition: If_ \(f\in Hom_{C}(x,y)\) _and_ \(g\in Hom_{C}(y,z)\)_, then_ \(g\circ f\in Hom_{C}(x,z)\)_._
* _Associativity: If_ \(f\)_,_\(g\)_,_\(h\) _are morphisms such that_ \(g\circ f\) _and_ \(h\circ g\) _exist, then_ \((h\circ g)\circ f=h\circ(g\circ f)\)_._
* _Identity: for each_ \(x\in Ob(C)\)_, there exists an identity morphism_ \(Id_{x}:x.\longrightarrow x\)__  
We can give a graphic representation of a category through an oriented graph. This representation is called a diagram over the category. Vertices represent the objects of the category, and edges represent the morphisms. A diagram does not have to be exhaustive over the category. Thus, we can draw a finite diagram over a category with an infinity of objects (such as the \(S2 ML+Cat\) category that we define in Section 3). We often do not show identities and morphisms resulting from diagrams' composition, which allows better readability.  
Just like other mathematical objects, we can link categories through applications. The right concept of application between categories is functors, a categorical pendant of morphisms.  
**Definition 2**.: _Functor For two categories \(C\), \(D\), a functor \(F\) is an application \(F:C\longrightarrow D\) composed of:_  
* _A function_ \(F_{Ob}:Ob(C)\longrightarrow Ob(D)\)_;_
* _For each_ \(x,y\in Ob(C)\)_, a function_ \(F_{x,y}:Hom_{C}(x,y)\longrightarrow Hom_{D}(F_{Ob}(x),F_{Ob}(y))\)_._  
_We can note F(x) or F(f) if \(x\) is an object and f a morphism._  
_A functor_ \(F:C\longrightarrow D\) _satisfies the following requirements:_  
* _Identities are preserved by F, i.e., for_ \(x\in Ob(C)\)_,_ \(F(Id_{x})=Id_{F(x)}\)_;_
* _Composition is preserved by F, i.e., for_ \(x,y,z\in Ob(C)\) _and_ \(f\in Hom_{C}(x,y),g\in Hom_{C}(y,z)\)_, we have_ \(F(g\circ f)=F(g)\circ F(f)\)_._  
There exist applications between functors called natural transformations. Natural transformations are mappings for each object and morphism of a category between the images of their images by two functors. In this aspect, they allow transforming a functor into another functor. They are essential in defining the equivalences of categories.  
**Definition 3**.: _Natural transformation Let \(C\) and \(D\) be two categories. Let \(F:C\longrightarrow D\) and \(G:C\longrightarrow D\) be two functors. A natural transformation \(\alpha:F\longrightarrow G\) is composed for each \(x\in Ob(C)\) a morphism \(\alpha_{x}:F(x)\longrightarrow G(x)\) such that for each \(y\in Ob(C)\), for each \(f\in Hom_{C}(x,y)\), we have: \(G(f)\circ\alpha_{x}=\alpha_{y}\circ F(f)\) This corresponds to saying that the diagram found in Figure 2 commutes._