\section{Grundlagen}
Oft betrachtet man in der Kategorientheorie Kategorien und sogenannte Funktoren, die quasi als Abbildungen zwischen Kategorien aufgefasst werden können.
\subsection{Kategorien}
Zunächst müssen wir definieren was eine Kategorie ist:
\begin{definition}[Kategorie]
    Eine Kategorie $\mathscr{C}$ ist:
    \begin{itemize}
        \item eine Klasse von Objekten $\ob\mathscr{C}$
        \item für $A,B\in\ob\mathscr{C}$ eine Menge $\mor{\mathscr{C}}{A}{B}$ eine Menge
              von Morphismen zwischen den Objekten
        \item für $A,B,C\in\ob\mathscr{C}$ eine Abbildung $\circ: \mor{\mathscr{C}}{B}{C}\times\mor{\mathscr{C}}{A}{B}\mapsto\mor{\mathscr{C}}{A}{C}$ also
              Verkettung von Morphismen
        \item Assoziativität der Morphismen bezüglich $\circ$ % TODO:Definition
        \item Für jedes $A\in\ob\mathscr{C}$ ein $id_A\in\mor{\mathscr{C}}{A}{A}$ mit
              $id_A \circ f=f$ und $g\circ id_A=g$ für alle $f\in\mor{\mathscr{C}}{B}{A}, g\in\mor{\mathscr{C}}{A}{B}$
    \end{itemize}
\end{definition}
Diese Definition ist bewusst recht allgemein gehalten um viele verschiedene Kategorien zu erlauben.
Die Morphismen müssen dabei nicht unbedingt Abbildungen sein, sondern lediglich die oben genannte Definition erfüllen.
Eine Klasse kann hier für alle Zwecke als Menge betrachtet werden.\\
Die folgenden Beispiele erfüllen alle oben genannten Axiome und sind daher Kategorien:
\begin{example}[\cat{Grp}]
    Ist die Kategorie der Gruppen
    \begin{itemize}
        \item $\ob\cat{Grp}=$ alle Gruppen
        \item $\mor{\cat{Grp}}{G}{H}=$ Gruppenhompmorphismen von $G$ nach $H$
        \item $\circ:$ Komposition von Gruppenhomomorphismen
    \end{itemize}
    Das ist wohldefiniert und \cat{Grp} ist eine Kategorie.
\end{example}
\begin{example}{Mehr Beispiele\\}
    \begin{itemize}
        \item \cat{$\mathbb{K}$-VR} die Kategorie der $\mathbb{K}$-Vektorräume und Vektorraumhomomorphismen
        \item \cat{Ringe} Die Kategorie der Ringe und Ringhomomorphismen
        \item \cat{Körper} Die Kategorie der Körper und Körperhomomorphismen
        \item \cat{Set} Die Kategorie der Mengen und aller Abbildungen
        \item \cat{Ab} Abelsche Gruppen und Gruppenhomomorphismen
        \item \cat{Top} Topologische Räume und stetige Abbildungen
        \item \cat{MRäume} Metrische Räume
        \item \cat{Euklid} Euklidische Vektorräume und Subisometrien
        \item \cat{Set$^*$} Kategorie der punktierten Mengen ($(M,m)$, $M$ Menge, $m\in M$ $(M,m)\xmapsto{f}(N,n)$ Abbildung mit $f(m)=n$)
    \end{itemize}
\end{example}
\begin{example}{Eine Kategorie in der die Morphismen keine Abbildungen sind\\}
    Sei $(G,\square)$ eine Gruppe. $\cat{G}$ ist definiert als:
    \begin{itemize}
        \item $\ob G :=\{*\}$
        \item $\mor{\cat{G}}{*}{*}=G$
        \item für $f,g\in\mor{\cat{G}}{*}{*}$ definiere $f\circ g:=f\square g$
        \item $id_*=e_G$
    \end{itemize}
    Die Morphismen von \cat{G} sind hier also keine Abbildungen, sondern die Elemente der Gruppe.
\end{example}
Oft werden Kategorien mit Hilfe von Graphen dargestellt.
Die Objekte werden zu Knoten und die Morphismen zu Kanten. \cat{G} würde daher folgendermaßen dargestellt:

\begin{center}
    \begin{tikzpicture}
        \node[circle,draw](star){$*$};
        \path
        (star) edge[out=321 , in=39 , loop] node[right] {f} (star)
        (star) edge[out=51 , in=129 , loop] node[above] {g} (star)
        (star) edge[out=141 , in=219 , loop] node[left] {$f\square g$} (star)
        (star) edge[out=231 , in=309 , loop] node[below] {$e_G$} (star)
        ;
    \end{tikzpicture}
\end{center}

\begin{example}{Kategorie aus einer partiell geordneten Menge\\}
    \label{ex:poset}
    Sei $(P,\le)$ eine partiell geordnete Menge ($\le$ ist eine reflexive, transitive und antisymmetrische Relation).
    $\cat{P}$ ist definiert als:
    \begin{itemize}
        \item $\ob\cat{P}:=P$
        \item für $x,y\in P$ definiere $\mor{\cat{P}}{x}{y}=
                  \begin{cases}
                      \{*_{xy}\}  & x\le y   \\
                      \varnothing & x\nleq y
                  \end{cases}
              $
        \item Sei $f\in\mor{\cat{P}}{x}{y}, g\in\mor{\cat{P}}{y}{z}$ (also $x=*_{xy}$ und $g=*_{yz}$)
              dann $*_{yz}\circ *_{xy}=*_{xz}$
        \item $id_x=*_{xx}$
    \end{itemize}
    Diese Kategorie sähe als Graph folgendermaßen aus:
    \begin{center}
        \begin{tikzpicture}
            \node(1) at (1,0){$\cdot$};
            \node(2) at (2,0){$\cdot$};
            \node(3) at (3,0){$\cdot$};
            \node(4) at (4,0){$\cdot$};
            \node(5) at (5,0){$\dots$};


            \path
            (1) edge (2)
            (2) edge (3)
            (3) edge (4)
            (4) edge (5)
            ;
        \end{tikzpicture}
    \end{center}
    Die Identitätsmorphismen und und Kompositionen der Morphismen werden im Graphen der Übersichtlichkeit halber nicht gezeichnet.
\end{example}


\begin{definition}{Isomorphismus\\}
    $f\in\mor{\mathscr{C}}{A}{B}$ heißt Isomorphismus wenn es $g\in\mor{\mathscr{C}}{B}{A}$ existiert
    mit $f\circ g=id_B$ und $g\circ f=id_A$
\end{definition}
Man kann leicht sehen, dass es in Beispiel \ref{ex:poset} keine nicht trivialen Isomorphismen geben kann.
Dazu wäre es nötig, dass Morphismen der From $*_{yx}$ und $*_{xy}$ existieren. Dazu wäre es aber
nötig, dass $x\le y$ und $y\le x$ gilt. Daraus folgt, dass $x=y$ gilt und somit der einzige Isomorphismus die Identität ist.
\subsection{Funktoren}
Es ist uns bereits Möglich Morphismen innerhalb von Kategorien zu definieren. Um auch zwischen Kategorien abbilden
zu können und diese so in Relation zu setzen definieren wir Funktoren.
\begin{definition}{Funktor (Kovariant)\\}
    Seien $\mathscr{C},\mathscr{D}$ Kategorien. Ein Funktor $\mathcal{F}$ von $\mathscr{C}$ nach
    $\mathscr{D}$ ist eine Zuordnung
    \begin{itemize}
        \item $\ob\mathscr{C}\mapsto\ob\mathscr{D}$ $(A\in\ob\mathscr{C}\mapsto\mathcal{F}(A))$
        \item und eine Zuordnung für $A,B\in\ob\mathscr{C}$ mit
              $\mor{\mathscr{C}}{A}{B}\mapsto\mor{\mathscr{D}}{\mathcal{F}(A)}{\mathcal{F}(B)}$
              sodass $\mathcal{F}(f\circ g)=\mathcal{F}(f)\circ\mathcal{F}(g)$
    \end{itemize}
    \begin{center}
        \begin{tikzpicture}
            \node(A) at (0,0){$A$};
            \node(C) at (0,-3){$C$};
            \node(B) at (1,-1.5){$B$};

            \path
            (A) edge node[left]{$f\circ g$} (C)
            (A) edge node[above]{$f$} (B)
            (B) edge node[right]{$g$} (C)
            ;
        \end{tikzpicture}
        \hspace{10mm}
        Wird vom Funktor abgebildet auf
        \hspace{10mm}
        \begin{tikzpicture}
            \node(A) at (0,0){$\mathcal{F}(A)$};
            \node(C) at (0,-3){$\mathcal{F}(C)$};
            \node(B) at (1,-1.5){$\mathcal{F}(B)$};

            \path
            (A) edge node[left]{$\mathcal{F}(f\circ g)$} (C)
            (A) edge node[right]{$\mathcal{F}(f)$} (B)
            (B) edge node[right]{$\mathcal{F}(g)$} (C)
            ;
        \end{tikzpicture}
    \end{center}
\end{definition}
\begin{example}{Vergissfunktor\\}
    $?:\cat{K-Vec}\mapsto\cat{Set}$\\
    $(V,+,\cdot)\mapsto V$ bildet einen Vektorraum auf die Menge der Vektoren ab und vergisst dabei alle anderen Informationen
    wie z.B. über welchem Körper der Vektorraum definiert war und jegliche Operationen.
\end{example}
\begin{example}{Ein Endofunktor\\}
    Sei V ein $\mathbb{K}$-Vektorraum. $\mathcal{F}:\cat{K-Vec}\mapsto\cat{K-Vec}$ mit $W\mapsto V\times W$. Funktoren mit gleicher Definitions und Bildkategorie nennt man Endofunktoren.
    \begin{center}
        \begin{tikzpicture}
            \node(W) at (0,0){$W$};
            \node(X) at (0,-1.5){$X$};

            \node(VW) at (3,0){$V\times W$};
            \node(VX) at (3,-1.5){$V\times X$};

            \node(FVW) at (4.5,0){$(v,w)$};
            \node(FVX) at (4.5,-1.5){$(v,f(w))$};

            \path
            (W) edge node[left]{$f$} (X)
            (VW) edge node[right]{$f\circ \mathcal{F}$} (VX)
            (FVW) edge (FVX)
            (W) edge node[above]{$\mathcal{F}$} (VW)
            (X) edge node[above]{$\mathcal{F}\circ f$} (VX)
            ;
        \end{tikzpicture}
    \end{center}
    Also werden Objekte aus der Definitions- auf Objekte aus der Bildkategorie und Morphismen aus der Definitions- auf Morphismen
    aus der Bildkategorie abgebildet. (Das Diagramm muss nicht unbedingt kommutieren)\\
    Bleibt noch zu zeigen, dass $\mathcal{F}(g\circ f)=\mathcal{F}(g)\circ\mathcal{F}(f)$ gilt.
    \begin{center}
        \begin{tikzpicture}
            \node(W1) at (0,0){$W_1$};
            \node(W2) at (2, 0){$W_2$};
            \node(W3) at (4,0){$W_3$};

            \path
            (W1) edge node[above]{$f$} (W2)
            (W2) edge node[above]{$g$} (W3)
            (W1) edge[bend right=20] node[below]{$g\circ f$} (W3);
        \end{tikzpicture}
    \end{center}
    Also:
    \begin{center}
        \begin{tikzpicture}
            \node(VW1) at (0,0){$V\times W_1$};
            \node(VW3) at (4, 0){$V\times W_3$};
            \node(vw) at (0,-1){$(v,w)$};
            \node(vw3) at (4,-1){$(v,(g\circ f)(w))$};
            \node(Func) at (6.5,-1){$\mathcal{F}(g\circ f)$};

            \path
            (VW1) edge (VW3)
            (vw) edge (vw3)
            ;
        \end{tikzpicture}
    \end{center}
    und
    \begin{center}
        \begin{tikzpicture}
            \node(VW1) at (0,0){$V\times W_1$};
            \node(VW2) at (2,0){$V\times W_2$};
            \node(VW3) at (4, 0){$V\times W_3$};
            \node(vw1) at (0,-1){$(v,w)$};
            \node(vw2) at (2,-1){$(v,f(w)$};
            \node(vw3) at (4,-1){$(v,g(f(w))$};
            \node(Func) at (6.5,-1){$\mathcal{F}(g)\circ \mathcal{F}(f)$};

            \path
            (VW1) edge (VW2)
            (VW2) edge (VW3)

            (vw1) edge (vw2)
            (vw2) edge (vw3)
            ;
        \end{tikzpicture}
    \end{center}
    Man sieht also, dass $\mathcal{F}(g\circ f)=\mathcal{F}(g)\circ\mathcal{F}(f)$ gilt.
    Damit ist $\mathcal{F}$ ein Funktor.
\end{example}
\begin{example}{Der Hom-Funktor (Kovariant)\\}
    Es sei $\mathscr{C}$ eine Kategorie, $X\in\ob\mathscr{C}$\\
    Definiere den Funktor $\mor{\mathscr{C}}{X}{\_}: \mathscr{C}\mapsto\cat{Set}$
    \begin{itemize}
        \item $Y\mapsto\mor{\mathscr{C}}{X}{Y}$\\
              Ein $Y\in\mathscr{C}$ wird also auf die Morphismenmenge $\mor{\mathscr{C}}{X}{Y}$, die Morphismen, die in $\mathscr{C}$ von X auf Y existieren, abgebildet.
        \item $[Y\xrightarrow{f}Z]\mapsto f^*=\mor{\mathscr{C}}{X}{f}:=
                  \left[
                      \begin{aligned}
                          \mor{\mathscr{C}}{X}{Y}\mapsto\mor{\mathscr{C}}{X}{Z} \\
                          [g:X\mapsto Y]\mapsto[f\circ g:X\mapsto Z]
                      \end{aligned}
                      \right]
              $\\
              Gehen wir also von beliebigen $X,Y\in\mathscr{C}$ aus, zwischen denen ein Morphismus $f$ existiert, so werden diese vom Hom-Funktor auf die 
              Morphismenmengen $\mor{\mathscr{C}}{X}{Y}$ und $\mor{\mathscr{C}}{X}{Z}$ abgebildet. Das heißt, dass wir jetzt 
              noch definieren müssen, worauf die Morphismen $\mor{\mathscr{C}}{Y}{Z}$ abgebildet werden. Wir müssen also jeden Morphismus aus $\mor{\mathscr{C}}{Y}{Z}$ auf einen Morphismus $\mor{\cat{set}}{\mor{\mathscr{C}}{X}{Y}}{\mor{\mathscr
              {C}}{X}{Z}}$ abbilden. Dies geschieht, indem wir ihn einfach mit einem entsprechenden passenden Morphismus verknüpfen. Wir identifizieren also jeden Morphismus $g: X\mapsto Y$ mit seiner Verknüpfung mit $f: Y\mapsto Z$
              und erhalten so einen neuen Morphismus $f^*$, der die geforderten Bedingungen erfüllt.
    \end{itemize}
\end{example}
\begin{example}{$\cat{R1ng}\mapsto\cat{Grp}$\\}
    $R\mapsto R^\times=\{r\in R|\exists s\in R:rs=1_R\}$\\
    $
        [R\xrightarrow{}S]\mapsto
        \left[
            \begin{aligned}
                R^\times\xrightarrow{f^\times}S^\times \\
                f^\times  = f
            \end{aligned}
            \right]
    $\\
    Man schränkt den Ring also auf alle invertierbaren Ringelemente ein und
    lässt nur noch die Abbildungen übrig, die ohnehin schon zwischen invertierbaren Elementen abgebildet haben.
\end{example}
\begin{example}{$\cat{Set}\mapsto\cat{K-VR}$\\}
    Definiere\\
    $M\mapsto \text{Abb}_0(M,\mathbb{K})=\{\text{Abb } M\mapsto\mathbb{K} \text{ fast überall } 0\}$ (Freier Vektorraum über M)\\
    $\mathcal{F}(M):=\left\{\displaystyle\sum_{m\in M}\lambda_m\cdot m|\lambda_m=0\text{ ffa } m\in M, \lambda_m\in\mathbb{K}\right\}$\\
    \begin{center}%TDOD: Fix tikz picture
        \begin{tikzpicture}
            \node(M) at (0,0){$M$};
            \node(N) at (0,-2){$N$};
            \node(FM) at (2,0){$\mathcal{F}(M)$};
            \node(FN) at (2,-2){$\mathcal{F}(N)$};
            \node(Fg) at (4,0){$\sum\lambda_m\cdot m$};
            \node(FFg) at (4,-2){$\sum\lambda_m\cdot f(m)$};

            \path
            (M) edge node[right]{f} (N)
            (FM) edge (FN)
            (Fg) edge (FFg)
            ;
            \draw[decorate,decoration={brace, mirror}] (M.north west) -- (N.south west);
            \draw[decorate,decoration={brace}] (M.north east) -- (N.south east);

        \end{tikzpicture}
    \end{center}
\end{example}
\begin{example}{$\cat{Grp}\mapsto\cat{Ab}$ (Abelisierung)\\}
    $G\mapsto G^{ab}=G_{/H}$ mit $H=\langle\langle\{h_1h_2h_1^{-1}h_2^{-1}|h_1,h_2\in G\}\rangle\rangle$
    \begin{center}
        \begin{tikzpicture}
            \node (G1) at (0,0){$G_1$};
            \node (G2) at (0, -2){$G_2$};
            \node (G1ab) at (2,0){$G_1^{ab}$};
            \node (G2ab) at (2,-2){$G_2^{ab}$};

            \path
            (G1) edge node[right](Lphi){$\phi$} (G2)
            (G1ab) edge node[left](Rphi){} node[right]{$\phi$} (G2ab)
            (Lphi) edge (Rphi)%TODO: make this edge a mapsto
            ;
        \end{tikzpicture}
    \end{center}
\end{example}
\begin{example}{Graphen\\}
    Definiere $\cat{Grph}$ exemplarisch als folgende Kategorie:
    \begin{center}
        \begin{tikzpicture}
            \node (E) at (0,0){E $\cdot$};
            \node (V) at (3,0){$\cdot$ V};

            \path
            (E) edge node[above]{$s,t,u,\dots$} (V)
            (E) edge[loop] (E)
            (V) edge[loop] (V)
            ;
        \end{tikzpicture}
    \end{center}
    Dann gibt es Funktoren $\mathcal{F}: \cat{Grph}\mapsto\cat{Set}$ mit
    \begin{center}
        \begin{tikzpicture}
            \node (E) at (0,0){$\mathcal{F}(E)$ $\cdot$};
            \node (V) at (6,0){$\cdot$ $\mathcal{F}(V)$};

            \path
            (E) edge node[above]{$\mathcal{F}(s),\mathcal{F}(t),\mathcal{F}(u),\dots$} (V)
            ;
        \end{tikzpicture}
    \end{center}
    Diese Funktoren bilden Graphen auf ihre Knoten- und Kantenmengendarstellung ab.
\end{example}
\begin{example}{Der Hom-Funktor (Kontravariant)\\}
    Es sei $\mathscr{C}$ eine Kategorie, $X\in\ob\mathscr{C}$\\
    Definiere den Funktor $\mor{\mathscr{C}}{\_}{X}: \mathscr{C}\mapsto\cat{Set}$
    \begin{itemize}
        \item $Y\mapsto\mor{\mathscr{C}}{Y}{X}$\\
              Ein $Y\in\mathscr{C}$ wird also auf die Morphismenmenge $\mor{\mathscr{C}}{Y}{X}$, die Morphismen, die in $\mathscr{C}$ von Y auf X existieren, abgebildet.
        \item $[Y\xrightarrow{f}Z]\mapsto f^* =\mor{\mathscr{C}}{X}{f}:=
                  \left[
                      \begin{aligned}
                          \mor{\mathscr{C}}{Z}{X}\mapsto\mor{\mathscr{C}}{Y}{X} \\
                          [g:Z\mapsto X]\mapsto[g\circ f:Y\mapsto X]
                      \end{aligned}
                      \right]
              $\\
              Der Funktor agiert analog zu seinem Kovarianten Gegenstück.
    \end{itemize}
\end{example}
\begin{example}{Punktierung von Mengen\\}
    Definitions und Bildkategorie: $\cat{Set}\mapsto\cat{Set}^*$\\
    Objekte: $M\mapsto(M\cup \{\star_m\}, \star_M)$\\
    Morphismen:
    \begin{center}
        \begin{tikzpicture}[baseline=-10mm]
            \node (M) at (0,0){$M$};
            \node (N) at (0,-2){$N$};

            \path
            (M) edge node[left]{$f$} (N)
            ;
        \end{tikzpicture}
        $\mapsto$
        \begin{tikzpicture}[baseline=-10mm]
            \node (M) at (0,0){$M\cup\{\star_M\}$};
            \node (N) at (0,-2){$N\cup\{\star_N\}$};

            \path
            (M) edge node[right]{$f\cup id_\star:m\mapsto f(m) \text{ und } \star_M\mapsto\star_N$} (N)
            ;
        \end{tikzpicture}
    \end{center}
    Man fügt als ein Element hinzu, das jetzt das punktierte Element ist und definiert die Morphismen so dass sie auf die
    Elemente der punktierten Menge wie vorher angewandt werden und das punktierte Element in M auf das punktierte Element in N abgebildet wird.
\end{example}
\begin{definition}{Opposite Kategorien\\}
    Sei $\mathscr{C}$ eine Kategorie. Definiere $\mathscr{C}^{op}$ wie folgt:\\
    \begin{itemize}
        \item $\ob\mathscr{C}^{op}:=\ob \mathscr{C}$
        \item Für $A,B\in\ob\mathscr{C^{op}}$ definiere $\mor{\mathscr{C}^{op}}{A}{B}:=\mor{\mathscr{C}}{B}{A}$
    \end{itemize}
    Wir drehen also alle \glqq Morphismenpfeile'' um und nutzen die gleichen Objekte.\\
\end{definition}
Man sieht, dass ein kontravarianter Funktor $\mathscr{C}\mapsto\mathscr{D}$ einem kovarianten Funktor $\mathscr{C}^{op}\mapsto\mathscr{D}^{op}$ entspricht.