Geometry of interaction
(Started the description of GoI as operators on Hilbert space) |
(→The Geometry of Interaction as operators) |
||
Line 11: | Line 11: | ||
= The Geometry of Interaction as operators = |
= 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; here, in the case of GoI, the space will be the space of bounded operators on <math>H=\ell^2(\mathbb{C})</math>. This is where the interpretations of proof objects will live. Second define a suitable duality on the space that will be denoted as <math>u\perp v</math>. For the GoI, two dualities have proved to work, the first one being nilpotency: two operators <math>u</math> and <math>v</math> are dual if <math>uv</math> is nilpotent, that is, if there is an nonegative integer <math>n</math> such that <math>(uv)^n = 0</math>. Last define a ''type'' as a set of objects <math>T</math> that is equal to its bidual: <math>T = T\biorth</math>. Putting it in ground terms this means that <math>u\in T</math> iff for all operator <math>v</math>, if <math>v\in T\orth</math>, that is if <math>u'v</math> is nilpotent for all <math>u'\in T</math>, then <math>u\perp v</math>, that is <math>uv</math> is nilpotent. |
+ | 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 in which the interpretations of proofs will live; here, in the case of GoI, the space is the space of bounded operators on <math>H=\ell^2</math>. |
− | It remains to interpret logical operations in this framework, that is to associate a type to each formula, an object to each proof and to show the adequacy lemma: if <math>u</math> is the interpretation of a proof of the formula <math>A</math> then <math>u</math> belongs to the type associated to <math>A</math>. |
+ | Second define a suitable duality on this space that will be denoted as <math>u\perp v</math>. For the GoI, two dualities have proved to work, the first one being nilpotency: two operators <math>u</math> and <math>v</math> are dual if <math>uv</math> is nilpotent, that is, if there is an nonegative integer <math>n</math> such that <math>(uv)^n = 0</math>. |
+ | |||
+ | Last define a ''type'' as a subset <math>T</math> of the proof space that is equal to its bidual: <math>T = T\biorth</math>. In the case of GoI this means that <math>u\in T</math> iff for all operator <math>v</math>, if <math>v\in T\orth</math>, that is if <math>u'v</math> is nilpotent for all <math>u'\in T</math>, then <math>u\perp v</math>, that is <math>uv</math> is nilpotent. |
||
+ | |||
+ | 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 <math>u</math> is the interpretation of a proof of the formula <math>A</math> then <math>u</math> belongs to the type associated to <math>A</math>. |
||
== Preliminaries == |
== Preliminaries == |
||
Line 19: | Line 19: | ||
We begin by a brief tour of the operations on <math>H</math> that will be used in the sequel. |
We begin by a brief tour of the operations on <math>H</math> that will be used in the sequel. |
||
− | Let us denote by <math>(e_n)_{n\in\mathbb{N}}</math> the canonical hilbertian basis of <math>H = \ell^2</math>; <math>e_n</math> is the sequence containing only 0's but at the <math>n</math>'s position where its value is <math>1</math>: <math>e_n = (\delta_{in})_{i\in\mathbb{N}}</math> where <math>\delta_{in}</math> is the standard Kroenecker function. Recall that the adjoint of an operator <math>u</math> is the operator <math>u^\ast</math> defined by <math>\langle u(x), y\rangle = \langle x, u^\ast(y)\rangle</math> for any <math>x,y\in H</math>. |
+ | Let us denote by <math>(e_n)_{n\in\mathbb{N}}</math> the canonical hilbertian basis of <math>H = \ell^2</math>; <math>e_n</math> is the sequence containing only 0's but at the <math>n</math>'s position where its value is <math>1</math>: <math>e_n = (\delta_{in})_{i\in\mathbb{N}}</math> where <math>\delta_{in}</math> is the standard Kroenecker function. Recall that the adjoint of an operator <math>u</math> is the operator <math>u^*</math> defined by <math>\langle u(x), y\rangle = \langle x, u^*(y)\rangle</math> for any <math>x,y\in H</math>. |
− | A ''partial isometry'' is an operator <math>u</math> satisfying <math>uu^\ast u = u</math>; as a consequence <math>uu^\ast</math> is a projector the range of which is the range of <math>u</math>; we will call ''codomain'' the range of <math>u</math>. Similarly <math>u^\ast u</math> is also a projector the range of which is the ''domain'' of <math>u</math> (which is orthogonal to the kernel of <math>u</math>). The domain and the codomain of <math>u</math> are both closed subspace of <math>H</math> and <math>u</math> restricted to its domain is an isometry. If the domain <math>u</math> is <math>H</math> that is if <math>u^\ast u = 1</math> we say that <math>u</math> has ''full domain'', and similarly for codomain. |
+ | A ''partial isometry'' is an operator <math>u</math> satisfying <math>uu^* u = u</math>; as a consequence <math>uu^*</math> is a projector the range of which is the range of <math>u</math>; we will call ''codomain'' the range of <math>u</math>. Similarly <math>u^* u</math> is also a projector the range of which is the ''domain'' of <math>u</math> (which is orthogonal to the kernel of <math>u</math>). The domain and the codomain of <math>u</math> are both closed subspace of <math>H</math> and <math>u</math> restricted to its domain is an isometry. If the domain <math>u</math> is <math>H</math> that is if <math>u^* u = 1</math> we say that <math>u</math> has ''full domain'', and similarly for codomain. |
− | If <math>u</math> is a partial isometry then <math>u^\ast</math> is also a partial isometry the domain of which is the codomain of <math>u</math> and the codomain of which is the domain of <math>u</math>. |
+ | If <math>u</math> is a partial isometry then <math>u^*</math> is also a partial isometry the domain of which is the codomain of <math>u</math> and the codomain of which is the domain of <math>u</math>. |
− | If <math>u</math> and <math>v</math> are two partial isometries, the equation <math>uu^\ast + vv^\ast = 1</math> means that the codomains of <math>u</math> and <math>v</math> are orthogonal and that their direct sum is <math>H</math>. |
+ | If <math>u</math> and <math>v</math> are two partial isometries, the equation <math>uu^* + vv^* = 1</math> means that the codomains of <math>u</math> and <math>v</math> are orthogonal and that their direct sum is <math>H</math>. |
− | We shall define a number of operators on <math>H</math> by describing their action on the basis <math>(e_n)</math>; actually most of the operators that are used to interpret logical operations will turn out to be defined as partial permutations on the basis, which in particular entails that they are partial isometries. |
+ | We shall define a number of operators on <math>H</math> by describing their action on the basis <math>(e_n)</math>; actually most of the operators that are used to interpret logical operations will turn out to be defined as partial permutations on the basis, which in particular entails that they are partial isometries. More precisely given a partial permutation <math>\varphi</math> on <math>\mathbb{N}</math>, that is a one-to-one function from a subset of <math>\mathbb{N}</math> into <math>\mathbb{N}</math> one define the partial isometry <math>u_\varphi</math> by <math>u_\varphi(e_n) = e_{\varphi(n)}</math> if <math>\varphi(n)</math> is defined, <math>0</math> otherwise. |
== Interpreting the tensor == |
== Interpreting the tensor == |
||
− | The 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 will 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 given by: |
+ | The 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 will 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 37: | Line 37: | ||
This is actually arbitrary, any two partial isometries <math>p,q</math> with full domain and such that the sum of their codomains is <math>H</math> would do the job. |
This is actually arbitrary, any two partial isometries <math>p,q</math> with full domain and such that the sum of their codomains is <math>H</math> would do the job. |
||
+ | |||
+ | From the definition <math>p</math> and <math>q</math> have full domain, that is satisfy <math>p^* p = q^* q = 1</math>. On the other hand their codomains are orthogonal, thus we have <math>p^* q = q^* p = 0</math>. Note that we also have <math>pp^* + qq^* = 1</math> although this property is not needed in the sequel. |
||
+ | |||
+ | Let <math>U</math> be an operator on <math>H\oplus H</math>. We can write <math>U</math> as a matrix: |
||
+ | : <math>U = \begin{pmatrix} |
||
+ | U_{11} & U_{12}\\ |
||
+ | U_{21} & U_{22} |
||
+ | \end{pmatrix}</math> |
||
+ | where each <math>U_{ij}</math> operates on <math>H</math>. |
||
+ | |||
+ | Now through the isomorphism <math>H\oplus H\cong H</math> we may transform <math>U</math> into the operator <math>\bar U</math> on <math>H</math> defined by: |
||
+ | |||
+ | : <math>\bar U = pU_{11}p^* + pU_{12}q^* + qU_{21}p^* + qu_{22}q^*</math>. |
||
+ | |||
+ | We call <math>\bar U</math> the ''internalization'' of <math>U</math>. |
||
+ | |||
+ | Given <math>A</math> and <math>B</math> two types, we define their tensor by: |
||
+ | |||
+ | : <math>A\tens B = \{pup^* + qvq^*, u\in A, v\in B\}\biorth</math> |
||
+ | |||
+ | From what precedes we see that <math>A\tens B</math> is generated by the internalizations of operators on <math>H\oplus H</math> of the form: |
||
+ | : <math>\begin{pmatrix} |
||
+ | u & 0\\ |
||
+ | 0 & v |
||
+ | \end{pmatrix}</math> |
Revision as of 01:07, 28 March 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 as a morphism from (the space interpreting) A to (the space interpreting) B and proof composition (cut rule) as the composition of morphisms. Rather the proof was interpreted as an operator acting on (the space interpreting) , that is a morphism from to . For proof composition the problem was then, given an operator on and another one on to construct a new operator on . This problem was originally expressed as a feedback equation solved by the execution formula. The execution formula has some formal analogies with Kleene's formula for recursive functions, which allowed to claim that GoI was 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 an abstract machine
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 in which the interpretations of proofs will live; here, in the case of GoI, the space is the space of bounded operators on .
Second define a suitable duality on this space that will be denoted as . 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 an nonegative integer n such that (uv)^{n} = 0.
Last define a type as a subset T of the proof space that is equal to its bidual: . In the case of GoI this means that iff for all operator v, if , that is if u'v is nilpotent for all , then , that is uv is nilpotent.
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 on H that will be used in the sequel.
Let us denote by the canonical hilbertian basis of ; e_{n} is the sequence containing only 0's but at the n's position where its value is 1: where δ_{in} is the standard Kroenecker function. Recall that the adjoint of an operator u is the operator u^{ * } defined by for any .
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; we will call codomain the range of u. Similarly u^{ * }u is also a projector the range of which is the domain of u (which is orthogonal to the kernel of u). The domain and the codomain of u are both closed subspace of H and u restricted to its domain is an isometry. If the domain u is H that is if u^{ * }u = 1 we say that u has full domain, and similarly for codomain.
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 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.
We shall define a number of operators on H by describing their action on the basis (e_{n}); actually most of the operators that are used to interpret logical operations will turn out to be defined as partial permutations on the basis, which in particular entails that they are partial isometries. More precisely given a partial permutation on , that is a one-to-one function from a subset of into one define the partial isometry by if is defined, 0 otherwise.
Interpreting the tensor
The first step is, given two types A and B, to construct the type . For this purpose we will define an isomorphism by where and are partial isometries given by:
- p(e_{n}) = e_{2n},
- q(e_{n}) = e_{2n + 1}.
This is actually arbitrary, any two partial isometries p,q with full domain and such that the sum of their codomains is H would do the job.
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 although this property is not needed in the sequel.
Let U be an operator on . We can write U as a matrix:
where each U_{ij} operates on H.
Now through the isomorphism we may transform U into the operator on H defined by:
- .
We call the internalization of U.
Given A and B two types, we define their tensor by:
From what precedes we see that is generated by the internalizations of operators on of the form: