Geometry of interaction

From LLWiki
(Difference between revisions)
Jump to: navigation, search
(presentation details)
(interpretation of the tensor rule)
Line 111: Line 111:
 
}} Indeed suppose <math>u_\varphi + u_\psi = 0</math> then for any <math>n</math> we have <math>u_\varphi(e_n) + u_\psi(e_n) = e_{\varphi(n)} + e_{\psi(n)} = 0</math> which is possible only if <math>\varphi(n)</math> and <math>\psi(n)</math> are undefined.
 
}} Indeed suppose <math>u_\varphi + u_\psi = 0</math> then for any <math>n</math> we have <math>u_\varphi(e_n) + u_\psi(e_n) = e_{\varphi(n)} + e_{\psi(n)} = 0</math> which is possible only if <math>\varphi(n)</math> and <math>\psi(n)</math> are undefined.
   
== Interpreting the multiplicative connectives ==
+
=== From operators to matrices: internalization/externalization ===
   
Recall that when <math>u</math> and <math>v</math> are operators we denote by <math>u\perp v</math> the fact that <math>uv</math> is nilpotent, and that <math>\bot</math> denotes the set of nilpotent operators so that <math>u\perp v</math> iff <math>uv\in\bot</math>.
+
It will be convenient to view operators on <math>H</math> as acting on <math>H\oplus H</math>, and conversely. For this purpose we define an isomorphism <math>H\oplus H \cong H</math> by <math>x\oplus y\rightsquigarrow p(x)+q(y)</math> where <math>p:H\mapsto H</math> and <math>q:H\mapsto H</math> are partial isometries given by:
 
If <math>X</math> is set of operators also recall that <math>X\orth</math> denotes the set of dual operators:
 
: <math>X\orth = \{v\in \mathcal{B}(H) \text{ such that }\forall u\in X, uv \in\bot\}</math>.
 
 
There are a few properties of this duality that we will use without mention in the sequel; let <math>X</math> and <math>Y</math> be sets of operators:
 
: <math>X\subset X\biorth</math>;
 
: <math>X\orth = X\triorth</math>.
 
: if <math>X\subset Y</math> then <math>Y\orth\subset X\orth</math>;
 
 
In particular <math>X\orth</math> is always a type (equal to its biorthogonal). We say that <math>X</math> ''generates'' the type <math>X\biorth</math>.
 
 
=== The tensor and the linear application ===
 
 
Our first step is, given two types <math>A</math> and <math>B</math>, to construct the type <math>A\tens B</math>. For this purpose we define an isomorphism <math>H\oplus H \cong H</math> by <math>x\oplus y\rightsquigarrow p(x)+q(y)</math> where <math>p:H\mapsto H</math> and <math>q:H\mapsto H</math> are partial isometries given by:
 
   
 
: <math>p(e_n) = e_{2n}</math>,
 
: <math>p(e_n) = e_{2n}</math>,
Line 140: Line 140:
 
: <math>u_{21} = q^*up</math>;
 
: <math>u_{21} = q^*up</math>;
 
: <math>u_{22} = q^*uq</math>.
 
: <math>u_{22} = q^*uq</math>.
  +
  +
== Interpreting the multiplicative connectives ==
  +
  +
Recall that when <math>u</math> and <math>v</math> are operators we denote by <math>u\perp v</math> the fact that <math>uv</math> is nilpotent, and that <math>\bot</math> denotes the set of nilpotent operators so that <math>u\perp v</math> iff <math>uv\in\bot</math>.
  +
  +
If <math>X</math> is set of operators also recall that <math>X\orth</math> denotes the set of dual operators:
  +
: <math>X\orth = \{v\in \mathcal{B}(H) \text{ such that }\forall u\in X, uv \in\bot\}</math>.
  +
  +
There are a few properties of this duality that we will use without mention in the sequel; let <math>X</math> and <math>Y</math> be sets of operators:
  +
: <math>X\subset X\biorth</math>;
  +
: <math>X\orth = X\triorth</math>.
  +
: if <math>X\subset Y</math> then <math>Y\orth\subset X\orth</math>;
  +
  +
In particular <math>X\orth</math> is always a type (equal to its biorthogonal). We say that <math>X</math> ''generates'' the type <math>X\biorth</math>.
  +
  +
=== The tensor and the linear application ===
   
 
Given <math>A</math> and <math>B</math> two types, we define their tensor by:
 
Given <math>A</math> and <math>B</math> two types, we define their tensor by:
Line 151: Line 167:
 
\end{pmatrix}</math>
 
\end{pmatrix}</math>
   
As with orthogonality we use here the notation <math>\tens</math> in a specific sense: the tensor of two types should not be confused with the tensor of vectors or the tensor of spaces.
+
This is an abuse of notations as this operation is more like a direct sum than a tensor. We will stick to this notation though because it defines the interpretation of the tensor connective of linear logic.
   
 
The linear implication is derived from the tensor by duality: given two types <math>A</math> and <math>B</math> the type <math>A\limp B</math> is defined by:
 
The linear implication is derived from the tensor by duality: given two types <math>A</math> and <math>B</math> the type <math>A\limp B</math> is defined by:
Line 158: Line 174:
 
Unfolding this definition we see that we have:
 
Unfolding this definition we see that we have:
 
: <math>A\limp B = \{u\in\mathcal{B}(H)\text{ such that } \forall v\in A, \forall w\in B\orth,\, u(pvp^* + qwq^*) \in\bot\}</math>.
 
: <math>A\limp B = \{u\in\mathcal{B}(H)\text{ such that } \forall v\in A, \forall w\in B\orth,\, u(pvp^* + qwq^*) \in\bot\}</math>.
  +
  +
Let now <math>A, A', B</math> and <math>B'</math> be types and consider two operators <math>u</math> and <math>u'</math> respectively in <math>A\limp B</math> and <math>A\limp B'</math>. We define an operator denoted <math>u\tens u'</math> by:
  +
: <math>\begin{align}
  +
u\tens u' &= ppp^*upp^*p^* + qpq^*upp^*p^* + ppp^*uqp^*q^* + qpq^*uqp^*q^*\\
  +
&+ pqp^*vpq^*p^* + qqq^*vpq^*p^* + pqp^*vqq^*q^* + qqq^*vqq^*q^*
  +
\end{align}</math>
  +
  +
To understand this formula it is convenient to think <math>u</math> and <math>u'</math> as the internalizations of the matrices:
  +
: <math>U = \begin{pmatrix}u_{11} & u_{12}\\
  +
u_{21} & u_{22}
  +
\end{pmatrix}
  +
</math> and <math>U' = \begin{pmatrix}u'_{11} & u'_{12}\\
  +
u'_{21} & u'_{22}
  +
\end{pmatrix}</math>
  +
where the <math>u_{ij}</math>'s and the <math>u'_{ij}</math>'s are defined by the formula above, eg <math>u_{11} = p^*up</math>.
  +
  +
Then <math>u\tens u'</math> is actually the internalization of the matrix <math>U\tens U'</math> given by:
  +
  +
: <math>
  +
U\tens U' =
  +
\begin{pmatrix}
  +
u_{11} & 0 & u_{12} & 0 \\
  +
0 & u'_{11} & 0 & u'_{12} \\
  +
u_{21} & 0 & u_{22} & 0 \\
  +
0 & u'_{21} & 0 & u'_{22} \\
  +
\end{pmatrix}
  +
</math>
  +
  +
One remaining problem is now to show that, given that <math>u</math>and <math>u'</math> are in types <math>A\limp B</math> and <math>A'\limp B'</math>, then <math>u\tens u'</math> is in <math>A\tens A'\limp B\tens B'</math>.
   
 
=== The idendity ===
 
=== The idendity ===
   
As an example of the internalization/externalization procedure, let us give the example of the (interpretation of the) identity. Given a type <math>A</math> we are to find an operator <math>\iota</math> in type <math>A\limp A</math>, thus satisfying:
+
The interpretation of the identity is another example of the internalization/externalization procedure. Given a type <math>A</math> we are to find an operator <math>\iota</math> in type <math>A\limp A</math>, thus satisfying:
 
: <math>\forall u\in A, v\in A\orth,\, \iota(pup^* + qvq^*)\in\bot</math>.
 
: <math>\forall u\in A, v\in A\orth,\, \iota(pup^* + qvq^*)\in\bot</math>.
   

Revision as of 17:59, 13 April 2010

The geometry of interaction, GoI in short, was defined in the early nineties by Girard as an interpretation of linear logic into operators algebra: formulae were interpreted by Hilbert spaces and proofs by partial isometries.

This was a striking novelty as it was the first time that a mathematical model of logic (lambda-calculus) didn't interpret a proof of A\limp B as a morphism from A to B[1], and proof composition (cut rule) as the composition of morphisms. Rather the proof was interpreted as an operator acting on A\limp B, that is a morphism from A\limp B to A\limp B. For proof composition the problem was then, given an operator on A\limp B and another one on B\limp C to construct a new operator on A\limp C. This problem was solved by the execution formula that bares some formal analogies with Kleene's formula for recursive functions. For this reason GoI was claimed to be an operational semantics, as opposed to traditionnal denotational semantics.

The first instance of the GoI was restricted to the MELL fragment of linear logic (Multiplicative and Exponential fragment) which is enough to encode lambda-calculus. Since then Girard proposed several improvements: firstly the extension to the additive connectives known as Geometry of Interaction 3 and more recently a complete reformulation using Von Neumann algebras that allows to deal with some aspects of implicit complexity

The GoI has been a source of inspiration for various authors. Danos and Regnier have reformulated the original model exhibiting its combinatorial nature using a theory of reduction of paths in proof-nets and showing the link with abstract machines; in particular the execution formula appears as the composition of two automata that interact one with the other through their common interface. Also the execution formula has rapidly been understood as expressing the composition of strategies in game semantics. It has been used in the theory of sharing reduction for lambda-calculus in the Abadi-Gonthier-Lévy reformulation and simplification of Lamping's representation of sharing. Finally the original GoI for the MELL fragment has been reformulated in the framework of traced monoidal categories following an idea originally proposed by Joyal.

Contents

The Geometry of Interaction as operators

The original construction of GoI by Girard follows a general pattern already mentionned in coherent semantics under the name symmetric reducibility. First set a general space called the proof space because this is where the interpretations of proofs will live. In the case of GoI, the proof space is the space of bounded operators on \ell^2. Note that the proof space generally contains much more objects than interpretations of proofs; in the GoI case we will see that interpretations of proofs happen to be some very peculiar kind of partial isometries.

Second define a duality on this space that will be denoted as u\perp v. For the GoI, two dualities have proved to work, the first one being nilpotency: two operators u and v are dual if uv is nilpotent, that is, if there is a nonegative integer n such that (uv)n = 0. We will denote by \bot the set of nilpotent operators so that the duality reads:

u\perp v iff uv\in\bot.

This duality applies to operators and shouldn't be confused with orthogonality of vectors. . To enforce this we will reserve the notation \perp exclusively for the duality of operators and never use it for othogonality of vectors.

Last define a type as a subset T of the proof space that is equal to its bidual: T = T\biorth. This means that u\in T iff for all operator v, if v\in T\orth, that is if u'v\in\bot for all u'\in T, then uv\in\bot.

It remains now to interpret logical operations, that is associate a type to each formula, an object to each proof and show the adequacy lemma: if u is the interpretation of a proof of the formula A then u belongs to the type associated to A.

Preliminaries

We begin by a brief tour of the operations in Hilbert spaces that will be used in the sequel. In this article H will stand for the Hilbert space \ell^2(\mathbb{N}) of sequences (x_n)_{n\in\mathbb{N}} of complex numbers such that the series \sum_{n\in\mathbb{N}}|x_n|^2 converges. If x = (x_n)_{n\in\mathbb{N}} and y = (y_n)_{n\in\mathbb{N}} are two vectors of H we denote by \langle x,y\rangle their scalar product:

\langle x, y\rangle = \sum_{n\in\mathbb{N}} x_n\bar y_n.

Two vectors of H are othogonal if their scalar product is nul. This notion is not to be confused with the orthogonality of operators defined above. The norm of a vector is the square root of the scalar product with itself:

\|x\| = \sqrt{\langle x, x\rangle}.

Let us denote by (e_k)_{k\in\mathbb{N}} the canonical hilbertian basis of H: e_k = (\delta_{kn})_{n\in\mathbb{N}} where δkn is the Kroenecker symbol. Thus if x=(x_n)_{n\in\mathbb{N}} is a sequence in H we have:

 x = \sum_{n\in\mathbb{N}} x_ne_n.

In this article we call operator on H a continuous linear map from H to H. Continuity is equivalent to the fact that operators are bounded, which means that one may define the norm of an operator u as the sup on the unit ball of the norms of its values:

\|u\| = \sup_{\{x\in H,\, \|x\| = 1\}}\|u(x)\|.

The set of (bounded) operators is denoted \mathcal{B}(H). This is our proof space.

The range or codomain of the operator u is the set of images of vectors; the kernel of u is the set of vectors that are anihilated by u; the domain of u is the set of vectors orthogonal to the kernel:

\mathrm{Codom}(u) = \{u(x),\, x\in H\};
\mathrm{Ker}(u) = \{x\in H,\, u(x) = 0\};
\mathrm{Dom}(u) = \{x\in H,\, \forall y\in\mathrm{Ker}(u), \langle x, y\rangle = 0\}.

These three sets are closed subspaces of H.

The adjoint of an operator u is the operator u * defined by \langle u(x), y\rangle = \langle x, u^*(y)\rangle for any x,y\in H.

A projector is an idempotent operator of norm 0 (the projector on the null subspace) or 1, that is an operator p such that p2 = p and \|p\| = 0 or 1. A projector is auto-adjoint and its domain is equal to its codomain.

A partial isometry is an operator u satisfying uu * u = u; as a consequence uu * is a projector the range of which is the range of u. Similarly u * u is also a projector the range of which is the domain of u. The restriction of u to its domain is an isometry. Projectors are particular examples of partial isometries.

If u is a partial isometry then u * is also a partial isometry the domain of which is the codomain of u and the codomain of which is the domain of u.

If the domain of u is H that is if u * u = 1 we say that u has full domain, and similarly for codomain. If u and v are two partial isometries, the equation uu * + vv * = 1 means that the codomains of u and v are orthogonal and that their direct sum is H.

Partial permutations and partial isometries

It turns out that most of the operators needed to interpret logical operations are generated by partial permutations on the basis, which in particular entails that they are partial isometries.

More precisely a partial permutation \varphi on \mathbb{N} is a function defined on a subset D_\varphi of \mathbb{N} which is one-to-one onto a subset C_\varphi of \mathbb{N}. D_\varphi is called the domain of \varphi and C_\varphi its codomain. Partial permutations may be composed: if ψ is another partial permutation on \mathbb{N} then \varphi\circ\psi is defined by:

n\in D_{\varphi\circ\psi} iff n\in D_\psi and \psi(n)\in D_\varphi;
if n\in D_{\varphi\circ\psi} then \varphi\circ\psi(n) = \varphi(\psi(n));
the codomain of \varphi\circ\psi is the image of the domain.

Partial permutations are well known to form a structure of inverse monoid that we detail now.

A partial identitie is a partial permutation 1D whose domain and codomain are both equal to a subset D on which 1D is the identity function. Partial identities are idempotent for composition.

Among partial identities one finds the identity on the empty subset, that is the empty map, that we will denote as 0 and the identity on \mathbb{N} that we will denote by 1. This latter permutation is the neutral for composition.

If \varphi is a partial permutation there is an inverse partial permutation \varphi^{-1} whose domain is D_{\varphi^{-1}} = C_{\varphi} and who satisfies:

\varphi^{-1}\circ\varphi = 1_{D_\varphi}
\varphi\circ\varphi^{-1} = 1_{C_\varphi}

Given a partial permutation \varphi one defines a partial isometry u_\varphi by:

u_\varphi(e_n) = 
   \begin{cases}
     e_{\varphi(n)} & \text{ if }n\in D_\varphi,\\
     0              & \text{ otherwise.}
   \end{cases}

In other terms if x=(x_n)_{n\in\mathbb{N}} is a sequence in \ell^2 then u_\varphi(x) is the sequence (y_n)_{n\in\mathbb{N}} defined by:

y_n = x_{\varphi^{-1}(n)} if n\in C_\varphi, 0 otherwise.

We will (not so abusively) write e_{\varphi(n)} = 0 when \varphi(n) is undefined.

The domain of u_\varphi is the subspace spaned by the family (e_n)_{n\in D_\varphi} and the codomain of u_\varphi is the subspace spaned by (e_n)_{n\in C_\varphi}. As a particular case if \varphi is 1D the partial identity on D then u_\varphi is the projector on the subspace spaned by (e_n)_{n\in D}.

If ψ is another partial permutation then we have:

u_\varphi u_\psi = u_{\varphi\circ\psi}.

If \varphi is a partial permutation then the adjoint of u_\varphi is:

u_\varphi^* = u_{\varphi^{-1}}.

In particular the projector on the domain of u_{\varphi} is given by:

u^*_\varphi u_\varphi = u_{1_{D_\varphi}}.

and similarly the projector on the codomain of u_\varphi is:

u_\varphi u_\varphi^* = u_{1_{C_\varphi}}.

Proposition

Let u_\varphi and uψ be two partial isometries generated by partial permutations. Then we have:

u_\varphi + u_\psi = 0 iff u_\varphi = u_\psi = 0,

that is iff \varphi and ψ are the nowhere defined partial permutation.

Indeed suppose u_\varphi + u_\psi = 0 then for any n we have u_\varphi(e_n) + u_\psi(e_n) = e_{\varphi(n)} + e_{\psi(n)} = 0 which is possible only if \varphi(n) and ψ(n) are undefined.

From operators to matrices: internalization/externalization

It will be convenient to view operators on H as acting on H\oplus H, and conversely. For this purpose we define an isomorphism H\oplus H \cong H by x\oplus y\rightsquigarrow p(x)+q(y) where p:H\mapsto H and q:H\mapsto H are partial isometries given by:

p(en) = e2n,
q(en) = e2n + 1.

From the definition p and q have full domain, that is satisfy p * p = q * q = 1. On the other hand their codomains are orthogonal, thus we have p * q = q * p = 0. Note that we also have pp * + qq * = 1.

The choice of p and q is actually arbitrary, any two partial isometries with full domain and orthogonal codomains would do the job.

Let U be an operator on H\oplus H. We can write U as a matrix:

U = \begin{pmatrix}
  u_{11} & u_{12}\\
  u_{21} & u_{22}
  \end{pmatrix}

where each uij operates on H.

Now through the isomorphism H\oplus H\cong H we may transform U into the operator u on H defined by:

u = pu11p * + pu12q * + qu21p * + qu22q * .

We call u the internalization of U. Internalization is compatible with composition (functorial so to speak): if V is another operator on H\oplus then the internalization of the matrix product UV is the product uv.

Conversely given an operator u on H we may externalize it obtaining an operator U on H\oplus H:

u11 = p * up;
u12 = p * uq;
u21 = q * up;
u22 = q * uq.

Interpreting the multiplicative connectives

Recall that when u and v are operators we denote by u\perp v the fact that uv is nilpotent, and that \bot denotes the set of nilpotent operators so that u\perp v iff uv\in\bot.

If X is set of operators also recall that X\orth denotes the set of dual operators:

X\orth = \{v\in \mathcal{B}(H) \text{ such that }\forall u\in X, uv \in\bot\}.

There are a few properties of this duality that we will use without mention in the sequel; let X and Y be sets of operators:

X\subset X\biorth;
X\orth = X\triorth.
if X\subset Y then Y\orth\subset X\orth;

In particular X\orth is always a type (equal to its biorthogonal). We say that X generates the type X\biorth.

The tensor and the linear application

Given A and B two types, we define their tensor by:

A\tens B = \{pup^* + qvq^*, u\in A, v\in B\}\biorth

Note the closure by biorthogonal to make sure that we obtain a type. From what precedes we see that A\tens B is generated by the internalizations of operators on H\oplus H of the form:

\begin{pmatrix}
   u & 0\\
   0 & v
  \end{pmatrix}

This is an abuse of notations as this operation is more like a direct sum than a tensor. We will stick to this notation though because it defines the interpretation of the tensor connective of linear logic.

The linear implication is derived from the tensor by duality: given two types A and B the type A\limp B is defined by:

A\limp B = (A\tens B\orth)\orth.

Unfolding this definition we see that we have:

A\limp B = \{u\in\mathcal{B}(H)\text{ such that } \forall v\in A, \forall w\in B\orth,\, u(pvp^* + qwq^*) \in\bot\}.

Let now A,A',B and B' be types and consider two operators u and u' respectively in A\limp B and A\limp B'. We define an operator denoted u\tens u' by:

\begin{align}
    u\tens u' &= ppp^*upp^*p^* + qpq^*upp^*p^* + ppp^*uqp^*q^* + qpq^*uqp^*q^*\\
              &+ pqp^*vpq^*p^* + qqq^*vpq^*p^* + pqp^*vqq^*q^* + qqq^*vqq^*q^*
  \end{align}

To understand this formula it is convenient to think u and u' as the internalizations of the matrices:

U  = \begin{pmatrix}u_{11}   & u_{12}\\
                            u_{21}   & u_{22}
             \end{pmatrix}
  and U' = \begin{pmatrix}u'_{11} & u'_{12}\\
                            u'_{21} & u'_{22}
                         \end{pmatrix}

where the uij's and the u'ij's are defined by the formula above, eg u11 = p * up.

Then u\tens u' is actually the internalization of the matrix U\tens U' given by:


    U\tens U' =
      \begin{pmatrix}
        u_{11} & 0       & u_{12}  & 0       \\
        0      & u'_{11} & 0       & u'_{12} \\
        u_{21} & 0       & u_{22}  & 0       \\
        0      & u'_{21} & 0       & u'_{22} \\
      \end{pmatrix}

One remaining problem is now to show that, given that uand u' are in types A\limp B and A'\limp B', then u\tens u' is in A\tens A'\limp B\tens B'.

The idendity

The interpretation of the identity is another example of the internalization/externalization procedure. Given a type A we are to find an operator ι in type A\limp A, thus satisfying:

\forall u\in A, v\in A\orth,\, \iota(pup^* + qvq^*)\in\bot.

An easy solution is to take ι = pq * + qp * . In this way we get ι(pup * + qvq * ) = qup * + pvq * . Therefore (ι(pup * + qvq * ))2 = quvq * + pvup * , from which one deduces that this operator is nilpotent iff uv is nilpotent. It is the case since u is in A and v in A\orth.

It is interesting to note that the ι thus defined is actually the internalization of the operator on H\oplus H given by the matrix:

\begin{pmatrix}0 & 1\\1 & 0\end{pmatrix}.

We will see once the composition is defined that the ι operator is the interpretation of the identity proof, as expected.

The Geometry of Interaction as an abstract machine


Cite error: <ref> tags exist, but no <references/> tag was found
Personal tools