Okay, but what, precisely, would this require? Glad you asked.
No mutative syntax. This means, primarily, no
x.k = v
.
Strictly speaking, this does not actually reduce power; it only makes it more difficult to mutate. Through some means one can produce a
setAttr
function from which
x.k = v
is recovered. However, disallowing direct
x.k = v
certainly
discourages mutation.
It’s also worth noting that variable assignment of locally-declared
let
and
var
may as well be allowed, since that’s purely local mutation.
No references to free variables. This includes such things as
document
,
require
, and
Math
. This is necessary because a free variable may contain references to
functions with arbitrary effects.
eval
, for instance, is all-powerful.
Repeat: no require
. An import is an effect, especially since Javascript imports are dynamic. Imports will happen via affordances.
Hmmm... at this point may as well define a javascript-targeting
language ...
Objects are
[ k: v ]
. Dynamic keys are
[ (k): v ]
.
Object spread is
[ ..o, k: v ]
.
Field get is obj.x
. Dynamic get is obj.(x)
.
Path is
/path/to/thing
. These get absolutized before
evaluation .
Assume existence of:
Expr :: Type
a
type of expressions
Value :: Type
a
type of values
The second argument to
eval'
, if non-
Nothing
, is a
set of parameters to “apply” to the denotation of the
Expr
, assuming it in some sense denotes a
function .
For instance, if we are working over Javascript, we may have that
Value ~ M V
for some monad
M
and
type V
and that
eval' "1" Nothing = pure 1
and that
eval' "(a, b) => a * b" (Just [pure 7, pure 3]) = pure 21
From
eval'
we can create
eval e = eval' e Nothing
and
evalApply e xs = eval e (Just xs)
.
These two identities are the only assumptions made about
evaluation ; we do nothing to ensure that
evalApply
in any way “actually
represents function application”
Let
Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ be a (possibly-infinite) collection consisting of both values as well as
functions of
type List Expr -> Expr
, considered as grammatical rules.
Let
v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v be a value. Then let
Con Δ ( v )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\t{Con}_\Delta(v) Con Δ ( v ) denote the collection of values of the form
evalApply e xs
for any expression
e
generated by grammatical rules in
Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ and any tuple of values
xs
from
Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ .
Example
Say our target
language is Javascript and
eval'
is the canonical Javascript evaluator. Note then that our choice of
Value
would likely be something like
Value ~ IO JSVal
for some
type JSVal
in
order to allow for effects.
Then in
Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ we may choose things like:
Grammatical rules for basic operations, such as that taking two expressions
E 1
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
E_1 E 1 and
E 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
E_2 E 2 and producing the expression
E₁ + E₂
2 .
Nitpick: per the definition above, a grammatical rule must be a
function over
lists of expressions, but this rule is
defined specifically over 2-tuples. We may lift it to lists of expressions by identifying 2-tuples with length-2 lists and otherwise producing some dummy expression such as
null
.
Grammatical rules for
λ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\lambda λ -abstraction — for each tuple
a ‾
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\ol a a of identifiers the grammatical rule mapping an expression
E
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
E E to the expression
(a̅) => E
.
The grammatical rule for
function application
The value
(a, b) => a + b
. (If you have this and
function application then you don’t need the grammar rule
E₁, E₂ ↦ E₁ + E₂
)
Given this choice of
Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ , then for instance
Con Δ (
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\t{Con}_\Delta( Con Δ ( null
)
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
) ) would be values like:
fail = eval "null + null"
for some kind of fail state fail :: Value
pure 101 = evalApply "(a, b) => a + b" [pure 100, pure 1]
Semantically the consequences
Con Δ ( v )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\t{Con}_\Delta(v) Con Δ ( v ) can be thought of as “all the things you can do with
v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v ". This is of course dependent on your choice for
Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ 3 .
Explain why this is necessary and natural.
Fix Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ and take values
v 1 , v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1, v_2 v 1 , v 2 . Define
v 1 ⪯ v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \preceq v_2 v 1 ⪯ v 2 iff v 1 ∈ Con Δ ( v 1 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \in \t{Con}_\Delta(v_1) v 1 ∈ Con Δ ( v 1 ) .
Semantically
⪯
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\preceq ⪯ can be read as “is less effectful than”.
Assume a domain of values, which are
sets .
Given a
set Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ of values and a value
v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v , let the
consequences of v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v allowed by Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ be the
set
Con ( v ; Δ )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\t{Con}(v; \Delta) Con ( v ; Δ )
of values generated by
Δ ∪ { v }
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta \cup \{v\} Δ ∪ { v } under
function application.
Assume we have a
type Value :: Type
of values and a
type Eval :: Type -> Type
instantiating
Monad
.
Given some value
v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v and
set of values
Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ , let the
consequences of v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v (wrt Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ ) Con ( v ; Δ )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\t{Con}(v; \Delta) Con ( v ; Δ ) be the collection of values
purely generated from v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v and Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ be the values of
type Eval Value
generated by:
v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v :: Value
elements of
Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ
Lambda abstraction and application
Intuitively
Con ( v ; Δ )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\t{Con}(v; \Delta) Con ( v ; Δ ) represents “everything one can do” with
v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v , but where effects can only come from
Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ or from
v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v itself.
Typically
Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ is some fixed
set of values. For instance, if our target
language is Javascript, then we may have
Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ include values like
(a, b) => a + b
,
(k, o) => o[k]
, and perhaps
globalThis.document
. The choice of
Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ defines exactly what we allow as “built-ins” in our expression
language , and hence controls how powerful we will allow our monotonic
functions to be.
4
This perhaps seems like a cop-out. The whole idea here is to try and
pin down what it means for an expression to have “extraneous effects”. By relativizing
wrt Δ
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\Delta Δ we’
re just kicking the bucket down the road, saying “you tell me what a non-extraneous effect is and I’ll tell you which expressions exhibit them”
I will now try to convince you (and myself) that what effects are “extraneous” really
is a relative concept and to try and make it absolute is mistaken.
Consider the following two
functions :
const print = x => { console .log ("hello!" ); return x; };
const first = x => x[0 ];
Both
print
and
first
are impure
functions , and if we wanted to give them
types they would be the same:
5
first
must return an Eval
due to the presence of Javascript Proxy
values
print :: Value -> Eval Value
first :: Value -> Eval Value
Without knowing what these
functions actually do , they are practically indistinguishable. And yet one is ‘reasonable’ and the other is not.
Now given values
v 1 , v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1, v_2 v 1 , v 2 , define
v 1 ⪯ v 2 ⟺ p u r e ( v 1 ) ∈ Con ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \preceq v_2 \iff \tt{pure(}v_1\tt{)} \in \t{Con}(v_2) v 1 ⪯ v 2 ⟺ pure ( v 1 ) ∈ Con ( v 2 )
Intuitively
⪯
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\preceq ⪯ encodes being “less effectful than”. Note some properties:
TFAE :
(1)
v 1 ⪯ v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \preceq v_2 v 1 ⪯ v 2
(2)
Con ( v 1 ) ⊆ Con ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\t{Con}(v_1) \subseteq \t{Con}(v_2) Con ( v 1 ) ⊆ Con ( v 2 )
(3)
v 1 = f ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 = f(v_2) v 1 = f ( v 2 ) for
f
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
f f purely generated from nothing (ie,
f ∈ Con (
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
f \in \t{Con}( f ∈ Con ( 1
)
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
) ) .)
(1 ⇒ 3) Assume
v 1 ⪯ v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \preceq v_2 v 1 ⪯ v 2 . Then
v 1
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 v 1 is purely generated from
v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_2 v 2 .
Because pure generation is syntactic, this means that there exists some
expression E 1
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
E_1 E 1 purely generated from one free variable
x
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
x x such that
v 1 = ⟦ ( λ x . E ) ⟧ ⏟ f ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 = \underbrace{\den{ (\lambda x.\ E) }}_f(v_2) v 1 = f [ [ ( λ x . E ) ] ] ( v 2 )
Then:
Since
E
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
E E is purely generated from only
x
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
x x then
( λ x . E )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
(\lambda x.\ E) ( λ x . E ) is purely generated from nothing, and so is
f
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
f f
v 1 = f ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 = f(v_2) v 1 = f ( v 2 )
Thus (3) is true.
(3 ⇒ 2) Assume
v 1 = f ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 = f(v_2) v 1 = f ( v 2 ) for some purely generated
f
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
f f . Now take
v ∈ Con ( v 1 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v \in \t{Con}(v_1) v ∈ Con ( v 1 ) . Then
v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v is purely generated from
v 1
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 v 1 . But
v 1 = f ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 = f(v_2) v 1 = f ( v 2 ) , so
v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v is purely generated from
f ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
f(v_2) f ( v 2 ) , so
v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v is purely generated from
v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_2 v 2 .
(2 ⇒ 1) Assume
Con ( v 1 ) ⊆ Con ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\t{Con}(v_1) \subseteq \t{Con}(v_2) Con ( v 1 ) ⊆ Con ( v 2 ) . Then in particular
v 1 ∈ Con ( v 1 ) ⊆ Con ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \in \t{Con}(v_1) \subseteq \t{Con}(v_2) v 1 ∈ Con ( v 1 ) ⊆ Con ( v 2 ) so
v 1 ∈ Con ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \in \t{Con}(v_2) v 1 ∈ Con ( v 2 ) . Hence
v 1 ⪯ v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \preceq v_2 v 1 ⪯ v 2 .
⪯
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\preceq ⪯ forms a
preorder This follows immediately from (2) in the
TFAE above
Now call a
function f :: Eff Val -> Eff Val
afforded 6 if it is monotonic
wrt ⪯
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\preceq ⪯ . Intuitively a
function is ‘afforded’ if it cannot be more effectful than its input.
ie, its effects come only from its affordances (the provided Value
)
(this seems ... not right)
Given a
type Eff
instantiating
Monad
and value
val :: Eff Val
, let
Con(val)
, pronounced “the consequences of
val
", be the collection of haskell values
purely generated by
val
; that is, generated by:
encode :: Iso Val Nat
7
This always exists as long as
Val
is infinite. Choose your favorite
isomorphism .
Lambda abstraction and
function application
Intuitively
Con(val)
represents “everything you can do” with
val
, but where effects in
Eff
can only come from
val
itself.
Now given values
v 1 , v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1, v_2 v 1 , v 2 of
type Eff Val
, define
v 1 ⪯ v 2 ⟺ v 1 ∈ Con ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \preceq v_2 \iff v_1 \in \t{Con}(v_2) v 1 ⪯ v 2 ⟺ v 1 ∈ Con ( v 2 )
Intuitively
⪯
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\preceq ⪯ encodes being “less effectful than”. Note some properties:
TFAE :
(1)
v 1 ⪯ v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \preceq v_2 v 1 ⪯ v 2
(2)
Con ( v 1 ) ⊆ Con ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\t{Con}(v_1) \subseteq \t{Con}(v_2) Con ( v 1 ) ⊆ Con ( v 2 )
(3)
v 1 = f ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 = f(v_2) v 1 = f ( v 2 ) for
f
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
f f purely generated from nothing (ie,
f ∈ Con (
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
f \in \t{Con}( f ∈ Con ( 1
)
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
) ) .)
(1 ⇒ 3) Assume
v 1 ⪯ v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \preceq v_2 v 1 ⪯ v 2 . Then
v 1
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 v 1 is purely generated from
v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_2 v 2 .
Because pure generation is syntactic, this means that there exists some
expression E 1
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
E_1 E 1 purely generated from one free variable
x
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
x x such that
v 1 = ⟦ ( λ x . E ) ⟧ ⏟ f ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 = \underbrace{\den{ (\lambda x.\ E) }}_f(v_2) v 1 = f [ [ ( λ x . E ) ] ] ( v 2 )
Then:
Since
E
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
E E is purely generated from only
x
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
x x then
( λ x . E )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
(\lambda x.\ E) ( λ x . E ) is purely generated from nothing, and so is
f
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
f f
v 1 = f ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 = f(v_2) v 1 = f ( v 2 )
Thus (3) is true.
(3 ⇒ 2) Assume
v 1 = f ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 = f(v_2) v 1 = f ( v 2 ) for some purely generated
f
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
f f . Now take
v ∈ Con ( v 1 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v \in \t{Con}(v_1) v ∈ Con ( v 1 ) . Then
v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v is purely generated from
v 1
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 v 1 . But
v 1 = f ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 = f(v_2) v 1 = f ( v 2 ) , so
v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v is purely generated from
f ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
f(v_2) f ( v 2 ) , so
v
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v v is purely generated from
v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_2 v 2 .
(2 ⇒ 1) Assume
Con ( v 1 ) ⊆ Con ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\t{Con}(v_1) \subseteq \t{Con}(v_2) Con ( v 1 ) ⊆ Con ( v 2 ) . Then in particular
v 1 ∈ Con ( v 1 ) ⊆ Con ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \in \t{Con}(v_1) \subseteq \t{Con}(v_2) v 1 ∈ Con ( v 1 ) ⊆ Con ( v 2 ) so
v 1 ∈ Con ( v 2 )
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \in \t{Con}(v_2) v 1 ∈ Con ( v 2 ) . Hence
v 1 ⪯ v 2
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
v_1 \preceq v_2 v 1 ⪯ v 2 .
⪯
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\preceq ⪯ forms a
preorder This follows immediately from (2) in the
TFAE above
Now call a
function f :: Eff Val -> Eff Val
afforded 8 if it is monotonic
wrt ⪯
%% general %%
% shorthands
\newcommand{\cl}[1]{ \mathcal{#1} }
\newcommand{\sc}[1]{ \mathscr{#1} }
\newcommand{\bb}[1]{ \mathbb{#1} }
\newcommand{\fk}[1]{ \mathfrak{#1} }
\renewcommand{\bf}[1]{ \mathbf{#1} }
\renewcommand{\sf}[1]{ \mathsf{#1} }
\renewcommand{\rm}[1]{ \mathrm{#1} }
\newcommand{\floor}[1]{ { \lfloor {#1} \rfloor } }
\newcommand{\ceil}[1]{ { \lceil {#1} \rceil } }
\newcommand{\ol}[1]{ \overline{#1} }
\newcommand{\t}[1]{ \text{#1} }
\newcommand{\norm}[1]{ { \lvert {#1} \rvert } } % norm/magnitude (REMOVE)
\newcommand{\mag}[1]{ { \left\lvert {#1} \right\rvert } } % magnitude
\newcommand{\smag}[1]{ { \lvert {#1} \rvert } } % short mag
\newcommand{\card}{ \t{cd} } % cardinality
\newcommand{\dcup}{ \sqcup } % disjoint untion
\newcommand{\tup}[1]{ \langle {#1} \rangle } % tuples
\newcommand{\tl}{ \tilde }
\newcommand{\wt}{ \widetilde }
\newcommand{\To}{ \Rightarrow }
% draw a box outlining some math
\newcommand{\box}[1]{ \fbox{$ #1 $} }
% f \onall X = { f(x) : x ∈ X }
\newcommand{\onall}[1]{ { \llbracket {#1} \rrbracket } }
% shorthands: various brackets
\newcommand{\tpar}[1]{ \left( {#1} \right) } % "tall parens"
\newcommand{\tbrak}[1]{ \left[ {#1} \right] } % "tall brackets"
\newcommand{\tbrac}[1]{ \left\{ {#1} \right\} } % "tall braces"
% reverse \mapsto (FIXME: make better)
%\newcommand{\mapsfrom}{ \mathop{\leftarrow\!\mid} }
\newcommand{\mapsfrom}{ \mathrel{↤} }
% reverse-order composition
\newcommand{\then}{ \operatorname{\ ;\ } }
% Like f' represents "f after modification", \pre{f}
% represents "f before modification"
% TODO: remove this?
\newcommand{\pre}[1]{{ \small `{#1} }}
% hook arrows
\newcommand{\injects}{ \hookrightarrow }
\newcommand{\embeds}{ \hookrightarrow }
\newcommand{\surjects}{ \twoheadrightarrow }
\newcommand{\projects}{ \twoheadrightarrow }
\newcommand{\id}{ \,\mathrm d } % integration d
% derivatives: use {\ddn n x y} for (dy/dx)
\newcommand{\ddn}[3]{ \frac{ {\mathrm d}^{#1} {#2} }{ {\mathrm d} {#3}^{#1} } } % nth derivative
\newcommand{\dd}{ \ddn{} } % first derivative
\newcommand{\d}{ \dd{} } % first derivative (no numerator)
\newcommand{\dn}[1]{ \ddn{#1}{} } % nth derivative (no numerator)
% derivatives: use {\D n x y} for (∂_x y)
\newcommand{\Dn}[2]{ \partial^{#1}_{#2} }
\newcommand{\D}{ \Dn{} } % no power
\newcommand{\ig}[2]{ \int {#2} \, \mathrm d {#1} } % first integral
%% category theory %%
% category names
\newcommand{\cat}[1]{{ \sf{#1} }}
% yoneda embedding
\newcommand{\yo}{よ}
% extra long right-arrows
\newcommand{\X}{-\!\!\!-\!\!\!}
\newcommand{\xlongrightarrow}{ \mathop{ \, \X\longrightarrow \, } }
\newcommand{\xxlongrightarrow}{ \mathop{ \, \X\X\longrightarrow \, } }
\newcommand{\xxxlongrightarrow}{ \mathop{ \, \X\X\X\longrightarrow \, } }
\newcommand{\takenby}[1]{ \overset{#1}{\rightarrow} }
\newcommand{\longtakenby}[1]{ \overset{#1}{\longrightarrow} }
\newcommand{\xlongtakenby}[1]{ \overset{#1}{\xlongrightarrow} }
\newcommand{\xxlongtakenby}[1]{ \overset{#1}{\xxlongrightarrow} }
\newcommand{\xxxlongtakenby}[1]{ \overset{#1}{\xxxlongrightarrow} }
% represents an anonymous parameter
% eg. $f(\apar)$ usually denotes the function $x \mapsto f(x)$
% TODO: remove this?
\newcommand{\apar}{ {-} }
%% computability %%
% turing machines
\newcommand{\halts}{ {\downarrow} }
\newcommand{\loops}{ {\uparrow} }
% denotation
\newcommand{\den}[1]{{ \llbracket {#1} \rrbracket }}
\newcommand{\deneq}{ \approx }
\preceq ⪯ . Intuitively a
function is ‘afforded’ if it cannot be more effectful than its input.
ie, its effects come only from its affordances (the provided Value
)
(this seems ... not right)