Commit 11a4dd0c authored by Nicola Botta's avatar Nicola Botta
Browse files

Final.

parent c06d4c30
...@@ -257,7 +257,7 @@ verified ADTs initiated by Nicholas Drozd on ...@@ -257,7 +257,7 @@ verified ADTs initiated by Nicholas Drozd on
\href{https://groups.google.com/forum/#!topic/idris-lang/VZVpi-QUyUc}{idris-lang}. \href{https://groups.google.com/forum/#!topic/idris-lang/VZVpi-QUyUc}{idris-lang}.
% %
A caveat is perhaps in place: the discussion on ADTs for functors and A caveat is perhaps in place: the discussion on ADTs for functors and
monads in sections sections \ref{section:functors} and monads in sections \ref{section:functors} and
\ref{section:monads} is not meant to answer the question of ``what \ref{section:monads} is not meant to answer the question of ``what
verified interfaces should look like''. Our aim is to demonstrate that, verified interfaces should look like''. Our aim is to demonstrate that,
like preservation of identity functions or preservation of composition, like preservation of identity functions or preservation of composition,
...@@ -295,7 +295,7 @@ Foundations program ...@@ -295,7 +295,7 @@ Foundations program
\citep{DBLP:books/daglib/0067012,DBLP:conf/lics/HofmannS94,hottbook}. \citep{DBLP:books/daglib/0067012,DBLP:conf/lics/HofmannS94,hottbook}.
% %
Univalence and recent developments in \emph{Cubical Type Theory} Univalence and recent developments in \emph{Cubical Type Theory}
\citep{cohen2016cubical} promise to finally provide developers with a \citep{cohenetal18:cubical} promise to finally provide developers with a
computational version of function extensionality. computational version of function extensionality.
...@@ -315,7 +315,7 @@ in mainstream programming. ...@@ -315,7 +315,7 @@ in mainstream programming.
From a more mathematical perspective, there are good reasons not to rely From a more mathematical perspective, there are good reasons not to rely
on axioms that are stronger than necessary: there are interesting models on axioms that are stronger than necessary: there are interesting models
of type theory that refute function extensionality of type theory that refute function extensionality
\citep{streicher1993investigations, vanGlehn_2015, \citep{streicher1993investigations, vonGlehn_2015,
10.1145/3018610.3018620}, and our results can be interpreted in these 10.1145/3018610.3018620}, and our results can be interpreted in these
models. models.
% %
......
...@@ -201,6 +201,9 @@ Kleisli composition to fulfil the specification ...@@ -201,6 +201,9 @@ Kleisli composition to fulfil the specification
% %
\vspace*{-2ex} \vspace*{-2ex}
\begin{center} \begin{center}
%%***TODO replace with pdf include
%% See https://tex.stackexchange.com/questions/452/how-can-i-create-a-pdf-document-exactly-as-big-as-my-tikz-picture/514
\beginpgfgraphicnamed{ExtEqPres-f1}
\begin{tikzcd}[column sep=large] \begin{tikzcd}[column sep=large]
|M C| |M C|
& |M (M C)| \arrow[l, "|join|"] & |M (M C)| \arrow[l, "|join|"]
...@@ -209,6 +212,7 @@ Kleisli composition to fulfil the specification ...@@ -209,6 +212,7 @@ Kleisli composition to fulfil the specification
\mathbin{> \!\! = \!\! >} \mathbin{> \!\! = \!\! >}
g"] g"]
\end{tikzcd} \end{tikzcd}
\endpgfgraphicnamed
\end{center} \end{center}
> kleisliSpec : {A, B, C : Type} -> {M : Type -> Type} -> Monad M => > kleisliSpec : {A, B, C : Type} -> {M : Type -> Type} -> Monad M =>
......
...@@ -50,17 +50,21 @@ two \emph{natural transformations} ...@@ -50,17 +50,21 @@ two \emph{natural transformations}
such that, for any object |A| of $\mathcal{C}$, the following diagrams commute: such that, for any object |A| of $\mathcal{C}$, the following diagrams commute:
\begin{minipage}{0.4\textwidth} \begin{minipage}{0.4\textwidth}
\beginpgfgraphicnamed{ExtEqPres-f2}
\begin{tikzcd}[row sep=large, column sep=large] \begin{tikzcd}[row sep=large, column sep=large]
|M A| \arrow[r, "|eta (M A)|"] \arrow[dr, "|id_MA|"'] & |M (M A)| \arrow[d, "|mu A|"] & |M A| \arrow[l, "|M (eta A)|"'] \arrow[dl, "|id_MA|"] \\ |M A| \arrow[r, "|eta (M A)|"] \arrow[dr, "|id_MA|"'] & |M (M A)| \arrow[d, "|mu A|"] & |M A| \arrow[l, "|M (eta A)|"'] \arrow[dl, "|id_MA|"] \\
& |M A| & & |M A| &
\end{tikzcd} \end{tikzcd}
\endpgfgraphicnamed
\end{minipage} \end{minipage}
\hfill \hfill
\begin{minipage}{0.4\textwidth} \begin{minipage}{0.4\textwidth}
\beginpgfgraphicnamed{ExtEqPres-f3}
\begin{tikzcd}[row sep=large, column sep=large] \begin{tikzcd}[row sep=large, column sep=large]
|M (M (M A))| \arrow[r, "|M (mu A)|"] \arrow[d, "|mu (M A)|"'] & |M (M A)| \arrow[d, "|mu A|"] \\ |M (M (M A))| \arrow[r, "|M (mu A)|"] \arrow[d, "|mu (M A)|"'] & |M (M A)| \arrow[d, "|mu A|"] \\
|M (M A)| \arrow[r, "|mu A|"'] & |M A| |M (M A)| \arrow[r, "|mu A|"'] & |M A|
\end{tikzcd} \end{tikzcd}
\endpgfgraphicnamed
\end{minipage} \end{minipage}
\noindent \noindent
...@@ -79,17 +83,21 @@ diagrams commute for any arrow |f : A -> B| in $\mathcal{C}$: ...@@ -79,17 +83,21 @@ diagrams commute for any arrow |f : A -> B| in $\mathcal{C}$:
%\end{minipage} %\end{minipage}
\hfill \hfill
\begin{minipage}{0.3\textwidth} \begin{minipage}{0.3\textwidth}
\beginpgfgraphicnamed{ExtEqPres-f4}
\begin{tikzcd}[row sep=large, column sep=large] \begin{tikzcd}[row sep=large, column sep=large]
|A| \arrow[r, "|f|"] \arrow[d, "|eta A|"'] & |B| \arrow[d, "|eta B|"] \\ |A| \arrow[r, "|f|"] \arrow[d, "|eta A|"'] & |B| \arrow[d, "|eta B|"] \\
|M A| \arrow[r, "|M f|"'] & |M B| |M A| \arrow[r, "|M f|"'] & |M B|
\end{tikzcd} \end{tikzcd}
\endpgfgraphicnamed
\end{minipage} \end{minipage}
\hfill \hfill
\begin{minipage}{0.4\textwidth} \begin{minipage}{0.4\textwidth}
\beginpgfgraphicnamed{ExtEqPres-f5}
\begin{tikzcd}[row sep=large, column sep=large] \begin{tikzcd}[row sep=large, column sep=large]
|M (M A)| \arrow[r, "|M (M f)|"] \arrow[d, "|mu A|"'] & |M (M B)| \arrow[d, "|mu B|"] \\ |M (M A)| \arrow[r, "|M (M f)|"] \arrow[d, "|mu A|"'] & |M (M B)| \arrow[d, "|mu B|"] \\
|M A| \arrow[r, "|M f|"'] & |M B| |M A| \arrow[r, "|M f|"'] & |M B|
\end{tikzcd} \end{tikzcd}
\endpgfgraphicnamed
\end{minipage} \end{minipage}
\noindent \noindent
......
...@@ -64,12 +64,12 @@ and in Agda has to be disabled using a special flag. ...@@ -64,12 +64,12 @@ and in Agda has to be disabled using a special flag.
% %
% %
Finally, in \emph{Cubical Type Theory} \citep{cohen2016cubical} Finally, in \emph{Cubical Type Theory} \citep{cohenetal18:cubical}
function extensionality is provable because of the presence of the function extensionality is provable because of the presence of the
\emph{interval primitive} and thus has computational content. \emph{interval primitive} and thus has computational content.
% %
Cubical type theory has recently been implemented as a special version Cubical type theory has recently been implemented as a special version
of Agda \citep{10.1145/3341691}. of Agda \citep{cubicalagda2}.
% %
Another (similar) version of homotopy type theory is implemented in Another (similar) version of homotopy type theory is implemented in
the theorem prover Arend \citep{arend_prover}. the theorem prover Arend \citep{arend_prover}.
...@@ -82,7 +82,7 @@ On the topic of interfaces (type classes) and their laws there is ...@@ -82,7 +82,7 @@ On the topic of interfaces (type classes) and their laws there is
related work in specifying \citep{janssonjeuring-dataconv}, rewriting related work in specifying \citep{janssonjeuring-dataconv}, rewriting
\citep{peytonjones2001playing}, testing \citep{peytonjones2001playing}, testing
\citep{jeuringHaskell12ClassLaws} and proving \citep{jeuringHaskell12ClassLaws} and proving
\citep{DBLP:journals/corr/abs-1808-05789} type class laws in Haskell. \citep{arvidssonetal19:typeclasslaws} type class laws in Haskell.
% %
The equality challenges here are often related to the semantics of The equality challenges here are often related to the semantics of
non-termination as described in the Fast and Loose Reasoning paper non-termination as described in the Fast and Loose Reasoning paper
......
% -*-Latex-*- % -*-Latex-*-
\RequirePackage{amsmath} \RequirePackage{amsmath}
\documentclass{jfp} \documentclass{jfp}
%\documentclass{jfphack}
\usepackage{tikz-cd} \usepackage{tikz-cd}
%% begin for submission
\pgfrealjobname{main}
%% end for submission
\usepackage{quoting} \usepackage{quoting}
\usepackage{bigfoot} % To handle url with special characters in footnotes! \usepackage{bigfoot} % To handle url with special characters in footnotes!
\usepackage{hyperref} \usepackage{hyperref}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment