1
0
mirror of https://github.com/dhil/phd-dissertation synced 2026-04-28 15:06:29 +01:00

Compare commits

...

2 Commits

Author SHA1 Message Date
c707eb769e Fix definition style 2020-10-21 14:36:30 +01:00
5f7bf83332 Section 2.1 intro 2020-10-21 13:06:56 +01:00
2 changed files with 52 additions and 16 deletions

View File

@@ -1351,4 +1351,13 @@
title = {Practical Foundations for Programming Languages (2nd. Ed.)},
publisher = {Cambridge University Press},
year = {2016}
}
# Andrej's tutorial
@article{Bauer18,
author = {Andrej Bauer},
title = {What is algebraic about algebraic effects and handlers?},
journal = {CoRR},
volume = {abs/1807.05923},
year = {2018}
}

View File

@@ -92,12 +92,12 @@
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{corollary}[theorem]{Corollary}
\theoremstyle{definition}
\newtheorem{definition}[theorem]{Definition}
% Example environment.
\makeatletter
\def\@endtheorem{\hfill$\blacksquare$\endtrivlist\@endpefalse} % inserts a black square at the end.
\makeatother
\theoremstyle{definition}
\newtheorem{example}{Example}[chapter]
%%
@@ -277,6 +277,16 @@ qualifier deceive you) --- the two books complement each other nicely.
\section{Relations and functions}
\label{sec:functions}
Relations and functions feature prominently in the design and
understanding of the static and dynamic properties of programming
languages. The interested reader is likely to already be familiar with
the basic concepts of relations and functions, although this section
briefly introduces the concepts, its purpose is to introduce the
notation that I am using pervasively throughout this dissertation.
%
I assume familiarity with basic set theory.
\begin{definition}
The Cartesian product of two sets $A$ and $B$, written $A \times B$,
is the set of all ordered pairs $(a, b)$, where $a$ is drawn from
@@ -332,10 +342,11 @@ $R^n$, is defined inductively.
R^0 \defas \emptyset, \quad\qquad R^1 \defas R, \quad\qquad R^{1 + n} \defas R \circ R^n.
\]
%
Homogeneous relations play a prominent role in the design and
operational understanding of programming languages. There are two
particular properties and associated closure operations of homogeneous
relations that reoccur throughout this dissertation.
Homogeneous relations play a prominent role in the operational
understanding of programming languages as they are used to give
meaning to program reductions. There are two particular properties and
associated closure operations of homogeneous relations that reoccur
throughout this dissertation.
%
\begin{definition}
A homogeneous relation $R \subseteq A \times A$ is said to be
@@ -351,23 +362,27 @@ relations that reoccur throughout this dissertation.
\begin{definition}[Closure operations]
Let $R \subseteq A \times A$ denote a homogeneous relation. The
reflexive closure $R^{=}$ of $R$ is the smallest reflexive relation
over $A$ containing $R$, i.e.
over $A$ containing $R$
%
\[
R^{=} \defas \{ (a, a) \mid a \in A \} \cup R
R^{=} \defas \{ (a, a) \mid a \in A \} \cup R.
\]
%
The transitive closure $R^+$ of $R$ is the smallest transitive
relation over $A$ containing $R$, i.e.
relation over $A$ containing $R$
%
\[
R^+ \defas \displaystyle\bigcup_{n \in \N} R^n
R^+ \defas \displaystyle\bigcup_{n \in \N} R^n.
\]
%
The reflexive and transitive closure $R^\ast$ of $R$ is the smallest
reflexive and transitive relation over $A$ containing $R$
%
\[
R^\ast \defas (R^+)^{=}.
\]
\end{definition}
%
The reflexive and transitive closure $R^\ast$ of $R$ is defined as
$R^\ast \defas (R^+)^{=}$.
\begin{definition}
A relation $R \subseteq A \times B$ is functional and serial if it
@@ -395,11 +410,16 @@ We use these properties to define partial and total functions.
$f \subseteq A \times B$.
\end{definition}
%
A total function is also simply called a `function'.
A total function is also simply called a `function'. Throughout this
dissertation the terms (partial) mapping and (partial) function are
used interchangeably.
%
For a function $f : A \to B$ (or partial function $f : A \pto B$) we
write $f(a) = b$ to mean $(a, b) \in f$, and say that $f$ returns $b$
when applied to $a$.
write $f(a) = b$ to mean $(a, b) \in f$, and say that $f$ applied to
$a$ returns $b$. The notation $f(a)$ means the application of $f$ to
$a$, and we say that $f(a)$ is defined whenever $f(a) = b$ for some
$b$.
%
The domain of a function is a set, $\dom(-)$, consisting of all the
elements for which it is defined. Thus the domain of a total function
@@ -450,7 +470,14 @@ respectively.
\begin{definition}[Algebra]\label{def:algebra}
\end{definition}
\section{Programming languages}
\section{Algebraic effects and their handlers}
\label{sec:algebraic-effects}
See \citeauthor{Bauer18}'s tutorial~\cite{Bauer18} for an excellent
thorough account of the mathematics underpinning algebraic effects and
handlers.
\section{Typed programming languages}
\label{sec:pls}
%
\dhil{Definition of (typed) programming language, conservative extension, macro-expressiveness}