Merge branch 'dev'
This commit is contained in:
commit
33f7e2ebbb
4
Makefile
4
Makefile
|
@ -4,8 +4,10 @@ build: src/**.agda
|
||||||
clean:
|
clean:
|
||||||
find src -name "*.agdai" -type f -delete
|
find src -name "*.agdai" -type f -delete
|
||||||
|
|
||||||
html:
|
html: src/**.agda
|
||||||
agda --html src/Cat.agda
|
agda --html src/Cat.agda
|
||||||
|
|
||||||
upload: html
|
upload: html
|
||||||
scp -r html/ remote11.chalmers.se:www/cat/doc/
|
scp -r html/ remote11.chalmers.se:www/cat/doc/
|
||||||
|
|
||||||
|
.PHONY: upload clean
|
||||||
|
|
3
doc/.gitignore
vendored
3
doc/.gitignore
vendored
|
@ -4,6 +4,7 @@
|
||||||
*.log
|
*.log
|
||||||
*.out
|
*.out
|
||||||
*.pdf
|
*.pdf
|
||||||
|
!assets/**
|
||||||
*.bbl
|
*.bbl
|
||||||
*.blg
|
*.blg
|
||||||
*.toc
|
*.toc
|
||||||
|
@ -11,4 +12,4 @@
|
||||||
*.ilg
|
*.ilg
|
||||||
*.ind
|
*.ind
|
||||||
*.nav
|
*.nav
|
||||||
*.snm
|
*.snm
|
||||||
|
|
|
@ -1,3 +1,13 @@
|
||||||
|
Presentation
|
||||||
|
====
|
||||||
|
Find one clear goal.
|
||||||
|
|
||||||
|
Remember crowd-control.
|
||||||
|
|
||||||
|
Leave out:
|
||||||
|
lemPropF
|
||||||
|
|
||||||
|
|
||||||
Talk about structure of library:
|
Talk about structure of library:
|
||||||
===
|
===
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
\chapter*{Abstract}
|
\chapter*{Abstract}
|
||||||
The usual notion of propositional equality in intensional type-theory
|
The usual notion of propositional equality in intensional type-theory
|
||||||
is restrictive. For instance it does not admit functional
|
is restrictive. For instance it does not admit functional
|
||||||
extensionality nor univalence. This poses a severe limitation on both
|
extensionality nor univalence. This poses a severe limitation on both
|
||||||
what is \emph{provable} and the \emph{re-usability} of proofs. Recent
|
what is \emph{provable} and the \emph{re-usability} of proofs. Recent
|
||||||
developments have however resulted in cubical type theory which
|
developments have however resulted in cubical type theory which
|
||||||
permits a constructive proof of these two important notions. The
|
permits a constructive proof of these two important notions. The
|
||||||
programming language Agda has been extended with capabilities for
|
programming language Agda has been extended with capabilities for
|
||||||
working in such a cubical setting. This thesis will explore the
|
working in such a cubical setting. This thesis will explore the
|
||||||
usefulness of this extension in the context of category theory.
|
usefulness of this extension in the context of category theory.
|
||||||
|
|
||||||
The thesis will motivate the need for univalence and explain why
|
The thesis will motivate the need for univalence and explain why
|
||||||
propositional equality in cubical Agda is more expressive than in
|
propositional equality in cubical Agda is more expressive than in
|
||||||
standard Agda. Alternative approaches to Cubical Agda will be
|
standard Agda. Alternative approaches to Cubical Agda will be
|
||||||
presented and their pros and cons will be explained. As an example of
|
presented and their pros and cons will be explained. As an example of
|
||||||
the application of univalence two formulations of monads will be
|
the application of univalence two formulations of monads will be
|
||||||
presented: Namely monads in the monoidal form and monads in the
|
presented: Namely monads in the monoidal form and monads in the
|
||||||
Kleisli form and under the univalent interpretation it will be shown
|
Kleisli form and under the univalent interpretation it will be shown
|
||||||
|
@ -20,5 +20,5 @@ how these are equal.
|
||||||
|
|
||||||
Finally the thesis will explain the challenges that a developer will
|
Finally the thesis will explain the challenges that a developer will
|
||||||
face when working with cubical Agda and give some techniques to
|
face when working with cubical Agda and give some techniques to
|
||||||
overcome these difficulties. It will also try to suggest how further
|
overcome these difficulties. It will also try to suggest how further
|
||||||
work can help alleviate some of these challenges.
|
work can help alleviate some of these challenges.
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
\chapter*{Acknowledgements}
|
|
|
@ -7,7 +7,7 @@ can conjure up various proofs. I also want to recognize the support
|
||||||
of Knud Højgaards Fond who graciously sponsored me with a 20.000 DKK
|
of Knud Højgaards Fond who graciously sponsored me with a 20.000 DKK
|
||||||
scholarship which helped toward sponsoring the two years I have spent
|
scholarship which helped toward sponsoring the two years I have spent
|
||||||
studying abroad. I would also like to give a warm thanks to my fellow
|
studying abroad. I would also like to give a warm thanks to my fellow
|
||||||
students Pierre Kraft and Nachiappan Villiappan who have made the time
|
students Pierre~Kraft and Nachiappan~Valliappan who have made the time
|
||||||
spent working on the thesis way more enjoyable. Lastly I would like to
|
spent working on the thesis way more enjoyable. Lastly I would like to
|
||||||
give a special thanks to Valentina Méndez who have been a great moral
|
give a special thanks to Valentina~Méndez who have been a great moral
|
||||||
support throughout the whole process.
|
support throughout the whole process.
|
||||||
|
|
BIN
doc/assets/logo_eng.pdf
Normal file
BIN
doc/assets/logo_eng.pdf
Normal file
Binary file not shown.
|
@ -80,7 +80,7 @@ Master's thesis in Computer Science
|
||||||
|
|
||||||
\vfill
|
\vfill
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=0.2\pdfpagewidth]{logo_eng.pdf}
|
\includegraphics[width=0.2\pdfpagewidth]{assets/logo_eng.pdf}
|
||||||
\vspace{5mm}
|
\vspace{5mm}
|
||||||
|
|
||||||
\textsc{Department of Computer Science and Engineering}\\
|
\textsc{Department of Computer Science and Engineering}\\
|
||||||
|
|
|
@ -75,8 +75,8 @@ some limitations inherent in ITT and -- by extension -- Agda.
|
||||||
Consider the functions:
|
Consider the functions:
|
||||||
%
|
%
|
||||||
\begin{align*}%
|
\begin{align*}%
|
||||||
\var{zeroLeft} & \defeq \lambda\; (n \tp \bN) \to (0 + n \tp \bN) \\
|
\var{zeroLeft} & \defeq λ\; (n \tp \bN) \to (0 + n \tp \bN) \\
|
||||||
\var{zeroRight} & \defeq \lambda\; (n \tp \bN) \to (n + 0 \tp \bN)
|
\var{zeroRight} & \defeq λ\; (n \tp \bN) \to (n + 0 \tp \bN)
|
||||||
\end{align*}%
|
\end{align*}%
|
||||||
%
|
%
|
||||||
The term $n + 0$ is \nomenindex{definitionally} equal to $n$, which we
|
The term $n + 0$ is \nomenindex{definitionally} equal to $n$, which we
|
||||||
|
|
|
@ -4,8 +4,12 @@
|
||||||
%% \usecolortheme[named=seagull]{structure}
|
%% \usecolortheme[named=seagull]{structure}
|
||||||
|
|
||||||
\input{packages.tex}
|
\input{packages.tex}
|
||||||
|
|
||||||
\input{macros.tex}
|
\input{macros.tex}
|
||||||
\title[Univalent Categories]{Univalent Categories\\ \footnotesize A formalization of category theory in Cubical Agda}
|
|
||||||
|
\title{Univalent Categories}
|
||||||
|
\subtitle{A formalization of category theory in Cubical Agda}
|
||||||
|
|
||||||
\newcommand{\myname}{Frederik Hangh{\o}j Iversen}
|
\newcommand{\myname}{Frederik Hangh{\o}j Iversen}
|
||||||
\author[\myname]{
|
\author[\myname]{
|
||||||
\myname\\
|
\myname\\
|
||||||
|
@ -74,14 +78,14 @@
|
||||||
\framesubtitle{Definition}
|
\framesubtitle{Definition}
|
||||||
Heterogeneous paths
|
Heterogeneous paths
|
||||||
\begin{equation*}
|
\begin{equation*}
|
||||||
\Path \tp (P \tp I → \MCU) → P\ 0 → P\ 1 → \MCU
|
\Path \tp (P \tp \I → \MCU) → P\ 0 → P\ 1 → \MCU
|
||||||
\end{equation*}
|
\end{equation*}
|
||||||
\pause
|
\pause
|
||||||
For $P \tp I → \MCU$, $A \tp \MCU$ and $a_0, a_1 \tp A$
|
For $P \tp \I → \MCU$, $A \tp \MCU$ and $a_0, a_1 \tp A$
|
||||||
inhabitants of $\Path\ P\ a_0\ a_1$ are like functions
|
inhabitants of $\Path\ P\ a_0\ a_1$ are like functions
|
||||||
%
|
%
|
||||||
$$
|
$$
|
||||||
p \tp ∏_{i \tp I} P\ i
|
p \tp ∏_{i \tp \I} P\ i
|
||||||
$$
|
$$
|
||||||
%
|
%
|
||||||
Which satisfy $p\ 0 & = a_0$ and $p\ 1 & = a_1$
|
Which satisfy $p\ 0 & = a_0$ and $p\ 1 & = a_1$
|
||||||
|
@ -255,13 +259,13 @@
|
||||||
\end{align*}
|
\end{align*}
|
||||||
where
|
where
|
||||||
$$
|
$$
|
||||||
\phi\ f ≜ \identity
|
\phi\ f ≜
|
||||||
( \lll f ≡ f )
|
( \identity \lll f ≡ f )
|
||||||
×
|
×
|
||||||
( f \lll \identity ≡ f)
|
( f \lll \identity ≡ f)
|
||||||
$$
|
$$
|
||||||
\pause
|
\pause
|
||||||
Let $\approxeq$ denote ismorphism of objects. We can then construct
|
Let $\approxeq$ denote isomorphism of objects. We can then construct
|
||||||
the identity isomorphism in any category:
|
the identity isomorphism in any category:
|
||||||
$$
|
$$
|
||||||
\identity , \identity , \var{isIdentity} \tp A \approxeq A
|
\identity , \identity , \var{isIdentity} \tp A \approxeq A
|
||||||
|
@ -326,7 +330,7 @@
|
||||||
Use $\lemPropF$ for the latter.
|
Use $\lemPropF$ for the latter.
|
||||||
\pause
|
\pause
|
||||||
%
|
%
|
||||||
Univalence is indexed by an identity proof. So $A ≜
|
Univalence is indexed by an identity proof. So $A ≜
|
||||||
IsIdentity\ identity$ and $B ≜ \var{Univalent}$.
|
IsIdentity\ identity$ and $B ≜ \var{Univalent}$.
|
||||||
\pause
|
\pause
|
||||||
%
|
%
|
||||||
|
@ -379,7 +383,7 @@
|
||||||
\end{align*}
|
\end{align*}
|
||||||
\pause
|
\pause
|
||||||
%
|
%
|
||||||
Induction will be based at $A$. Let $\widetilde{B}$ and $\widetilde{p}
|
Induction will be based at $A$. Let $\widetilde{B}$ and $\widetilde{p}
|
||||||
\tp A ≡ \widetilde{B}$ be given.
|
\tp A ≡ \widetilde{B}$ be given.
|
||||||
%
|
%
|
||||||
\pause
|
\pause
|
||||||
|
@ -582,7 +586,7 @@
|
||||||
\end{align*}
|
\end{align*}
|
||||||
\pause
|
\pause
|
||||||
%
|
%
|
||||||
Let $\fmap$ be the map on arrows of $\EndoR$. Likewise
|
Let $\fmap$ be the map on arrows of $\EndoR$. Likewise
|
||||||
$\pure$ and $\join$ are the maps of the natural transformations
|
$\pure$ and $\join$ are the maps of the natural transformations
|
||||||
$\pureNT$ and $\joinNT$ respectively.
|
$\pureNT$ and $\joinNT$ respectively.
|
||||||
%
|
%
|
||||||
|
@ -643,7 +647,7 @@
|
||||||
\join ≜ \bind\ \identity
|
\join ≜ \bind\ \identity
|
||||||
$$
|
$$
|
||||||
\pause
|
\pause
|
||||||
The laws are logically equivalent. So we get:
|
The laws are logically equivalent. So we get:
|
||||||
%
|
%
|
||||||
$$
|
$$
|
||||||
\var{Monoidal} ≃ \var{Kleisli}
|
\var{Monoidal} ≃ \var{Kleisli}
|
||||||
|
|
|
@ -37,7 +37,7 @@ Master's thesis in Computer Science
|
||||||
|
|
||||||
\vfill
|
\vfill
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=0.2\pdfpagewidth]{logo_eng.pdf}
|
\includegraphics[width=0.2\pdfpagewidth]{assets/logo_eng.pdf}
|
||||||
\vspace{5mm}
|
\vspace{5mm}
|
||||||
|
|
||||||
\textsc{Department of Computer Science and Engineering}\\
|
\textsc{Department of Computer Science and Engineering}\\
|
||||||
|
|
Loading…
Reference in a new issue