Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Nicola Botta
papers
Commits
11a4dd0c
Commit
11a4dd0c
authored
Sep 23, 2021
by
Nicola Botta
Browse files
Final.
parent
c06d4c30
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
2020.Extensional equality preservation and verified generic programming/About.lidr
View file @
11a4dd0c
...
...
@@ -257,7 +257,7 @@ verified ADTs initiated by Nicholas Drozd on
\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
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
verified interfaces should look like''. Our aim is to demonstrate that,
like preservation of identity functions or preservation of composition,
...
...
@@ -295,7 +295,7 @@ Foundations program
\citep{DBLP:books/daglib/0067012,DBLP:conf/lics/HofmannS94,hottbook}.
%
Univalence and recent developments in \emph{Cubical Type Theory}
\citep{cohen
2016
cubical} promise to finally provide developers with a
\citep{cohen
etal18:
cubical} promise to finally provide developers with a
computational version of function extensionality.
...
...
@@ -315,7 +315,7 @@ in mainstream programming.
From a more mathematical perspective, there are good reasons not to rely
on axioms that are stronger than necessary: there are interesting models
of type theory that refute function extensionality
\citep{streicher1993investigations, v
a
nGlehn_2015,
\citep{streicher1993investigations, v
o
nGlehn_2015,
10.1145/3018610.3018620}, and our results can be interpreted in these
models.
%
...
...
2020.Extensional equality preservation and verified generic programming/Example.lidr
View file @
11a4dd0c
...
...
@@ -201,6 +201,9 @@ Kleisli composition to fulfil the specification
%
\vspace*{-2ex}
\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]
|M C|
& |M (M C)| \arrow[l, "|join|"]
...
...
@@ -209,6 +212,7 @@ Kleisli composition to fulfil the specification
\mathbin{> \!\! = \!\! >}
g"]
\end{tikzcd}
\endpgfgraphicnamed
\end{center}
> kleisliSpec : {A, B, C : Type} -> {M : Type -> Type} -> Monad M =>
...
...
2020.Extensional equality preservation and verified generic programming/Monads.lidr
View file @
11a4dd0c
...
...
@@ -50,17 +50,21 @@ two \emph{natural transformations}
such that, for any object |A| of $\mathcal{C}$, the following diagrams commute:
\begin{minipage}{0.4\textwidth}
\beginpgfgraphicnamed{ExtEqPres-f2}
\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| &
\end{tikzcd}
\endpgfgraphicnamed
\end{minipage}
\hfill
\begin{minipage}{0.4\textwidth}
\beginpgfgraphicnamed{ExtEqPres-f3}
\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 A)| \arrow[r, "|mu A|"'] & |M A|
\end{tikzcd}
\endpgfgraphicnamed
\end{minipage}
\noindent
...
...
@@ -79,17 +83,21 @@ diagrams commute for any arrow |f : A -> B| in $\mathcal{C}$:
%\end{minipage}
\hfill
\begin{minipage}{0.3\textwidth}
\beginpgfgraphicnamed{ExtEqPres-f4}
\begin{tikzcd}[row sep=large, column sep=large]
|A| \arrow[r, "|f|"] \arrow[d, "|eta A|"'] & |B| \arrow[d, "|eta B|"] \\
|M A| \arrow[r, "|M f|"'] & |M B|
\end{tikzcd}
\endpgfgraphicnamed
\end{minipage}
\hfill
\begin{minipage}{0.4\textwidth}
\beginpgfgraphicnamed{ExtEqPres-f5}
\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 A| \arrow[r, "|M f|"'] & |M B|
\end{tikzcd}
\endpgfgraphicnamed
\end{minipage}
\noindent
...
...
2020.Extensional equality preservation and verified generic programming/RelatedWork.lidr
View file @
11a4dd0c
...
...
@@ -64,12 +64,12 @@ and in Agda has to be disabled using a special flag.
%
%
Finally, in \emph{Cubical Type Theory} \citep{cohen
2016
cubical}
Finally, in \emph{Cubical Type Theory} \citep{cohen
etal18:
cubical}
function extensionality is provable because of the presence of the
\emph{interval primitive} and thus has computational content.
%
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
the theorem prover Arend \citep{arend_prover}.
...
...
@@ -82,7 +82,7 @@ On the topic of interfaces (type classes) and their laws there is
related work in specifying \citep{janssonjeuring-dataconv}, rewriting
\citep{peytonjones2001playing}, testing
\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
non-termination as described in the Fast and Loose Reasoning paper
...
...
2020.Extensional equality preservation and verified generic programming/main.lhs
View file @
11a4dd0c
% -*-Latex-*-
\RequirePackage{amsmath}
\documentclass{jfp}
%\documentclass{jfphack}
\usepackage{tikz-cd}
%% begin for submission
\pgfrealjobname{main}
%% end for submission
\usepackage{quoting}
\usepackage{bigfoot} % To handle url with special characters in footnotes!
\usepackage{hyperref}
...
...
2020.Extensional equality preservation and verified generic programming/references.bib
View file @
11a4dd0c
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment