Work on categorical prelims, added quiver.sty
This commit is contained in:
parent
75a42e4886
commit
f537b830a7
10 changed files with 283 additions and 57 deletions
4
tex/.chktexrc
Normal file
4
tex/.chktexrc
Normal file
|
@ -0,0 +1,4 @@
|
|||
CmdLine = {
|
||||
-n18
|
||||
-n46
|
||||
}
|
5
tex/.vscode/ltex.dictionary.en-US.txt
vendored
5
tex/.vscode/ltex.dictionary.en-US.txt
vendored
|
@ -27,3 +27,8 @@ Epimorphisms
|
|||
Isomorphisms
|
||||
cancellative
|
||||
Coproducts
|
||||
poset
|
||||
iff
|
||||
posets
|
||||
coproduct
|
||||
monoid
|
||||
|
|
|
@ -5,3 +5,6 @@
|
|||
{"rule":"MORFOLOGIK_RULE_EN_US","sentence":"^\\QFriedrich-Alexander-Universität Erlangen-Nürnberg\\E$"}
|
||||
{"rule":"COMMA_PARENTHESIS_WHITESPACE","sentence":"^\\QThis is a summary of the course “Algebra des Programmierens” taught by Prof. Dr. Stefan Milius in the winter term 2023/2024 at the FAU .\\E$"}
|
||||
{"rule":"MORFOLOGIK_RULE_EN_US","sentence":"^\\Q\\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q satisfies the following two rules law:natident Identity law:natfusion Fusion Lists.\\E$"}
|
||||
{"rule":"COMMA_PARENTHESIS_WHITESPACE","sentence":"^\\Q[cases] mycase Case .\\E$"}
|
||||
{"rule":"MORFOLOGIK_RULE_EN_US","sentence":"^\\QIt seems that these proofs should somehow be constructable from each other\\E$"}
|
||||
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\QEvery categorical notion can thus be dualized by viewing it in the dual category, some examples include: Notion Dual Notion Initial Object Terminal Object Monomorphism Epimorphism Isomorphism Isomorphism\\E$"}
|
||||
|
|
7
tex/.vscode/settings.json
vendored
7
tex/.vscode/settings.json
vendored
|
@ -23,5 +23,10 @@
|
|||
"latexmk-main"
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"ltex.latex.commands": {
|
||||
"\\customlabel{}": "ignore",
|
||||
"\\setminted[]{}": "ignore",
|
||||
"\\setmintedinline[]{}": "ignore"
|
||||
}
|
||||
}
|
BIN
tex/main.pdf
BIN
tex/main.pdf
Binary file not shown.
37
tex/main.tex
37
tex/main.tex
|
@ -1,9 +1,8 @@
|
|||
\documentclass[a4paper,11pt,titlepage]{scrartcl}
|
||||
\documentclass[a4paper,11pt,titlepage,numbers=noenddot]{scrbook}
|
||||
|
||||
%%%% Document Setup
|
||||
\usepackage[top=2cm,lmargin=1in,rmargin=1in,bottom=3cm,hmarginratio=1:1]{geometry}
|
||||
\usepackage{scrlayer-fancyhdr}
|
||||
\usepackage{extramarks}
|
||||
\usepackage{scrlayer-scrpage}
|
||||
\usepackage[ngerman, english]{babel}
|
||||
\babeltags{german=ngerman}
|
||||
\usepackage{anyfontsize}
|
||||
|
@ -13,14 +12,12 @@
|
|||
\usepackage{booktabs}
|
||||
\usepackage[scale=.85]{noto-mono} % TODO find better unicode mono font
|
||||
\usepackage[final]{hyperref}
|
||||
\pagestyle{fancy}
|
||||
\lhead{\DocTitle}
|
||||
\chead{\UniCourse}
|
||||
\rhead{\firstxmark}
|
||||
\lfoot{\lastxmark}
|
||||
\cfoot{\thepage}
|
||||
\renewcommand\headrulewidth{0.4pt}
|
||||
\renewcommand\footrulewidth{0.4pt}
|
||||
\usepackage{scrhack}
|
||||
\automark{chapter}
|
||||
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
|
||||
\renewcommand{\subsectionmark}[1]{\markright{\thesubsection\ #1}}
|
||||
\pagestyle{scrheadings}
|
||||
|
||||
%%%%
|
||||
|
||||
%%%% Metadata
|
||||
|
@ -51,7 +48,13 @@
|
|||
\setmintedinline[haskell]{
|
||||
style=bw
|
||||
}
|
||||
%%%%
|
||||
|
||||
%%%% Spacing
|
||||
\setlength{\parindent}{0pt}
|
||||
\setlength{\parskip}{6pt}
|
||||
\setlength{\marginparsep}{0cm}
|
||||
\AtBeginEnvironment{minted}{\setlength{\parskip}{0pt}}
|
||||
%%%%
|
||||
|
||||
%%%% Math packages
|
||||
|
@ -59,7 +62,8 @@
|
|||
\usepackage{thmtools}
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{cd, babel, quotes}
|
||||
\declaretheorem[name=Definition,style=definition,numberwithin=section]{definition}
|
||||
\usepackage{quiver}
|
||||
\declaretheorem[name=Definition,style=definition,numberwithin=chapter]{definition}
|
||||
\declaretheorem[name=Example,style=definition,sibling=definition]{example}
|
||||
\declaretheorem[style=definition,numbered=no]{exercise}
|
||||
\declaretheorem[name=Remark,style=definition,sibling=definition]{remark}
|
||||
|
@ -76,7 +80,7 @@
|
|||
\makeatletter
|
||||
\hypersetup{
|
||||
pdfauthor={\@author},
|
||||
pdftitle={\@title},
|
||||
pdftitle={\UniCourse},
|
||||
% kill those ugly red rectangles around links
|
||||
hidelinks,
|
||||
}
|
||||
|
@ -127,20 +131,23 @@
|
|||
%%% Notation
|
||||
%% Category C
|
||||
\newcommand{\C}{\ensuremath{\mathscr{C}}}
|
||||
%% Objects of category
|
||||
\newcommand{\obj}[1]{\ensuremath{\vert #1 \vert}}
|
||||
|
||||
%% Dual category
|
||||
\newcommand{\dual}[1]{\ensuremath{#1^{op}}}
|
||||
%%%
|
||||
%%%%
|
||||
|
||||
\begin{document}
|
||||
%% Titlepage
|
||||
\maketitle
|
||||
\thispagestyle{empty}
|
||||
\null\newpage
|
||||
\setcounter{page}{1}
|
||||
%%
|
||||
|
||||
%% TOC
|
||||
\tableofcontents
|
||||
\pagebreak
|
||||
%%
|
||||
|
||||
%% Contents
|
||||
|
|
40
tex/quiver.sty
Normal file
40
tex/quiver.sty
Normal file
|
@ -0,0 +1,40 @@
|
|||
% *** quiver ***
|
||||
% A package for drawing commutative diagrams exported from https://q.uiver.app.
|
||||
%
|
||||
% This package is currently a wrapper around the `tikz-cd` package, importing necessary TikZ
|
||||
% libraries, and defining a new TikZ style for curves of a fixed height.
|
||||
%
|
||||
% Version: 1.4.2
|
||||
% Authors:
|
||||
% - varkor (https://github.com/varkor)
|
||||
% - AndréC (https://tex.stackexchange.com/users/138900/andr%C3%A9c)
|
||||
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{quiver}[2021/01/11 quiver]
|
||||
|
||||
% `tikz-cd` is necessary to draw commutative diagrams.
|
||||
\RequirePackage{tikz-cd}
|
||||
% `amssymb` is necessary for `\lrcorner` and `\ulcorner`.
|
||||
% \RequirePackage{amssymb}
|
||||
% `calc` is necessary to draw curved arrows.
|
||||
\usetikzlibrary{calc}
|
||||
% `pathmorphing` is necessary to draw squiggly arrows.
|
||||
\usetikzlibrary{decorations.pathmorphing}
|
||||
|
||||
% A TikZ style for curved arrows of a fixed height, due to AndréC.
|
||||
\tikzset{curve/.style={settings={#1},to path={(\tikztostart)
|
||||
.. controls ($(\tikztostart)!\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
|
||||
and ($(\tikztostart)!1-\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
|
||||
.. (\tikztotarget)\tikztonodes}},
|
||||
settings/.code={\tikzset{quiver/.cd,#1}
|
||||
\def\pv##1{\pgfkeysvalueof{/tikz/quiver/##1}}},
|
||||
quiver/.cd,pos/.initial=0.35,height/.initial=0}
|
||||
|
||||
% TikZ arrowhead/tail styles.
|
||||
\tikzset{tail reversed/.code={\pgfsetarrowsstart{tikzcd to}}}
|
||||
\tikzset{2tail/.code={\pgfsetarrowsstart{Implies[reversed]}}}
|
||||
\tikzset{2tail reversed/.code={\pgfsetarrowsstart{Implies}}}
|
||||
% TikZ arrow styles.
|
||||
\tikzset{no body/.style={/tikz/dash pattern=on 0 off 1mm}}
|
||||
|
||||
\endinput
|
|
@ -1,11 +1,10 @@
|
|||
% chktex-file 46
|
||||
\section{Introduction}
|
||||
\chapter{Introduction}
|
||||
This is a summary of the course ``Algebra des Programmierens'' taught by Prof.\ Dr.\ Stefan Milius in the winter term 2023/2024 at the FAU~\footnote{Friedrich-Alexander-Universität Erlangen-Nürnberg}.
|
||||
The course is based on~\cite{poll1999algebra} with~\cite{adamek1990abstract} as a reference for category theory.
|
||||
|
||||
Goal of the course is to develop a mathematical theory for semantics of data types and their accompanying proof principles. The chosen environment is the field of category theory.
|
||||
|
||||
\subsection{Functions}
|
||||
\section{Functions}
|
||||
A function $f : X \rightarrow Y$ is a mapping from the set $X$ (the domain of $f$) to the set $Y$ (the codomain of $f$).
|
||||
More concretely $f$ is a relation $f \subseteq X \times Y$ which is
|
||||
\begin{itemize}
|
||||
|
@ -32,7 +31,7 @@ Often, one is also interested in the symmetrical properties, a function is calle
|
|||
\end{enumerate}
|
||||
\end{example}
|
||||
|
||||
\subsection{Data Types}
|
||||
\section{Data Types}
|
||||
|
||||
Programs work with data that should ideally be organized in a useful manner.
|
||||
A useful representation for data in functional programming is by means of \emph{algebraic data types}.
|
||||
|
@ -54,7 +53,7 @@ These data types are declared by means of constructors, yielding concrete descri
|
|||
Such data types (parametric or non-parametric) usually come with a principle for defining functions called recursion and in richer type systems (e.g.\ in a dependently typed setting) with a principle for proving facts about recursive functions called induction.
|
||||
Equivalently, every function defined by recursion can be defined via a \emph{fold}-function which satisfies an identity and fusion law, which replace the induction principle. Let us now consider two examples of data types and illustrate this.
|
||||
|
||||
\subsubsection{Natural Numbers}
|
||||
\subsection{Natural Numbers}
|
||||
The type of natural numbers comes with a fold function $foldn : C \rightarrow (Nat \rightarrow C) \rightarrow Nat \rightarrow C$ for every $C$, defined by
|
||||
\begin{alignat*}{2}
|
||||
& foldn\;c\;h\;zero & & = c \\
|
||||
|
@ -182,7 +181,7 @@ The type of natural numbers comes with a fold function $foldn : C \rightarrow (N
|
|||
\end{tikzcd}\]
|
||||
trivially commutes.
|
||||
\end{example}
|
||||
\subsubsection{Lists}
|
||||
\subsection{Lists}
|
||||
We will now look at the $List$ type and examine it for similar properties. Let us start with the fold function $foldr : C \rightarrow (A \rightarrow C \rightarrow C) \rightarrow List\;A \rightarrow C$, which is defined by
|
||||
\begin{alignat*}{2}
|
||||
& foldr\;c\;h\;nil & & = c \\
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
% chktex-file 46
|
||||
\section{Category Theory}
|
||||
\chapter{Category Theory}
|
||||
|
||||
Categories consist of objects and morphisms between those objects, that can be composed in a coherent way.
|
||||
This yields a framework for abstracting many mathematical concepts for reasoning on a very abstract level.
|
||||
This yields a framework for abstraction of many mathematical concepts that enables us to reason on a very abstract level.
|
||||
|
||||
\begin{definition} A category \C consists of
|
||||
\begin{definition}[Category] A category \C consists of
|
||||
\begin{itemize}
|
||||
\item a class of objects denoted $\obj{\C}$,
|
||||
\item for every pair of objects $A,B \in \obj{\C}$ a set of morphisms $\C(A,B)$ called the hom-set,
|
||||
|
@ -28,13 +27,13 @@ This yields a framework for abstracting many mathematical concepts for reasoning
|
|||
\end{tabular}
|
||||
\end{center}
|
||||
\end{example}
|
||||
\subsection{Special Objects}
|
||||
\section{Special Objects}
|
||||
Special objects play an important role in category theory.
|
||||
In this chapter we will characterize (finite) products and coproducts, as well as special morphisms such as isomorphisms, monomorphisms and epimorphisms.
|
||||
|
||||
\subsubsection{Initial and Terminal Objects}
|
||||
\section{Initial and Terminal Objects}
|
||||
|
||||
\begin{definition} The following is the categorical abstraction of ``empty set'' and ``singleton set'' respectively.
|
||||
\begin{definition}[Initial and Terminal Objects] The following is the categorical abstraction of ``empty set'' and ``singleton set'' respectively.
|
||||
\begin{enumerate}
|
||||
\item An object $0 \in \obj{\C}$ is called initial if for every $B \in \obj{C}$ there is a unique morphism $¡ : 0 \rightarrow B$.
|
||||
\item An object $1 \in \obj{\C}$ is called terminal if for every $A \in \obj{C}$ there is a unique morphism $! : A \rightarrow 1$.
|
||||
|
@ -53,10 +52,10 @@ In this chapter we will characterize (finite) products and coproducts, as well a
|
|||
\end{example}
|
||||
|
||||
|
||||
\subsubsection{Special Morphisms}
|
||||
\section{Special Morphisms}
|
||||
Now let us characterize special morphisms.
|
||||
|
||||
\begin{definition}
|
||||
\begin{definition}[Special Morphisms]
|
||||
Let $f : A \rightarrow B$ be a morphism. $f$ is called
|
||||
\begin{itemize}
|
||||
\item an \emph{isomorphism} (\emph{iso}), if there exists an inverse $f^{-1} : B \rightarrow A$ such that $f \circ g = id_B$ and $g \circ f = id_A$;
|
||||
|
@ -76,37 +75,201 @@ Now let us characterize special morphisms.
|
|||
\end{center}
|
||||
\end{example}
|
||||
|
||||
\begin{proposition}
|
||||
% TODO
|
||||
iso is mono and epi
|
||||
\begin{proposition} Every isomorphism is a monomorphism and an epimorphism.
|
||||
\end{proposition}
|
||||
\begin{proof}
|
||||
Let $f$ be an isomorphism.
|
||||
\begin{itemize}
|
||||
\item $f \circ g = f \circ h$ implies $g = f^{-1} \circ f \circ g = f^{-1} \circ f \circ h = h$, thus $f$ is a monomorphism.
|
||||
\item $g \circ f = h \circ f$ implies $g = g \circ f \circ f^{-1} = h \circ f \circ f^{-1} = h$, thus $f$ is an epimorphism.
|
||||
\end{itemize}
|
||||
\end{proof}
|
||||
\begin{proposition}\label{prop:monosplitting} If $f \circ m$ is a monomorphism then $m$ is also a monomorphism.
|
||||
\end{proposition}
|
||||
\begin{proof}
|
||||
Let $m \circ g = m \circ h$. To show that $g = h$ it suffices to show that $f \circ m \circ g = f \circ m \circ h$, which indeed follows by assumption.
|
||||
\end{proof}
|
||||
\begin{proposition}\label{prop:episplitting} If $e \circ f$ is an epimorphism then $e$ is also an epimorphism.
|
||||
\end{proposition}
|
||||
\begin{proof}
|
||||
Let $g \circ e = h \circ e$. To show that $g = h$ it suffices to show that $g \circ e \circ f = h \circ e \circ f$, which again follows by assumption.
|
||||
\end{proof}
|
||||
|
||||
Categorical structures like initial objects are usually not uniquely identified, there might be multiple initial objects in a category. However, all initial objects in a category are isomorphic, we call this ``unique up to isomorphism''.
|
||||
|
||||
\begin{proposition}\label{prop:init_up_to} Initial objects are unique up to isomorphism.
|
||||
\end{proposition}
|
||||
\begin{proof}
|
||||
Let $0, 0' \in \obj{\C}$ be two initial objects of $\C$ with the unique morphisms $¡_A : 0 \rightarrow A$ and ${¡'}_A : 0' \rightarrow A$.
|
||||
The isomorphism is:
|
||||
% https://q.uiver.app/#q=WzAsMixbMCwwLCIwIl0sWzIsMCwiMCciXSxbMSwwLCJ7wqEnfV8wIiwyLHsiY3VydmUiOi0yfV0sWzAsMSwiwqFfezAnfSIsMCx7ImN1cnZlIjotMn1dXQ==
|
||||
\[
|
||||
\begin{tikzcd}
|
||||
0 && {0'}
|
||||
\arrow["{{¡'}_0}"', curve={height=-12pt}, from=1-3, to=1-1]
|
||||
\arrow["{¡_{0'}}", curve={height=-12pt}, from=1-1, to=1-3]
|
||||
\end{tikzcd}
|
||||
\]
|
||||
Note that by uniqueness $¡_{0'} \circ {¡'}_0 = {¡'}_{0'} = id_{0'}$ and ${¡'}_0 \circ ¡_{0'} = ¡_0 = id_0$.
|
||||
\end{proof}
|
||||
\begin{proposition}\label{prop:term_up_to} Terminal objects are unique up to isomorphism.
|
||||
\end{proposition}
|
||||
\begin{proof}
|
||||
Let $1, 1' \in \obj{\C}$ be two terminal objects of $\C$ with the unique morphisms $!_A : A \rightarrow 1$ and ${!'}_A : A \rightarrow 1'$.
|
||||
The isomorphism is:
|
||||
% https://q.uiver.app/#q=WzAsMixbMCwwLCIxIl0sWzIsMCwiMSciXSxbMCwxLCJ7ISd9XzEiLDAseyJjdXJ2ZSI6LTJ9XSxbMSwwLCIhX3sxJ30iLDAseyJjdXJ2ZSI6LTJ9XV0=
|
||||
\[
|
||||
\begin{tikzcd}
|
||||
1 && {1'}
|
||||
\arrow["{{!'}_1}", curve={height=-12pt}, from=1-1, to=1-3]
|
||||
\arrow["{!_{1'}}", curve={height=-12pt}, from=1-3, to=1-1]
|
||||
\end{tikzcd}
|
||||
\]
|
||||
Note that by uniqueness ${!'}_1 \circ !_{1'} = {!'}_{1'} = id_{1'}$ and $!_{1'} \circ {!'}_1 = !_1 = id_1$.
|
||||
\end{proof}
|
||||
|
||||
\section{Duality}
|
||||
Notice how similar the proofs of \autoref{prop:monosplitting} and \autoref{prop:episplitting} as well as \autoref{prop:init_up_to} and \autoref{prop:term_up_to} are to each other.
|
||||
It seems that we should somehow be able to construct one proof from the other, such that the work required would be halved.
|
||||
This is actually the case, we can for example say that \autoref{prop:episplitting} follows from \autoref{prop:monosplitting} by \emph{duality}.
|
||||
|
||||
\begin{definition}[Dual Category]
|
||||
Every category $\C$ has a \emph{dual category} $\dual{\C}$ defined by
|
||||
\begin{itemize}
|
||||
\item $\obj{\dual{\C}} = \obj{\C}$
|
||||
\item $\dual{\C}(A,B) = \C(B,A)$
|
||||
\end{itemize}
|
||||
\end{definition}
|
||||
\begin{example} Examples are:
|
||||
\begin{enumerate}
|
||||
\item In a poset the order relation gets reversed.
|
||||
\item \emph{\dual{Rel}} is isomorphic to \emph{Rel}, since subsets of $A \times B$ are in bijection with subsets of $B \times A$
|
||||
\item $\dual{(\dual{\C})} = \C$
|
||||
\end{enumerate}
|
||||
\end{example}
|
||||
|
||||
Every categorical notion can thus be dualized by viewing it in the dual category, some examples include:
|
||||
\begin{center}
|
||||
\begin{tabular}{l l}
|
||||
Notion & Dual Notion \\\midrule
|
||||
Initial Object & Terminal Object \\
|
||||
Monomorphism & Epimorphism \\
|
||||
Isomorphism & Isomorphism
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
|
||||
This yields a proof principle ``by duality'', where every theorem yields another theorem by duality.
|
||||
|
||||
\section{Products and Coproducts}
|
||||
The categorical abstraction of Cartesian products is:
|
||||
\begin{definition}[Product]
|
||||
The \emph{product} of two objects $A, B \in \obj{\C}$ is an object that we call $A \times B$ together with morphisms $\pi_1 : A \times B \rightarrow A$ and $\pi_2 : A \times B \rightarrow B$ (the projections), where the following property holds:
|
||||
% https://q.uiver.app/#q=WzAsNCxbMiwyLCJBIFxcdGltZXMgQiJdLFs0LDIsIkIiXSxbMCwyLCJBIl0sWzIsMCwiQyJdLFswLDIsIlxccGlfMSJdLFswLDEsIlxccGlfMiIsMl0sWzMsMiwiZiIsMl0sWzMsMSwiZyJdLFszLDAsIlxcZXhpc3RzIVxcbGFuZ2xlIGYsIGcgXFxyYW5nbGUiLDAseyJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJkYXNoZWQifX19XV0=
|
||||
\[
|
||||
\begin{tikzcd}
|
||||
&& C \\
|
||||
\\
|
||||
A && {A \times B} && B
|
||||
\arrow["{\pi_1}", from=3-3, to=3-1]
|
||||
\arrow["{\pi_2}"', from=3-3, to=3-5]
|
||||
\arrow["f"', from=1-3, to=3-1]
|
||||
\arrow["g", from=1-3, to=3-5]
|
||||
\arrow["{\exists!\langle f, g \rangle}", dashed, from=1-3, to=3-3]
|
||||
\end{tikzcd}
|
||||
\]
|
||||
\end{definition}
|
||||
\begin{example} Some examples include:
|
||||
\begin{enumerate}
|
||||
\item \emph{Set}: The product of two sets $A$ and $B$ is the Cartesian product $A \times B = \{ (a,b)\;\vert\;a \in A, b \in B\}$.
|
||||
\item \emph{Gra}: The product of two graphs has as vertices the Cartesian product of the vertices of both graphs and an edge $(v_1, u_1) \rightarrow (v_2, u_2)$ iff there exists edges $v_1 \rightarrow v_2$ and $u_1 \rightarrow u_2$.
|
||||
\item \emph{Pos}: Given two posets $(A, \leq), (B, \leq)$, the product is the Cartesian product of $A$ and $B$ where $(a,b) \leq (a', b') \iff a \leq a' \land b \leq b'$.
|
||||
\item Let $(X, \leq)$ be a poset, the product of $a, b \in X$ is the greatest lower bound of $a$ and $b$.
|
||||
\end{enumerate}
|
||||
\end{example}
|
||||
Dual to products are:
|
||||
\begin{definition}[Coproduct]
|
||||
The \emph{coproduct} of two objects $A, B \in \obj{\C}$ is an object that we call $A + B$ together with morphisms $i_1 : A \rightarrow A + B$ and $i_2 : B \rightarrow A + B$ (the injections), where the following property holds:
|
||||
% https://q.uiver.app/#q=WzAsNCxbMiwwLCJBK0IiXSxbMCwwLCJBIl0sWzQsMCwiQiJdLFsyLDIsIkMiXSxbMSwwLCJpXzEiXSxbMiwwLCJpXzIiLDJdLFsxLDMsImYiLDJdLFsyLDMsImciXSxbMCwzLCJcXGV4aXN0cyFbZixnXSIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dXQ==
|
||||
\[
|
||||
\begin{tikzcd}
|
||||
A && {A+B} && B \\
|
||||
\\
|
||||
&& C
|
||||
\arrow["{i_1}", from=1-1, to=1-3]
|
||||
\arrow["{i_2}"', from=1-5, to=1-3]
|
||||
\arrow["f"', from=1-1, to=3-3]
|
||||
\arrow["g", from=1-5, to=3-3]
|
||||
\arrow["{\exists![f,g]}", dashed, from=1-3, to=3-3]
|
||||
\end{tikzcd}
|
||||
\]
|
||||
\end{definition}
|
||||
\begin{example} Examples include:
|
||||
\begin{enumerate}
|
||||
\item \emph{Set}: The coproduct of two sets $A$ and $B$ is the disjoint union $A + B = \{ (a,0)\;\vert\;a \in A \} \cup \{ (b, 1) \vert b \in B \}$.
|
||||
\item \emph{Pos}: The coproduct of ordered sets $(A, \leq)$ and $(B, \leq)$ is the disjoint union $A+B$ where $z \leq z'$ iff $z, z' \in A$ and $z \leq z'$ or $z, z' \in B$ and $z \leq z'$.
|
||||
\item \emph{Gra}: Analogous to \emph{Pos}.
|
||||
\item Let $(X, \leq)$ be a poset, the coproduct of $a,b \in X$ is the least upper bound of $a$ and $b$.
|
||||
\item \emph{Rel}: Analogous to \emph{Set} the coproduct is the disjoint union. Since $\emph{Rel} \cong \dual{\emph{Rel}}$ we know that the product is also the disjoint union.
|
||||
\end{enumerate}
|
||||
\end{example}
|
||||
|
||||
\begin{proposition}
|
||||
% TODO
|
||||
$f \circ m$ mono then $m$ mono.
|
||||
Products are unique up to isomorphism.
|
||||
\end{proposition}
|
||||
\begin{proof}
|
||||
The usual proof is somewhat analogous to the proof of \autoref{prop:term_up_to}. Instead, we will prove it like this:
|
||||
|
||||
Consider the category $\emph{span}_{\C}(A,B)$ where objects are triples $A \overset{f}{\leftarrow} C \overset{g}{\rightarrow} B$ and morphisms $(C, f, g) \rightarrow (C', f', g')$ are morphisms $k : C \rightarrow C'$ in $\C$ such that
|
||||
% https://q.uiver.app/#q=WzAsNCxbMiwwLCJDIl0sWzAsMiwiQSJdLFs0LDIsIkIiXSxbMiw0LCJDJyJdLFswLDEsImYiLDJdLFswLDIsImciXSxbMywxLCJmJyJdLFszLDIsImcnIiwyXSxbMCwzLCJrIl1d
|
||||
\[
|
||||
\begin{tikzcd}
|
||||
&& C \\
|
||||
\\
|
||||
A &&&& B \\
|
||||
\\
|
||||
&& {C'}
|
||||
\arrow["f"', from=1-3, to=3-1]
|
||||
\arrow["g", from=1-3, to=3-5]
|
||||
\arrow["{f'}", from=5-3, to=3-1]
|
||||
\arrow["{g'}"', from=5-3, to=3-5]
|
||||
\arrow["k", from=1-3, to=5-3]
|
||||
\end{tikzcd}
|
||||
\]
|
||||
commutes. Products of $A$ and $B$ are the final objects in $\emph{span}_{\C}(A,B)$ and are thus unique up to isomorphism.
|
||||
\end{proof}
|
||||
By duality, we get:
|
||||
\begin{proposition}
|
||||
% TODO
|
||||
$e \circ f$ epi then $e$ epi.
|
||||
Coproducts are unique up to isomorphism.
|
||||
\end{proposition}
|
||||
% TODO explain up to iso
|
||||
|
||||
We can now characterize products (and later dually coproducts) as a commutative monoid:
|
||||
|
||||
\begin{proposition}
|
||||
% TODO
|
||||
Initial object up to iso
|
||||
$1$ is a unit of $\times$, i.e.\ $A \cong A \times 1$ for any $A \in \obj{\C}$.
|
||||
\end{proposition}
|
||||
% TODO proof
|
||||
\begin{proposition}
|
||||
$\times$ is associative, i.e.\ $A \times (B \times C) \cong (A \times B) \times C$ for any $A,B,C \in \obj{\C}$.
|
||||
\end{proposition}
|
||||
% TODO proof
|
||||
\begin{proposition}
|
||||
$\times$ is commutative, i.e.\ $A \times B \cong B \times A$ for any $A, B \in \obj{\C}$.
|
||||
\end{proposition}
|
||||
% TODO proof
|
||||
|
||||
Duality instantly yields to commutative monoid structure of coproducts:
|
||||
\begin{proposition}
|
||||
$0$ is the unit of $+$, i.e.\ $A \cong A + 0$ for any $A \in \obj{\C}$.
|
||||
\end{proposition}
|
||||
\begin{proposition}
|
||||
% TODO
|
||||
Terminal object up to iso
|
||||
$+$ is associative, i.e.\ $A + (B + C) \cong (A + B) + C$ for any $A,B,C \in \obj{\C}$.
|
||||
\end{proposition}
|
||||
\begin{proposition}
|
||||
$+$ is commutative, i.e.\ $A + B \cong B + A$ for any $A, B \in \obj{\C}$.
|
||||
\end{proposition}
|
||||
|
||||
|
||||
\subsubsection{Products and Coproducts}
|
||||
% TODO
|
||||
|
||||
\subsection{Duality}
|
||||
\subsection{Functors}
|
||||
\subsection{Natural Transformations}
|
||||
\subsection{Functor Algebras}
|
||||
\subsection{Functor Coalgebras}
|
||||
\subsection{(co)Limits} % chktex 36
|
||||
\section{Functors}
|
||||
\section{Natural Transformations}
|
||||
\section{Functor Algebras}
|
||||
\section{Functor Coalgebras}
|
||||
\section{(co)Limits} % chktex 36
|
|
@ -1,4 +1,4 @@
|
|||
\section{Constructions}
|
||||
\subsection{CPO}
|
||||
\subsection{Initial Algebra Construction}
|
||||
\subsection{Terminal Coalgebra Construction}
|
||||
\chapter{Constructions}
|
||||
\section{CPO}
|
||||
\section{Initial Algebra Construction}
|
||||
\section{Terminal Coalgebra Construction}
|
Loading…
Reference in a new issue