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 Nat7
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)