2018-06-07 13:20:14 +00:00
|
|
|
|
\documentclass[a4paper]{beamer}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
%% \usecolortheme[named=seagull]{structure}
|
|
|
|
|
|
2018-05-16 09:01:07 +00:00
|
|
|
|
\input{packages.tex}
|
2018-05-30 23:07:05 +00:00
|
|
|
|
|
2018-05-16 09:01:07 +00:00
|
|
|
|
\input{macros.tex}
|
2018-05-30 23:07:05 +00:00
|
|
|
|
|
|
|
|
|
\title{Univalent Categories}
|
|
|
|
|
\subtitle{A formalization of category theory in Cubical Agda}
|
|
|
|
|
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\newcommand{\myname}{Frederik Hangh{\o}j Iversen}
|
|
|
|
|
\author[\myname]{
|
|
|
|
|
\myname\\
|
|
|
|
|
\footnotesize Supervisors: Thierry Coquand, Andrea Vezzosi\\
|
|
|
|
|
Examiner: Andreas Abel
|
|
|
|
|
}
|
2018-05-16 09:01:07 +00:00
|
|
|
|
\institute{Chalmers University of Technology}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
|
2018-05-16 09:01:07 +00:00
|
|
|
|
\begin{document}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
|
2018-05-16 09:01:07 +00:00
|
|
|
|
\frame{\titlepage}
|
|
|
|
|
|
|
|
|
|
\begin{frame}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
\frametitle{Introduction}
|
|
|
|
|
Category Theory: The study of abstract functions. Slogan: ``It's the
|
|
|
|
|
arrows that matter''\pause
|
|
|
|
|
|
|
|
|
|
Objects are equal ``up to isomorphism''. Univalence makes this notion
|
|
|
|
|
precise.\pause
|
|
|
|
|
|
|
|
|
|
Agda does not permit proofs of univalence. Cubical Agda admits
|
|
|
|
|
this.\pause
|
|
|
|
|
|
|
|
|
|
Goal: Construct a category whose terminal objects are (equivalent to)
|
|
|
|
|
products. Use this to conclude that products are propositions, not a
|
|
|
|
|
structure on a category.
|
2018-05-16 09:01:07 +00:00
|
|
|
|
\end{frame}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
|
2018-05-16 09:01:07 +00:00
|
|
|
|
\begin{frame}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
\frametitle{Outline}
|
|
|
|
|
The path type
|
2018-05-16 09:01:07 +00:00
|
|
|
|
|
2018-06-07 13:20:14 +00:00
|
|
|
|
Definition of a (pre-) category
|
2018-05-16 09:01:07 +00:00
|
|
|
|
|
2018-06-07 13:20:14 +00:00
|
|
|
|
1-categories
|
|
|
|
|
|
|
|
|
|
Univalent (proper) categories
|
|
|
|
|
|
|
|
|
|
The category of spans
|
2018-05-16 09:01:07 +00:00
|
|
|
|
\end{frame}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
|
|
|
|
|
\section{Paths}
|
2018-05-16 09:01:07 +00:00
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Paths}
|
|
|
|
|
\framesubtitle{Definition}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
Heterogeneous paths
|
|
|
|
|
\begin{equation*}
|
2018-05-30 23:07:05 +00:00
|
|
|
|
\Path \tp (P \tp \I → \MCU) → P\ 0 → P\ 1 → \MCU
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{equation*}
|
|
|
|
|
\pause
|
2018-06-07 13:20:14 +00:00
|
|
|
|
For $P \tp \I → \MCU$ and $a_0 \tp P\ 0$, $a_1 \tp P\ 1$
|
2018-05-16 09:01:07 +00:00
|
|
|
|
inhabitants of $\Path\ P\ a_0\ a_1$ are like functions
|
2018-05-18 11:14:41 +00:00
|
|
|
|
%
|
|
|
|
|
$$
|
2018-05-30 23:07:05 +00:00
|
|
|
|
p \tp ∏_{i \tp \I} P\ i
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
%
|
|
|
|
|
Which satisfy $p\ 0 & = a_0$ and $p\ 1 & = a_1$
|
|
|
|
|
\pause
|
2018-05-16 09:01:07 +00:00
|
|
|
|
|
2018-05-18 11:14:41 +00:00
|
|
|
|
Homogenous paths
|
|
|
|
|
$$
|
2018-05-28 15:32:56 +00:00
|
|
|
|
a_0 ≡ a_1 ≜ \Path\ (\var{const}\ A)\ a_0\ a_1
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
\end{frame}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Pre categories}
|
|
|
|
|
\framesubtitle{Definition}
|
|
|
|
|
Data:
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\Object & \tp \Type \\
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\Arrow & \tp \Object → \Object → \Type \\
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\identity & \tp \Arrow\ A\ A \\
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\lll & \tp \Arrow\ B\ C → \Arrow\ A\ B → \Arrow\ A\ C
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{align*}
|
|
|
|
|
%
|
|
|
|
|
\pause
|
|
|
|
|
Laws:
|
|
|
|
|
%
|
|
|
|
|
$$
|
|
|
|
|
h \lll (g \lll f) ≡ (h \lll g) \lll f
|
|
|
|
|
$$
|
|
|
|
|
$$
|
|
|
|
|
(\identity \lll f ≡ f)
|
2018-05-28 15:32:56 +00:00
|
|
|
|
×
|
2018-05-18 11:14:41 +00:00
|
|
|
|
(f \lll \identity ≡ f)
|
|
|
|
|
$$
|
|
|
|
|
\end{frame}
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Pre categories}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
\framesubtitle{1-categories}
|
|
|
|
|
Cubical Agda does not admit \emph{Uniqueness of Identity Proofs}
|
|
|
|
|
(UIP). Rather there is a hierarchy of \emph{Homotopy Types}:
|
|
|
|
|
Contractible types, mere propositions, sets, groupoids, \dots
|
|
|
|
|
|
|
|
|
|
\pause
|
|
|
|
|
1-categories:
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
2018-06-07 13:20:14 +00:00
|
|
|
|
\isSet\ (\Arrow\ A\ B)
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
2018-06-07 13:20:14 +00:00
|
|
|
|
\pause
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\begin{align*}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
\isSet & \tp \MCU → \MCU \\
|
|
|
|
|
\isSet\ A & ≜ ∏_{a_0, a_1 \tp A} \isProp\ (a_0 ≡ a_1)
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{align*}
|
|
|
|
|
\end{frame}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Outline}
|
|
|
|
|
The path type \ensuremath{\checkmark}
|
|
|
|
|
|
|
|
|
|
Definition of a (pre-) category \ensuremath{\checkmark}
|
|
|
|
|
|
|
|
|
|
1-categories \ensuremath{\checkmark}
|
|
|
|
|
|
|
|
|
|
Univalent (proper) categories
|
|
|
|
|
|
|
|
|
|
The category of spans
|
|
|
|
|
\end{frame}
|
|
|
|
|
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Categories}
|
|
|
|
|
\framesubtitle{Univalence}
|
2018-05-30 23:07:05 +00:00
|
|
|
|
Let $\approxeq$ denote isomorphism of objects. We can then construct
|
2018-05-18 11:14:41 +00:00
|
|
|
|
the identity isomorphism in any category:
|
|
|
|
|
$$
|
2018-06-07 13:20:14 +00:00
|
|
|
|
(\identity , \identity , \var{isIdentity}) \tp A \approxeq A
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
\pause
|
|
|
|
|
Likewise since paths are substitutive we can promote a path to an isomorphism:
|
|
|
|
|
$$
|
|
|
|
|
\idToIso \tp A ≡ B → A ≊ B
|
|
|
|
|
$$
|
|
|
|
|
\pause
|
|
|
|
|
For a category to be univalent we require this to be an equivalence:
|
|
|
|
|
%
|
|
|
|
|
$$
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\isEquiv\ (A ≡ B)\ (A \approxeq B)\ \idToIso
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
%
|
|
|
|
|
\end{frame}
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Categories}
|
|
|
|
|
\framesubtitle{Univalence, cont'd}
|
2018-05-28 15:32:56 +00:00
|
|
|
|
$$\isEquiv\ (A ≡ B)\ (A \approxeq B)\ \idToIso$$
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\pause%
|
2018-05-28 15:32:56 +00:00
|
|
|
|
$$(A ≡ B) ≃ (A \approxeq B)$$
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\pause%
|
2018-05-28 15:32:56 +00:00
|
|
|
|
$$(A ≡ B) ≅ (A \approxeq B)$$
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\pause%
|
2018-06-07 13:20:14 +00:00
|
|
|
|
Name the inverse of $\idToIso$:
|
2018-05-28 15:32:56 +00:00
|
|
|
|
$$\isoToId \tp (A \approxeq B) → (A ≡ B)$$
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{frame}
|
|
|
|
|
\begin{frame}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
\frametitle{Propositionality of products}
|
|
|
|
|
Construct a category for which it is the case that the terminal
|
|
|
|
|
objects are equivalent to products:
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\begin{align*}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
\var{Terminal} ≃ \var{Product}\ ℂ\ 𝒜\ ℬ
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{align*}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\pause
|
2018-06-07 13:20:14 +00:00
|
|
|
|
And since equivalences preserve homotopy levels we get:
|
2018-05-18 11:14:41 +00:00
|
|
|
|
%
|
|
|
|
|
$$
|
2018-06-07 13:20:14 +00:00
|
|
|
|
\isProp\ \left(\var{Product}\ \bC\ 𝒜\ ℬ\right)
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
\end{frame}
|
|
|
|
|
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Categories}
|
|
|
|
|
\framesubtitle{A theorem}
|
|
|
|
|
%
|
2018-06-07 13:20:14 +00:00
|
|
|
|
Let the isomorphism $(ι, \inv{ι}, \var{inv}) \tp A \approxeq B$.
|
2018-05-18 11:14:41 +00:00
|
|
|
|
%
|
|
|
|
|
\pause
|
|
|
|
|
%
|
|
|
|
|
The isomorphism induces the path
|
|
|
|
|
%
|
|
|
|
|
$$
|
2018-06-07 13:20:14 +00:00
|
|
|
|
p ≜ \isoToId\ (\iota, \inv{\iota}, \var{inv}) \tp A ≡ B
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
%
|
|
|
|
|
\pause
|
2018-06-07 13:20:14 +00:00
|
|
|
|
and consequently a path on arrows:
|
2018-05-18 11:14:41 +00:00
|
|
|
|
%
|
|
|
|
|
$$
|
2018-05-28 15:32:56 +00:00
|
|
|
|
p_{\var{dom}} ≜ \congruence\ (λ x → \Arrow\ x\ X)\ p
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\tp
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\Arrow\ A\ X ≡ \Arrow\ B\ X
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
%
|
|
|
|
|
\pause
|
|
|
|
|
The proposition is:
|
|
|
|
|
%
|
|
|
|
|
\begin{align}
|
|
|
|
|
\label{eq:coeDom}
|
|
|
|
|
\tag{$\var{coeDom}$}
|
2018-05-28 15:32:56 +00:00
|
|
|
|
∏_{f \tp A → X}
|
|
|
|
|
\var{coe}\ p_{\var{dom}}\ f ≡ f \lll \inv{\iota}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{align}
|
|
|
|
|
\end{frame}
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Categories}
|
|
|
|
|
\framesubtitle{A theorem, proof}
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\var{coe}\ p_{\var{dom}}\ f
|
2018-06-07 13:20:14 +00:00
|
|
|
|
& ≡ f \lll (\idToIso\ p)_1 && \text{By path-induction} \\
|
2018-05-28 15:32:56 +00:00
|
|
|
|
& ≡ f \lll \inv{\iota}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
&& \text{$\idToIso$ and $\isoToId$ are inverses}\\
|
|
|
|
|
\end{align*}
|
|
|
|
|
\pause
|
|
|
|
|
%
|
2018-05-30 23:07:05 +00:00
|
|
|
|
Induction will be based at $A$. Let $\widetilde{B}$ and $\widetilde{p}
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\tp A ≡ \widetilde{B}$ be given.
|
2018-05-18 11:14:41 +00:00
|
|
|
|
%
|
|
|
|
|
\pause
|
|
|
|
|
%
|
|
|
|
|
Define the family:
|
|
|
|
|
%
|
|
|
|
|
$$
|
2018-05-28 15:32:56 +00:00
|
|
|
|
D\ \widetilde{B}\ \widetilde{p} ≜
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\var{coe}\ \widetilde{p}_{\var{dom}}\ f
|
2018-05-28 15:32:56 +00:00
|
|
|
|
≡
|
2018-05-18 11:14:41 +00:00
|
|
|
|
f \lll \inv{(\idToIso\ \widetilde{p})}
|
|
|
|
|
$$
|
|
|
|
|
\pause
|
|
|
|
|
%
|
|
|
|
|
The base-case becomes:
|
|
|
|
|
$$
|
|
|
|
|
d \tp D\ A\ \refl =
|
2018-06-07 13:20:14 +00:00
|
|
|
|
\left(\var{coe}\ \refl_{\var{dom}}\ f ≡ f \lll \inv{(\idToIso\ \refl)}\right)
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
\end{frame}
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Categories}
|
|
|
|
|
\framesubtitle{A theorem, proof, cont'd}
|
|
|
|
|
$$
|
|
|
|
|
d \tp
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\var{coe}\ \refl_{\var{dom}}\ f ≡ f \lll \inv{(\idToIso\ \refl)}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
\pause
|
|
|
|
|
\begin{align*}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
\var{coe}\ \refl_{\var{dom}}\ f
|
|
|
|
|
& =
|
|
|
|
|
\var{coe}\ \refl\ f \\
|
2018-05-28 15:32:56 +00:00
|
|
|
|
& ≡ f
|
2018-06-07 13:20:14 +00:00
|
|
|
|
&& \text{neutral element for $\var{coe}$}\\
|
2018-05-28 15:32:56 +00:00
|
|
|
|
& ≡ f \lll \identity \\
|
|
|
|
|
& ≡ f \lll \var{subst}\ \refl\ \identity
|
2018-06-07 13:20:14 +00:00
|
|
|
|
&& \text{neutral element for $\var{subst}$}\\
|
2018-05-28 15:32:56 +00:00
|
|
|
|
& ≡ f \lll \inv{(\idToIso\ \refl)}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
&& \text{By definition of $\idToIso$}\\
|
|
|
|
|
\end{align*}
|
|
|
|
|
\pause
|
|
|
|
|
In conclusion, the theorem is inhabited by:
|
|
|
|
|
$$
|
2018-06-07 13:20:14 +00:00
|
|
|
|
\var{pathInd}\ D\ d\ B\ p
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
\end{frame}
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Span category} \framesubtitle{Definition} Given a base
|
|
|
|
|
category $\bC$ and two objects in this category $\pairA$ and $\pairB$
|
|
|
|
|
we can construct the \nomenindex{span category}:
|
|
|
|
|
%
|
|
|
|
|
\pause
|
|
|
|
|
Objects:
|
|
|
|
|
$$
|
2018-06-07 13:20:14 +00:00
|
|
|
|
∑_{X \tp Object} (\Arrow\ X\ \pairA) × (\Arrow\ X\ \pairB)
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
\pause
|
|
|
|
|
%
|
2018-06-07 13:20:14 +00:00
|
|
|
|
Arrows between objects $(A , a_{\pairA} , a_{\pairB})$ and
|
|
|
|
|
$(B , b_{\pairA} , b_{\pairB})$:
|
2018-05-18 11:14:41 +00:00
|
|
|
|
%
|
|
|
|
|
$$
|
2018-05-28 15:32:56 +00:00
|
|
|
|
∑_{f \tp \Arrow\ A\ B}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
(b_{\pairA} \lll f ≡ a_{\pairA}) ×
|
|
|
|
|
(b_{\pairB} \lll f ≡ a_{\pairB})
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
\end{frame}
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Span category}
|
|
|
|
|
\framesubtitle{Univalence}
|
|
|
|
|
\begin{align*}
|
2018-05-28 15:32:56 +00:00
|
|
|
|
(X , x_{𝒜} , x_{ℬ}) ≡ (Y , y_{𝒜} , y_{ℬ})
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{align*}
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\begin{split}
|
2018-05-28 15:32:56 +00:00
|
|
|
|
p \tp & X ≡ Y \\
|
|
|
|
|
& \Path\ (λ i → \Arrow\ (p\ i)\ 𝒜)\ x_{𝒜}\ y_{𝒜} \\
|
|
|
|
|
& \Path\ (λ i → \Arrow\ (p\ i)\ ℬ)\ x_{ℬ}\ y_{ℬ}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{split}
|
|
|
|
|
\end{align*}
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\begin{split}
|
|
|
|
|
\var{iso} \tp & X \approxeq Y \\
|
2018-05-28 15:32:56 +00:00
|
|
|
|
& \Path\ (λ i → \Arrow\ (\widetilde{p}\ i)\ 𝒜)\ x_{𝒜}\ y_{𝒜} \\
|
|
|
|
|
& \Path\ (λ i → \Arrow\ (\widetilde{p}\ i)\ ℬ)\ x_{ℬ}\ y_{ℬ}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{split}
|
|
|
|
|
\end{align*}
|
|
|
|
|
\begin{align*}
|
2018-05-28 15:32:56 +00:00
|
|
|
|
(X , x_{𝒜} , x_{ℬ}) ≊ (Y , y_{𝒜} , y_{ℬ})
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{align*}
|
|
|
|
|
\end{frame}
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Span category}
|
|
|
|
|
\framesubtitle{Univalence, proof}
|
|
|
|
|
%
|
|
|
|
|
\begin{align*}
|
|
|
|
|
%% (f, \inv{f}, \var{inv}_f, \var{inv}_{\inv{f}})
|
|
|
|
|
%% \tp
|
2018-05-28 15:32:56 +00:00
|
|
|
|
(X, x_{𝒜}, x_{ℬ}) \approxeq (Y, y_{𝒜}, y_{ℬ})
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\to
|
|
|
|
|
\begin{split}
|
|
|
|
|
\var{iso} \tp & X \approxeq Y \\
|
2018-05-28 15:32:56 +00:00
|
|
|
|
& \Path\ (λ i → \Arrow\ (\widetilde{p}\ i)\ 𝒜)\ x_{𝒜}\ y_{𝒜} \\
|
|
|
|
|
& \Path\ (λ i → \Arrow\ (\widetilde{p}\ i)\ ℬ)\ x_{ℬ}\ y_{ℬ}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{split}
|
|
|
|
|
\end{align*}
|
|
|
|
|
\pause
|
|
|
|
|
%
|
|
|
|
|
Let $(f, \inv{f}, \var{inv}_f, \var{inv}_{\inv{f}})$ be an inhabitant
|
|
|
|
|
of the antecedent.\pause
|
|
|
|
|
|
|
|
|
|
Projecting out the first component gives us the isomorphism
|
|
|
|
|
%
|
|
|
|
|
$$
|
|
|
|
|
(\fst\ f, \fst\ \inv{f}
|
|
|
|
|
, \congruence\ \fst\ \var{inv}_f
|
|
|
|
|
, \congruence\ \fst\ \var{inv}_{\inv{f}}
|
|
|
|
|
)
|
|
|
|
|
\tp X \approxeq Y
|
|
|
|
|
$$
|
|
|
|
|
\pause
|
|
|
|
|
%
|
|
|
|
|
This gives rise to the following paths:
|
|
|
|
|
%
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\begin{split}
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\widetilde{p} & \tp X ≡ Y \\
|
|
|
|
|
\widetilde{p}_{𝒜} & \tp \Arrow\ X\ 𝒜 ≡ \Arrow\ Y\ 𝒜 \\
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{split}
|
|
|
|
|
\end{align*}
|
|
|
|
|
%
|
|
|
|
|
\end{frame}
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Span category}
|
|
|
|
|
\framesubtitle{Univalence, proof, cont'd}
|
|
|
|
|
It remains to construct:
|
|
|
|
|
%
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\begin{split}
|
2018-05-28 15:32:56 +00:00
|
|
|
|
& \Path\ (λ i → \widetilde{p}_{𝒜}\ i)\ x_{𝒜}\ y_{𝒜}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{split}
|
|
|
|
|
\end{align*}
|
|
|
|
|
\pause
|
|
|
|
|
%
|
|
|
|
|
This is achieved with the following lemma:
|
|
|
|
|
%
|
|
|
|
|
\begin{align*}
|
2018-05-28 15:32:56 +00:00
|
|
|
|
∏_{q \tp A ≡ B} \var{coe}\ q\ x_{𝒜} ≡ y_{𝒜}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
→
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\Path\ (λ i → q\ i)\ x_{𝒜}\ y_{𝒜}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{align*}
|
|
|
|
|
%
|
|
|
|
|
Which is used without proof.\pause
|
|
|
|
|
|
|
|
|
|
So the construction reduces to:
|
|
|
|
|
%
|
|
|
|
|
\begin{align*}
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\var{coe}\ \widetilde{p}_{𝒜}\ x_{𝒜} ≡ y_{𝒜}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{align*}%
|
|
|
|
|
\pause%
|
|
|
|
|
This is proven with:
|
|
|
|
|
%
|
|
|
|
|
\begin{align*}
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\var{coe}\ \widetilde{p}_{𝒜}\ x_{𝒜}
|
|
|
|
|
& ≡ x_{𝒜} \lll \fst\ \inv{f} && \text{\ref{eq:coeDom}} \\
|
|
|
|
|
& ≡ y_{𝒜} && \text{Property of span category}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{align*}
|
|
|
|
|
\end{frame}
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Propositionality of products}
|
|
|
|
|
We have
|
|
|
|
|
%
|
|
|
|
|
$$
|
|
|
|
|
\isProp\ \var{Terminal}
|
|
|
|
|
$$\pause
|
|
|
|
|
%
|
|
|
|
|
We can show:
|
|
|
|
|
\begin{align*}
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\var{Terminal} ≃ \var{Product}\ ℂ\ 𝒜\ ℬ
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{align*}
|
|
|
|
|
\pause
|
|
|
|
|
And since equivalences preserve homotopy levels we get:
|
|
|
|
|
%
|
|
|
|
|
$$
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\isProp\ \left(\var{Product}\ \bC\ 𝒜\ ℬ\right)
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
\end{frame}
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Monads}
|
|
|
|
|
\framesubtitle{Monoidal form}
|
|
|
|
|
%
|
|
|
|
|
\begin{align*}
|
2018-06-07 13:20:14 +00:00
|
|
|
|
\EndoR & \tp \Functor\ ℂ\ ℂ \\
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\pureNT
|
2018-06-07 13:20:14 +00:00
|
|
|
|
& \tp \NT{\widehat{\identity}}{\EndoR} \\
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\joinNT
|
2018-06-07 13:20:14 +00:00
|
|
|
|
& \tp \NT{(\EndoR \oplus \EndoR)}{\EndoR}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{align*}
|
|
|
|
|
\pause
|
|
|
|
|
%
|
2018-06-07 13:20:14 +00:00
|
|
|
|
Let $\fmap$ be the map on arrows of $\EndoR$.
|
2018-05-18 11:14:41 +00:00
|
|
|
|
%
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\join \lll \fmap\ \join
|
|
|
|
|
& ≡ \join \lll \join \\
|
|
|
|
|
\join \lll \pure\ & ≡ \identity \\
|
|
|
|
|
\join \lll \fmap\ \pure & ≡ \identity
|
|
|
|
|
\end{align*}
|
|
|
|
|
\end{frame}
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Monads}
|
|
|
|
|
\framesubtitle{Kleisli form}
|
|
|
|
|
%
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\omapR & \tp \Object → \Object \\
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\pure & \tp % ∏_{X \tp Object}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\Arrow\ X\ (\omapR\ X) \\
|
|
|
|
|
\bind & \tp
|
|
|
|
|
\Arrow\ X\ (\omapR\ Y)
|
|
|
|
|
\to
|
|
|
|
|
\Arrow\ (\omapR\ X)\ (\omapR\ Y)
|
|
|
|
|
\end{align*}\pause
|
|
|
|
|
%
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\fish & \tp
|
|
|
|
|
\Arrow\ A\ (\omapR\ B)
|
|
|
|
|
→
|
|
|
|
|
\Arrow\ B\ (\omapR\ C)
|
|
|
|
|
→
|
|
|
|
|
\Arrow\ A\ (\omapR\ C) \\
|
2018-05-28 15:32:56 +00:00
|
|
|
|
f \fish g & ≜ f \rrr (\bind\ g)
|
2018-05-18 11:14:41 +00:00
|
|
|
|
\end{align*}
|
|
|
|
|
\pause
|
|
|
|
|
%
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\bind\ \pure & ≡ \identity_{\omapR\ X} \\
|
|
|
|
|
\pure \fish f & ≡ f \\
|
|
|
|
|
(\bind\ f) \rrr (\bind\ g) & ≡ \bind\ (f \fish g)
|
|
|
|
|
\end{align*}
|
|
|
|
|
\end{frame}
|
|
|
|
|
\begin{frame}
|
|
|
|
|
\frametitle{Monads}
|
|
|
|
|
\framesubtitle{Equivalence}
|
|
|
|
|
In the monoidal formulation we can define $\bind$:
|
|
|
|
|
%
|
|
|
|
|
$$
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\bind\ f ≜ \join \lll \fmap\ f
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
\pause
|
|
|
|
|
%
|
|
|
|
|
And likewise in the Kleisli formulation we can define $\join$:
|
|
|
|
|
%
|
|
|
|
|
$$
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\join ≜ \bind\ \identity
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
\pause
|
2018-06-07 13:20:14 +00:00
|
|
|
|
The laws are logically equivalent. Since logical equivalence is
|
|
|
|
|
enough for as an equivalence of types for propositions we get:
|
2018-05-18 11:14:41 +00:00
|
|
|
|
%
|
|
|
|
|
$$
|
2018-05-28 15:32:56 +00:00
|
|
|
|
\var{Monoidal} ≃ \var{Kleisli}
|
2018-05-18 11:14:41 +00:00
|
|
|
|
$$
|
|
|
|
|
%
|
2018-05-16 09:01:07 +00:00
|
|
|
|
\end{frame}
|
|
|
|
|
\end{document}
|