Finiteness semantics

From LLWiki
Revision as of 19:38, 22 May 2009 by Lionel Vaux (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The category $\mathbf{Fin}$ of finiteness spaces and finitary relations was introduced by Ehrhard, refining the purely relational model of linear logic. A finiteness space is a set equipped with a finiteness structure, i.e. a particular set of subsets which are said to be finitary; and the model is such that the usual relational denotation of a proof in linear logic is always a finitary subset of its conclusion. By the usual co-Kleisli construction, this also provides a model of the simply typed lambda-calculus: the cartesian closed category $\mathbf{Fin}_\oc$.

The main property of finiteness spaces is that the intersection of two finitary subsets of dual types is always finite. This feature allows to reformulate Girard's quantitative semantics in a standard algebraic setting, where morphisms interpreting typed $\lambda$-terms are analytic functions between the topological vector spaces generated by vectors with finitary supports. This provided the semantical foundations of Ehrhard-Regnier's differential $\lambda$-calculus and motivated the general study of a differential extension of linear logic.

It is worth noticing that finiteness spaces can accomodate typed $\lambda$-calculi only: for instance, the relational semantics of fixpoint combinators is never finitary. The whole point of the finiteness construction is actually to reject infinite computations. Indeed, from a logical point of view, computation is cut elimination: the finiteness structure ensures the intermediate sets involved in the relational interpretation of a cut are all finite. In that sense, the finitary semantics is intrinsically typed.

\section*{Finiteness spaces}

The construction of finiteness spaces follows a well known pattern. It is given by the following notion of orthogonality: $a\mathrel \bot a'$ iff $a\cap a'$ is finite. Then one unrolls familiar definitions, as we do in the following paragraphs.

Let $A$ be a set. Denote by $\mathfrak P(A)$ the powerset of $A$ and by $\mathfrak P_f(A)$ the set of all finite subsets of $A$. Let ${\mathfrak f} \subseteq \mathfrak P(A)$ any set of subsets of $A$. We define the pre-dual of ${\mathfrak f}$ in $A$ as ${\mathfrak f}^{\bot_{A}}=\left\{a'\subseteq A;\ \forall a\in{\mathfrak f},\ a\cap a'\in\mathfrak P_f(A)\right\}$. In general we will omit the subscript in the pre-dual notation and just write ${\mathfrak f}\orth$. For all ${\mathfrak f}\subseteq\mathfrak P(A)$, we have the following immediate properties: $\mathfrak P_f(A) \subseteq {\mathfrak f}\orth$; ${\mathfrak f}\subseteq {\mathfrak f}\biorth$; if ${\mathfrak G}\subseteq{\mathfrak f}$, ${\mathfrak f}\orth\subseteq {\mathfrak G}\orth$. By the last two, we get ${\mathfrak f}\orth = {\mathfrak f}\triorth$. A finiteness structure on $A$ is then a set ${\mathfrak f}$ of subsets of $A$ such that ${\mathfrak f}\biorth = {\mathfrak f}$.

A finiteness space is a dependant pair ${\mathcal A}=\left(\web{\mathcal A},\mathfrak F\left(\mathcal A\right)\right)$ where $\web {\mathcal A}$ is the underlying set (the web of ${\mathcal A}$) and $\mathfrak F\left(\mathcal A\right)$ is a finiteness structure on $\web {\mathcal A}$. We then write ${\mathcal A}\orth$ for the dual finiteness space: $\web {{\mathcal A}\orth} = \web {\mathcal A}$ and $\mathfrak F\left({\mathcal A}\orth\right)=\mathfrak F\left({\mathcal A}\right)^{\bot}$. The elements of $\mathfrak F\left(\mathcal A\right)$ are called the finitary subsets of ${\mathcal A}$.

Contents

Example.

\label{ex:fs} For all set $A$, $(A,\mathfrak P_f(A))$ is a finiteness space and $(A,\mathfrak P_f(A))\orth = (A,\mathfrak P(A))$. In particular, each finite set $A$ is the web of exactly one finiteness space: $(A,\mathfrak P_f(A))=(A,\mathfrak P(A))$. We introduce the following two: $\zero = \zero\orth = \left(\emptyset,

 \{\emptyset\}\right)$ and $\one = \one\orth = \left(\{\emptyset\}, 
 \{\emptyset, \{\emptyset\}\}\right)$.

We also introduce the finiteness space of natural numbers ${\mathcal N}$ by: $|{\mathcal N}|={\mathbf N}$ and $a\in\mathfrak F\left(\mathcal N\right)$ iff $a$ is finite. We write $\mathcal O=\{0\}\in\mathfrak F\left({\mathcal N}\right)$.

Notice that ${\mathfrak f}$ is a finiteness structure iff it is of the form ${\mathfrak G}\orth$. It follows that any finiteness structure ${\mathfrak f}$ is downwards closed for inclusion, and closed under finite unions and arbitrary intersections. Notice however that ${\mathfrak f}$ is not closed under directed unions in general: for all $k\in{\\mathbf N}$, write $k{\downarrow}=\left\{j;\ j\le k\right\}\in\mathfrak F\left({\mathcal N}\right)$; then $k{\downarrow}\subseteq k'{\downarrow}$ as soon as $k\le k'$, but $\bigcup_{k\ge0} k{\downarrow}={\\mathbf N}\not\in\mathfrak F\left({\mathcal N}\right)$.


\subsection*{Multiplicatives} For all finiteness spaces ${\mathcal A}$ and ${\mathcal B}$, we define ${\mathcal A} \tens {\mathcal B}$ by $\web {{\mathcal A} \tens {\mathcal B}}

\web{\mathcal A} \times \web{\mathcal B}$ and $\mathfrak F\left({\mathcal A} \tens {\mathcal B}\right)

\left\{a\times b;\ a\in \mathfrak F\left(\mathcal A\right),\ b\in\mathfrak F\left(\mathcal B\right)\right\}\biorth$. It can be shown that $\mathfrak F\left({\mathcal A} \tens {\mathcal B}\right) = \left\{ c \subseteq \web{\mathcal A}\times\web{\mathcal B};\ \left.c\right|_l\in \mathfrak F\left(\mathcal A\right),\ \left.c\right|_r\in\mathfrak F\left(\mathcal B\right)\right\}$, where $\left.c\right|_l$ and $\left.c\right|_r$ are the obvious projections.

Let $f\subseteq A \times B$ be a relation from $A$ to $B$, we write $f\orth=\left\{(\beta,\alpha);\ (\alpha,\beta)\in f\right\}$. For all $a\subseteq A$, we set $f\cdot a = \left\{\beta\in B;\ \exists \alpha\in a,\ (\alpha,\beta)\in f\right\}$. If moreover $g\subseteq B \times C$, we define $g \bullet f = \left\{(\alpha,\gamma)\in A\times C;\ \exists \beta\in B,\ (\alpha,\beta)\in f\wedge(\beta,\gamma)\in g\right\}$. Then, setting ${\mathcal A}\limp{\mathcal B} = \left({\mathcal A}\otimes {\mathcal B}\orth\right)\orth$, $\mathfrak F\left({\mathcal A}\limp{\mathcal B}\right)\subseteq {\web{\mathcal A}\times\web{\mathcal B}}$ is characterized as follows: \begin{center} \begin{tabular}{r@{\ iff\ }l} $f\in \mathfrak F\left({\mathcal A}\limp{\mathcal B}\right)$ & $\forall a\in \mathfrak F\left({\mathcal A}\right)$, $f\cdot a \in\mathfrak F\left({\mathcal B}\right)$ and $\forall b\in \mathfrak F\left({\mathcal B}\orth\right)$, $f\orth\cdot b \in\mathfrak F\left({\mathcal A}\orth\right)$ \\ & $\forall a\in \mathfrak F\left({\mathcal A}\right)$, $f\cdot a \in\mathfrak F\left({\mathcal B}\right)$ and $\forall \beta\in \webTemplate:\mathcal B$, $f\orth\cdot \left\{\beta\right\} \in\mathfrak F\left({\mathcal A}\orth\right)$ \\ & $\forall \alpha\in \webTemplate:\mathcal A$, $f\cdot \left\{\alpha\right\} \in\mathfrak F\left({\mathcal B}\right)$ and $\forall b\in \mathfrak F\left({\mathcal B}\orth\right)$, $f\orth\cdot b \in\mathfrak F\left({\mathcal A}\orth\right)$ \end{tabular} \end{center} The elements of $\mathfrak F\left({\mathcal A}\limp{\mathcal B}\right)$ are called finitary relations from ${\mathcal A}$ to ${\mathcal B}$. By the previous characterization, the identity relation $\mathsf{id}_Template:\mathcal A = \left\{(\alpha,\alpha);\ \alpha\in\webTemplate:\mathcal A\right\}$ is finitary, and the composition of two finitary relations is also finitary. One can thus define the category $\mathbf{Fin}$ of finiteness spaces and finitary relations: the objects of $\mathbf{Fin}$ are all finiteness spaces, and $\mathbf{Fin}({\mathcal A},{\mathcal B})=\mathfrak F\left({\mathcal A}\limp{\mathcal B}\right)$. Equipped with the tensor product $\tens$, $\mathbf{Fin}$ is symmetric monoidal, with unit $\one$; it is monoidal closed by the definition of $\limp$; it is $*$-autonomous by the obvious isomorphism between ${\mathcal A}\orth$ and ${\mathcal A}\limp\one$.

Example.

Setting $\mathcal{S}=\left\{(k,k+1);\ k\in{\\mathbf N}\right\}$ and $\mathcal{P}=\left\{(k+1,k);\ k\in{\mathbf N}\right\}$, we have $\mathcal{S},\mathcal{P}\in\mathbf{Fin}({\mathcal N},{\mathcal N})$ and $\mathcal{P}\bullet\mathcal{S}=\mathsf{id}_Template:\mathcal N$.


\subsection*{Additives} We now introduce the cartesian structure of $\mathbf{Fin}$. We define ${\mathcal A} \oplus {\mathcal B}$ by $\web {{\mathcal A} \oplus {\mathcal B}} = \web{\mathcal A} \uplus \web{\mathcal B}$ and $\mathfrak F\left({\mathcal A} \oplus {\mathcal B}\right) = \left\{ a\uplus b;\ a\in \mathfrak F\left(\mathcal A\right),\ b\in\mathfrak F\left(\mathcal B\right)\right\}$ where $\uplus$ denotes the disjoint union of sets: $x\uplus y=(\{1\}\times x)\cup(\{2\}\times y)$. We have $\left({\mathcal A}\oplus {\mathcal B}\right)\orth = {\mathcal A}\orth\oplus{\mathcal B}\orth$. The category $\mathbf{Fin}$ is both cartesian and co-cartesian, with $\oplus$ being the product and co-product, and $\zero$ the initial and terminal object. Projections are given by: \begin{eqnarray*} \lambda_{{\mathcal A},{\mathcal B}}&=&\left\{\left((1,\alpha),\alpha\right);\ \alpha\in\web{\mathcal A}\right\} \in\mathbf{Fin}({\mathcal A}\oplus{\mathcal B},{\mathcal A}) \\ \rho_{{\mathcal A},{\mathcal B}}&=&\left\{\left((2,\beta),\beta\right);\ \beta\in\web{\mathcal B}\right\} \in\mathbf{Fin}({\mathcal A}\oplus{\mathcal B},{\mathcal B}) \end{eqnarray*} and if $f\in\mathbf{Fin}({\mathcal C},{\mathcal A})$ and $g\in\mathbf{Fin}({\mathcal C},{\mathcal B})$, pairing is given by: \[\left\langle f,g\right\rangle = \left\{\left(\gamma,(1,\alpha)\right);\ (\gamma,\alpha)\in f\right\} \cup \left\{\left(\gamma,(2,\beta)\right);\ (\gamma,\beta)\in g\right\} \in\mathbf{Fin}({\mathcal C},{\mathcal A}\oplus{\mathcal B}).\] The unique morphism from ${\mathcal A}$ to $\zero$ is the empty relation. The co-cartesian structure is obtained symmetrically.

Example.

Write ${\mathcal O}\orth=\left\{(0,\emptyset)\right\}\in\mathbf{Fin}({\mathcal N},\one)$. Then $\left\langle{{\mathcal O}\orth},{\mathcal{P}}\right\rangle =\{ (0,(1,\emptyset)) \}\cup \{ (k+1,(2,k)) ;\ k\in{\mathbf N} \} \in\mathbf{Fin}\left({\mathcal N},\one\oplus{\mathcal N}\right)$ is an isomorphism.


\subsection*{Exponentials} If $A$ is a set, we denote by $\mathfrak M_f(A)$ the set of all finite multisets of elements of $A$, and if $a\subseteq A$, we write $a^{\oc}=\mathfrak M_f(a)\subseteq\mathfrak M_f(A)$. If $\overline\alpha\in\mathfrak M_f(A)$, we denote its support by $\mathrm{Support}\left(\overline \alpha\right)\in\mathfrak P_f(A)$. For all finiteness space ${\mathcal A}$, we define $\oc {\mathcal A}$ by: $\web{\oc {\mathcal A}}= \mathfrak M_f\left(\webTemplate:\mathcal A\right)$ and $\mathfrak F\left(\oc{\mathcal A}\right)=\left\{a^{\oc};\ a\in\mathfrak F\left({\mathcal A}\right)\right\}\biorth$. It can be shown that $\mathfrak F\left(\oc{\mathcal A}\right) = \left\{\overline a\subseteq\mathfrak M_f\left(\webTemplate:\mathcal A\right);\ \bigcup_{\overline\alpha\in \overline a}\mathrm{Support}\left(\overline \alpha\right)\in\mathfrak F\left(\mathcal A\right)\right\}$. Then, for all $f\in\mathbf{Fin}({\mathcal A},{\mathcal B})$, we set \[\oc f =\left\{\left(\left[\alpha_1,\dotsc,\alpha_n\right],\left[\beta_1,\dotsc,\beta_n\right]\right);\ \forall i,\ (\alpha_i,\beta_i)\in f\right\} \in \mathbf{Fin}(\oc {\mathcal A}, \oc {\mathcal B}),\] which defines a functor. Natural transformations $\mathsf{der}_Template:\mathcal A=\left\{([\alpha],\alpha);\ \alpha\in \webTemplate:\mathcal A\right\}\in\mathbf{Fin}(\oc{\mathcal A},{\mathcal A})$ and $\mathsf{digg}_Template:\mathcal A=\left\{\left(\sum_{i=1}^n\overline\alpha_i,\left[\overline\alpha_1,\dotsc,\overline\alpha_n\right]\right);\ \forall i,\ \overline\alpha_i\in\web{\oc {\mathcal A}}\right\}$ make this functor a comonad.

Example.

We have isomorphisms $\left\{([],\emptyset)\right\}\in\mathbf{Fin}(\oc\zero,\one)$ and \[\left\{ \left(\overline\alpha_l+\overline\beta_r,\left(\overline\alpha,\overline\beta\right)\right);\ (\overline\alpha_l,\overline\alpha)\in\oc\lambda_{{\mathcal A},{\mathcal B}}\wedge(\overline\beta_r,\overline\beta)\in\oc\rho_{{\mathcal A},{\mathcal B}}\right\} \in\mathbf{Fin}(\oc({\mathcal A}\oplus{\mathcal B}),\oc{\mathcal A}\tens\oc{\mathcal B}).\] More generally, we have $\oc\left({\mathcal A}_1\oplus\cdots\oplus{\mathcal A}_n\right)\cong\oc{\mathcal A}_1\tens\cdots\tens\oc{\mathcal A}_n$.

Personal tools