<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>(Not So) Boring Abstract Machines</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ugo Dal Lago</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gabriele Vanoni</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Università di Bologna</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Inria</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Université Paris Cité</string-name>
        </contrib>
      </contrib-group>
      <kwd-group>
        <kwd>eol&gt;lambda-calculus</kwd>
        <kwd>abstract machines</kwd>
        <kwd>geometry of interaction</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Linear logic also provided another tool, dubbed geometry of interaction [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], which can be
seen as a concrete but non-standard way of both interpreting proofs and implementing the
cut-elimination process. This mechanism being efectively computable, it provides yet another
way of computing the result of the evaluation of a  -term.
      </p>
      <p>
        The Interaction Abstract Machine. This latter idea has been developed in many directions
in the ’90s [
        <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
        ], and recently revisited and deeply scrutinized by Accattoli et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. The machine
resulting from the geometry of interaction, called the Interaction Abstract Machine (IAM in the
following) implements weak head reduction (thus proceeding essentially call-by-name) and
has been historically presented on linear logic proof-nets, rather than on  -terms. This is not a
problem in itself, since  -terms can be translated into proof-nets. In fact, there is more than one
way to do so. The best known one is the (call-by-name) translation ( → )† :=!† ⊸ † of
intuitionistic logic inside linear logic. Another one, which is less common and dubbed boring
by Girard in the original paper [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], is based on the translation ( → )‡ :=!‡ ⊸!‡. This
translation is also dubbed “call-by-value” in the literature (and in this paper), the reason being
that it is adequate for call-by-value evaluation when considering surface proof-net reduction.
But how about the IAM that one gets out of the boring translation? It turns out that the answer
to this question is not boring at all: surprisingly, indeed, the IAM continues to implement weak
head reduction! Indeed, if one wants to recover call-by-value adequacy, then one has to go
beyond the pure geometry of interaction [
        <xref ref-type="bibr" rid="ref10 ref11">10, 11</xref>
        ]. There is even more to that, however.
Adding Jumps. Danos and Regnier [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] considered an optimization technique for the IAM,
called jumping. Moreover, they claimed that the machine obtained from the IAM adding jumps
is isomorphic to the PAM (an abstract machine deeply connected with Hyland and Ong game
semantics [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]) if one uses the call-by-name translation, and to the KAM if one uses instead
the call-by-value one. The first claim was made formal by Accattoli et al. in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. The second
one has never been made formal, and no fully fledged proof of it can be found in the literature.
This is in fact what constitutes the bulk of this paper, in which we indeed prove that the boring
IAM with jumps is (strongly bisimilar to) the KAM. As corollaries, we obtain a proof of the
correctness of the boring IAM, and a proof of the fact that the number of steps of the KAM
cannot be higher than that of the IAM.
      </p>
      <p>
        Related Work. The literature on geometry of interaction and its applications is huge, and
goes from, e.g., Girard’s original papers [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], to Abramsky et al’s categorical reformulation of
GoI [
        <xref ref-type="bibr" rid="ref14 ref15">14, 15</xref>
        ] to Danos and Regnier’s work on path algebras [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], through Ghica’s applications to
circuit synthesis [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], together with extensions by Hoshino, Muroya, and Hasuo to languages
with various kinds of efects [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], and Laurent’s extension to the additive connectives of
linear logic [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. The GoI has been studied in relationship with implementations of functional
languages, by Gonthier, Abadi and Levy, who studied Lévy’s optimal evaluation [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], and by
Mackie with his GoI machine for PCF [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. The space-eficiency of GoI as discovered by Dal Lago
and Schöpp [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] has later been exploited by Mazza in [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Dal Lago and coauthors have also
introduced variants of the IAM acting on proof nets for a number of extensions of the  -calculus
[
        <xref ref-type="bibr" rid="ref11 ref23 ref24 ref25">23, 11, 24, 25</xref>
        ]. Curien and Herbelin study abstract machines related to game semantics and the
IAM in [26, 27]. Moreover, Schöpp [28, 29] has shown how GoI can be seen as an optimized form
of CPS transformation, followed by defunctionalization. Finally, in a series of papers [
        <xref ref-type="bibr" rid="ref13 ref9">9, 13, 30</xref>
        ],
Accattoli, Dal Lago and Vanoni have recently revisited the IAM, giving it a new dress, and
obtaining general results about its time and space (in)eficiency.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2.  -Calculus and Abstract Machines</title>
      <p>Terms of the  -calculus are defined as follows:
 -terms</p>
      <p>,  ::=  ∈  ⃒⃒ . ⃒⃒ 
where  is a countable set of variables. Free and bound variables are defined as usual: .
binds  in . A term is closed when there are no free occurrences of variables in it. Terms are
considered modulo  -equivalence, and capture-avoiding (meta-level) substitution of all the free
occurrences of  for  in  is noted { }. Contexts are just  -terms containing exactly one
occurrence of a special symbol, the hole ⟨·⟩ , intuitively standing for a removed subterm. Here
we adopt levelled contexts, whose index, i.e. the level, stands for the number of  -abstractions
(i.e. the number of !-boxes in linear logic terminology, if one translates the  -calculus according
to the call-by-value translation) the hole lies in.</p>
      <sec id="sec-2-1">
        <title>Levelled contexts</title>
        <p>0 ::= ⟨·⟩ | 0 | 0</p>
        <p>+1 ::= .  | +1 | +1
We simply write  (or ) for a context whenever the level is not relevant. The operation
consisting of replacing the hole ⟨·⟩ with a term  in a context  is noted ⟨⟩ and called
plugging. Please note that for every bound variable , if this is isolated by its binding context
. , then  is the number of  s occurring in the syntax tree of the term between the
occurrence of  and its binder  . In other words,  is the de Bruijn index of . The operational
semantics that we adopt here is weak head evaluation →ℎ, defined as follows:
(. )1 . . . ℎ</p>
        <p>→ℎ { }1 . . . ℎ.</p>
        <p>We further restrict the setting by considering only closed terms, and refer to our framework as
Closed Call-by-Name (shortened to Closed CbN). Basic well known facts are that in Closed CbN
the normal forms are precisely the abstractions and that →ℎ is deterministic.</p>
        <sec id="sec-2-1-1">
          <title>2.1. Abstract Machines Glossary.</title>
          <p>In this paper, an abstract machine M is a transition system →M over a set of states (we omit the
subscript M when it is clear from the context). We use the standard notations →* and → to
denote the transitive and reflexive closure, and the composition  times of of →, respectively.
The machines considered in this paper move over the code, i.e. the initially fed  -term, without
ever changing it. A position in a term  is represented as a pair (, ) of a sub-term  of  and a
context  such that ⟨⟩ = . The shape of states depends on the specific machine, but they
always include a position (, ) plus some other data structures.
 +1 ::= · 
 ::=  ⃒⃒ ·</p>
          <p>Initial states (on ) are always positioned at the root of the term (, ⟨·⟩ ), where  is a closed
term. Their precise shape depends on the actual machine. A state is final if no transitions apply.
A run  is a possibly empty sequence of transitions. An initial run (from ) is a run from an
initial state (on ). A state is reachable if it is the target state of an initial run. A complete run
is an initial run ending on a final state. Given a machine
M, we write M()⇓ if M reaches a
M()⇓ if and only if →ℎ terminates on , for every closed term .
ifnal state starting from , and M()⇑ otherwise. We say that M implements Closed CbN when</p>
        </sec>
        <sec id="sec-2-1-2">
          <title>2.2. The Krivine Abstract Machine.</title>
          <p>
            The Krivine abstract machine [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ] (KAM) is a standard environment machine for Closed CbN.
We present the KAM in a rather “mixed” way: while we stick with terms with variable names,
we use de Bruijn indexes to retrieve closures stored inside the environment, as we now detail.
          </p>
          <p>The KAM, defined in Fig. 1, records every  -redex that it encounters using two data structures,
the environment  and the stack  . The basic idea is that, by saving encountered  -redexes in the
environment , the machine can simply look up in  for the argument of the binder 
whenever
encountering a variable occurrence . This is found looking at the entry in the environment
corresponding to the de Bruijn index of . The stack  is used to collect encountered arguments
that still have to be paired to abstractions to form  -redexes, and then go into the environment
.</p>
          <p>Closures, Stacks, and Environments.</p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>The mutually recursive grammars for closures and</title>
        <p>environments, plus the independent one for stacks are defined in Fig. 1, together with the
definition of states. The idea is that every piece of code comes with an environment, forming a
closure, which is why environments and closures are mutually defined. We denote by  the
set of KAM states.</p>
        <p>Transitions, Initial and Final States. Initial states of the KAM are in the form  :=
(, ⟨·⟩ , ,  ). The transitions of the KAM are in Fig. 1—their union is noted →KAM. The idea
is that the →sub transition looks in the environment for the argument of the variable under
evaluation. The KAM evaluates the term  until the top abstraction of the weak head normal form
of  is found, that is a run either never stops or ends in a state  of the shape  = (., , ,  ).
This is guaranteed by the fact that terms are closed and the standard (but omitted) invariant</p>
        <p>Logged Positions
 ::= ◇ ⃒⃒ (. , +1)</p>
        <p>Directions
 ::= ↓ ⃒⃒ ↑</p>
        <p>Tapes
 ::=  ⃒⃒ ∙ ·  ⃒⃒ ∘ ·  ⃒⃒  · 
0 ::=</p>
        <p>Logs
 +1 ::=  ·</p>
        <p>States
 ::= (, , , , )
Term


.


. ⟨⟩
. ⟨⟩

ensuring that on reachable states the level of the context equals the length of the environment,
so that the KAM never gets stuck on a →sub transition.</p>
        <p>
          Theorem 2.1 ([
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]). The KAM implements Closed Call-by-Name.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. The Boring Interaction Abstract Machine</title>
      <p>
        In this section we define the Boring Interaction Abstract Machine (BIAM). We follow [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]
and define it directly on  -terms. As we have already said, the main diference is that here
we translate  -terms according to the call-by-value (or “boring”) Girard’s translation. This
means that—with respect to the linear logic representation of a  -term—boxes always enclose
 -abstractions.
      </p>
      <p>A Bird’s Eye View of the BIAM. Intuitively, the behavior of the BIAM can be seen as that
of a token that travels around the syntax tree of the program under evaluation. Similarly to the
KAM, it looks for the head variable of a term, but without storing the encountered  -redexes
in an environment. When it finds the head variable, the BIAM looks for the argument which
should replace it, because having no environment it cannot simply look it up. These two search
mechanisms are realized by two diferent phases and directions of exploration of the code,
noted ↓ and ↑. The functioning is actually more involved because there is also a backtracking
mechanism, requiring to save and manipulate code positions in the token. Last, the machine
never duplicates the code, but it distinguishes diferent uses of a same code (position) using logs.
Unfortunately, there are no easy intuitions about how logs handle the diferent uses.
BIAM States. The BIAM travels on a  -term  carrying some data structures, defined in Fig. 2,
which store information about the computation and determine the next transition to be applied.





 · 


◇ · ∙ ·

◇ · ∘ ·



→∙ 3
→∙ 4
→arg
→bt1

.</p>
      <p>⟨⟨·⟩⟩</p>
      <p>A key point is that navigation is done locally, moving only between adjacent positions.1 The
BIAM also has a direction of navigation that is either ↓ or ↑ (pronounced down and up). The
token carries two stacks, called log and tape, whose main components are logged positions.
Roughly, a log is a trace of the relevant positions in the history of a computation. A logged
position is either an occurrence of a distinguished symbol ◇ (representing a dereliction in linear
logic jargon), or a position plus a log, meant to trace the history that led to that position. Logs
and logged positions are then defined by mutual induction, as it was the case for closures and
environments in the KAM. We use · also to concatenate logs, writing, e.g.,  · , using  for a
log of unspecified length. The tape  is a list of logged positions plus occurrences of the special
symbols ∙ and ∘ , needed to record the crossing of abstractions and applications. A state of the
machine is given by a position, a log  and a tape  , together with a direction. Initial states
have the form  := (, ⟨·⟩ , , ◇ ).2 Directions are often omitted and represented via colors and
underlining: ↓ is represented by a red and underlined code term, ↑ by a blue and underlined
code context. We denote by  the set of BIAM states.</p>
      <p>Transitions. Intuitively, the machine evaluates the term  until the head abstraction of its
head normal form is found. The transitions of the BIAM are split into two groups, ↓-transitions,
which depend on the structure of the code term, in Fig. 2, and ↑-transitions, which depend on
the structure of the code context, in Fig. 3. Their union is noted →BIAM. The idea is that ↓-states
(, , ,  ) are queries about the head variable of (the head normal form of)  and ↑-states
(, , ,  ) are queries about the argument of an abstraction.</p>
      <p>Simple Properties. The BIAM satisfies several nice properties which can be proved just by
examining the transition rules. If we consider it as an automaton it is bi-deterministic, i.e. it is
deterministic and reversible. Moreover, the tape satisfies a FIFO stack policy.</p>
      <p>Proposition 3.1 (Reversibility and Pumping). If 1 →BIAM 2, then:
1. ⊥ →BIAM 1⊥, where ⊥ is  with inverted direction.</p>
      <p>2
2. 1 +  →BIAM 2 +  , where if  has tape  , then  +  ′ has tape  ·  ′.
1Note that also the transition from the variable occurrence to the binder in →var and →bt2 are local if  -terms are
represented by implementing occurrences as pointers to their binders, as in the proof net representation of  -terms,
upon which some concrete implementation schemes are based, see [31].
2Initial non-empty states could seem weird at first. However, they have a natural linear logical interpretation. In the
call-by-value translation values are always !-boxed, and derelictions are needed to open such boxes. The symbol ◇
indeed represents a dereliction, i.e. a query to open a box, thus needed also in the initial state.</p>
      <p>If we restrict ourselves to reachable states, we are able to establish some properties about
them, by induction on the initial run that leads to them.</p>
      <p>Proposition 3.2 (Invariants). If (, , , , ) is a reachable BIAM state, then:
1.  satisfies the regular expression (· (∙ | ∘ ))* · .
2. || = .</p>
      <p>These two invariants together guarantee that the BIAM is never blocked on the transition
→var. A much stronger (and way more involved) invariant that we are going to present in the
next section guarantees that the BIAM can only be blocked on states of the form (. , , , ),
which therefore is the only possible shape of final states.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Jumping is not Boring</title>
      <p>
        This section presents the main technical result of this paper, namely that adding jumps (in the
sense of Danos and Regnier [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]) to the BIAM turns the resulting machine into a device which is
bisimilar to the KAM. While this result is only sketched in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], here we give a formal proof that
jumps are actually shortcuts over the BIAM path, and thus that the KAM can be simulated by
the BIAM.
      </p>
      <p>Jumps. We have already stressed that each transition of the BIAM is local. This means that at
each step the token moves to positions which are adjacent to the previous ones in the syntax
tree of the  -term under evaluation. This is not the case for the KAM. Indeed, the transition
→sub moves the focus of the evaluation to an arbitrary position of the term. We call these
non-local transitions jumps. Of course, jumps are possible because during the already carried
out computation some positions have been saved. In particular, one could see a similar pattern
between the BIAM transition →∙ 1 (or →∙ 2) and the KAM transition →sea (or → ). Ignoring the
constant ∙ (which is not needed in the KAM, although it could be straightforwardly added), their
diference lies in the fact that in transition →sea the dereliction constant ◇ (and in transition
→ a generic logged position ) have been substituted by a closure , that saves the encountered
arguments (together with their respective environments). These closures are then used in the
jump of transition →sub.</p>
      <p>The Boring Jumping Abstract Machine. We formalize the intuition above by defining the
Boring Jumping Abstract Machine (BJAM), in Fig. 4. One could already notice the (bi-)similarity
with the KAM, this is why we have kept the same transition names. Consistently with the
BIAM, initial BJAM states have the form (, ⟨·⟩ , ,  0), where 0 is a dummy closure, and final
states have the shape (., , ,  ). We denote by  the set of BJAM states. This machine is
obtained from the BIAM by making just two small adjustments. (i) Saving a closure in transition
→∙ 1 instead of putting simply a ◇ ; and (ii) jumping in transition →var to the argument stored in
the right closure (as in the KAM). With these two modifications, one immediately notices that
↑-transitions are no more needed. Indeed, since the initial states are of ↓-direction and without
any ∘ , ↑-states are no more reachable (and the →bt2 transition is never fired). Please notice that
closures here, and diferently from the KAM, can be surrounded by arbitrary logged contexts.
Indeed closures can be pushed deep inside at arbitrary depth by the BJAM transition →sub.
 ::=  ⃒⃒ ∙·  ⃒⃒ · 
 ::= ⟨·⟩ ⃒⃒ (. , · )</p>
      <p>Env</p>
      <p>Stack

 · ∙ ·</p>
      <p>Logged Closures</p>
      <p>::= ⟨⟩
T Ctx
we briefly illustrate how the three machines compute with a small example.</p>
      <p>Example 4.1. We consider the term  := (. )(. ). The BJAM, the BIAM, and the KAM
complete runs are as follows (where  := (. )⟨·⟩ and  := . ):</p>
      <p>2
(, ⟨·⟩ , ,  0) →BJAM (, (. ⟨·⟩ )(. ), (, ,  ), 0) →BJAM (, , , (. ⟨·⟩ , 0))
2 2
(, ⟨·⟩ , , ◇ ) →BIAM (, (. ⟨·⟩ )(. ), ◇ , ◇ ) →BIAM (, , , (. ⟨·⟩ , ◇ ))</p>
      <p>2
(, ⟨·⟩ , ,  ) →KAM (, (. ⟨·⟩ )(. ), (, ,  ),  ) →KAM (, , ,  )
The reader can immediately notice that the BJAM somehow subsumes both the BIAM and the
way, one obtains KAM states by removing all the logged contexts surrounding closures.
KAM. From BJAM states one obtains BIAM states by turning all closures into ◇ , and, in a dual
Improvements, Abstractly.</p>
      <p>
        We formalize the intuition above through a bisimulation-like
argument. In particular, we need to prove that BJAM jumps can be simulated by (possibly many)
BIAM transitions. We use the abstract framework of improvements, already setup in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
Definition 4.2 (Improvements). Given two abstract machines with sets of states  and , a
relation ℛ ⊆  ×  is an improvement if given (, ) ∈ ℛ the following conditions hold:
1. Final state right: if  ∈  is a final state, then  →
 ′, for some final state ′ ∈  and
 ≥ 0.
′ →
 ′′,  →
      </p>
      <p>′, ′′ℛ′ and  ≤  + 1.
 →
 ′, ′ →</p>
      <p>′′, ′ℛ′′ and  ≥  + 1.
2. Transition left: if  ∈  and  → ′, then there exists ′′ ∈  and ′ ∈  such that
3. Transition right: if  ∈  and  → ′, then there exists ′ ∈  and ′′ ∈  such that
What improves along an improvement is the number of transitions required to reach a final
state, if any.</p>
      <p>
        Proposition 4.3 ([
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]). Let ℛ ⊆  ×  be an improvement, and ℛ. Then:
1. (Non) Termination:  →* ′ with ′ final if and only if  →* ′ with ′ final.
2. Improvement: || ≥ | |, where || is the length of the run from  to a final state, if any, and
+∞ otherwise.
      </p>
      <p>Relating the BIAM and the BJAM. The main dificulty in relating BIAM and BJAM runs
lies in proving that BJAM jumps can be simulated by the BIAM. To do so, we first define a
translation (· ) :  → , from BJAM states to BIAM states (and extended to all of their
components) as follows:
(, , ,  ) := (, ,  ,   )</p>
      <p>( ·  ) :=  ·  
(. , · ) := (. , () ·  )
( · ) :=  · 
(∙ ·  ) := ∙ ·  
⟨⟩ :=  ⟨◇⟩
( ) := 
⟨·⟩  :=
⟨·⟩
Then, we define the relation ≻ ⊆</p>
      <p>×  that we want to prove being an improvement as:
 ≻  if and only if  and  are reachable and  = 
It is immediate to show that initial states (on the same term) are related: indeed we have that
(, ⟨·⟩ , , (, ⟨·⟩ ,  )) = (, ⟨·⟩ , , ◇ ). At this point, one has to prove that the relation ≻ satisfies
Definition 4.2. One would like to proceed examining all the transitions of the BJAM, and while
transitions →sea, and → are easy to reason about, there is no easy way to handle transition
→sub. Indeed, while the BJAM performs a jump, the BIAM performs a (possibly very long) series
of transitions. To solve this issue, we resort to proving a very strong invariant that somehow
relates BJAM and BIAM states.</p>
      <p>
        The Exhaustible Invariant. We lift the technique introduced by Accattoli et al. in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], dubbed
exhaustibility, to the BIAM and the BJAM. The technique being technically involved, some
preliminary technical definitions are needed. The idea is that every closure  in a reachable
BJAM state  can be tested. The test is passed if the BIAM state corresponding to  can be
reached from  . Then, in order for the induction to work, the exhaustibility predicate has to be
strengthened, requiring also the target state to be exhaustible. We first define test states for the
stack and the environment.
      </p>
      <p>Definition 4.4 (Stack tests). Let  = (, , ,  ) be an BJAM state. Then, the BIAM state
 := (, ,  , ( ′) ·  ⟨◇⟩ · ∘ ) is a stack test for  of focus  for each decomposition  =
 ′ · ⟨⟩ ·  ′′ · ′ of the stack.</p>
      <p>Definition 4.5 (Environment tests). Let  = (, ⟨. ⟩, · ⟨⟩· ,  ) be an BJAM state.
Then, the BIAM state  := (. ⟨⟩, ,  ,  ⟨◇⟩ · ∘ ) is an environment test for  of focus .</p>
      <sec id="sec-4-1">
        <title>Each closure naturally defines a BJAM state.</title>
        <p>Definition 4.6 (State induced by a closure). Given a closure  := (, , ), the BJAM state 
induced by  is defined as  := (, , ,  ).</p>
        <p>Then we are able to give a formal definition of exhaustible states, based on the previously
defined notions.</p>
        <p>Definition 4.7 (Exhaustible states). ℰ is the smallest set of those BJAM states  such that for
any stack or environment test  of  of focus , there exists a BIAM run  :  →+IAM ()
such that  ∈ ℰ .</p>
        <p>Now, by induction on the length of the run, we can prove that all reachable BJAM states are
actually exhaustible.</p>
        <p>Lemma 4.8. Let  be a reachable BJAM state. Then  is exhaustible.</p>
        <p>Proof. We proceed by induction on the length  of the run that leads to . If  = 0, the statement
is trivially true. We consider the diferent cases relative to the inductive step.
• Application:</p>
        <p>′ = (, , ,  ) →sea (, ⟨⟨·⟩ ⟩, , (, ⟨⟨·⟩⟩ , ) · ∙ ·  ) = 
– Environment tests: by i.h., since they are the same of those of ′.
– Stack tests: the first stack test of  is  = (, ⟨⟨·⟩ ⟩,  , ◇ · ∘
(, ⟨⟨·⟩⟩ , ). It is positive since
), where  =
(, ⟨⟨·⟩ ⟩,  , ◇ · ∘</p>
        <p>) →arg (, ⟨⟨·⟩⟩ ,  ,  ) = ()
 does not have any stack test and its environment tests are the same as those of ′,
hence positive by i.h.. For all the other stack tests ′ of  of focus ′, we have
′ = (, ⟨⟨·⟩ ⟩,  , ◇ · ∙ ·
( ′) ·  ⟨◇⟩ · ∘
) →∙ 3 (, ,  , ( ′) ·  ⟨◇⟩ · ∘
) = ′′
where  ′ · ⟨′⟩ is a proper prefix of  . Please note that ′′ is a stack test of ′, and
hence positive by i.h..
• Abstraction:</p>
        <p>′ = (., , ,  · ∙ ·  ) → (, ⟨. ⟨·⟩⟩ ,  · ,  ) = 
– Environment tests: environment tests of  are those of ′ plus (.,  ,  ,  · ∘ ),
which is the first (from the left) stack test of ′, and hence positive by i.h..
– Stack tests: all stack tests of  of focus  rewrite in one step to stack tests of ′,
positive by i.h.. In fact:
(, ⟨. ⟨·⟩⟩ ,  ·  , ( ′) ·  ⟨◇⟩ · ∘
) →∙ 4 (.,  ,  ,  · ∙ ·
( ′) ·  ⟨◇⟩ · ∘
)
where  ′ · ⟨⟩ is a proper prefix of  .
• Variable:
′ = (, ⟨. ⟩,  · ⟨, ′, ′⟩ · ,  ·  ) →var (, ′, ′, (. , · ) ·  ) = 
– Environment tests: since ′ is exhaustible by i.h., we have that its environment test
 relative to  := (, ′, ′)
 := (. ⟨⟩, ,  ,  ⟨◇⟩ · ∘</p>
        <p>+
) → IAM () := (, ′, ′,  )
and  is exhaustible. Please note that its environment tests are positive. Thus, also
environment tests of  are positive since they are the same of .
– Stack tests: we have two cases. First we consider the stack test relative to the leftmost
position (. , · ), i.e.:</p>
        <p>(, ′, (′) , (. , ·  ) · ∘ )
From the point above, by reversibility and pumping (. , ·  ) · ∘ , we have:
(, ′, (′) , (. , ·  )∘· ) →+IAM (. ⟨⟩, ,  ,  ⟨◇⟩·∘
(. , ·  )∘· )
Now,</p>
        <p>(. , ·  )∘· ) →bt2 (, ⟨. ⟩, ·  ⟨◇⟩·  ,  ·∘ )
and this last state is the leftmost stack test of ′, hence positive by i.h..</p>
        <p>The same method can be used for all the other stack tests of the form</p>
        <p>(, ′, (′) , (, . , ·  ) · ( ′) · (′) · ∘ )
where  ′ · ′ is a proper prefix of  (of course pumping (. , ·  ) · ( ′) · (′) · ∘ ).
Example 4.9. Being the invariant and the related definitions hard to grasp, we
provide an example of application. We consider the reachable BJAM state
(, (. ⟨·⟩ )(. ), (., (. )⟨·⟩ ,  ), 0), seen in Example 4.1. It has one environment test,
namely (., ⟨·⟩ (. ), , ◇ · ∘ ), of focus  := (., (. )⟨·⟩ ,  ). The BJAM state induced
by  is  := (., (. )⟨·⟩ , ,  ), and indeed we have that:
(., ⟨·⟩ (. ), , ◇ · ∘</p>
        <p>) →arg (. , (. )⟨·⟩ , ,  ) = ()</p>
        <p>We use Lemma 4.8 to prove the following key proposition, that establishes the simulation of
the BJAM by the BIAM.</p>
        <p>Proposition 4.10. ≻ is an improvement.</p>
        <p>Proof. We need to verify all points of Definition 4.2. Point 1 (final state right) is immediate.
Indeed if  ≻  and  is final, i.e. in the form  := (., , ,  ), then also  := (. , ,  ,  )
is a final state.</p>
        <p>We prove point 2 and 3 together. We proceed by analysing the shape of .</p>
        <p>• Case →sea. The following diagram proves this case.</p>
        <p>(, ,  ,   )
(, ⟨⟨·⟩ ⟩,  , ·◇ ∙ ·
  )
≻
≻
(, , ,  )
↓</p>
        <p>sea
(, ⟨⟨·⟩ ⟩, , (, ⟨⟨·⟩⟩ , )· ∙ ·  )
• Case → . The following diagram proves this case.</p>
        <p>(. , ,  ,  · ∙ ·   )
(, ⟨. ⟨·⟩⟩ ,  ·  ,   )
≻
≻
(., , ,  · ∙ ·  )
↓</p>
        <p>(, ⟨. ⟨·⟩⟩ , · ,  )
• Case →sub. We need to close the following diagram:
(, ⟨. ⟩, () ·  ⟨◇⟩·  ,  ·   )</p>
        <p>≻ (, ⟨. ⟩, · ⟨, ′, ′⟩· , ·  )
↓
var
Since  is reachable, and hence exhaustible by Lemma 4.8, we apply the definition of
exhaustible state to the environment closure (, ′, ′). This means that we have the
sequence of reductions:
 := (. ⟨⟩, ,  ,  ⟨◇⟩ · ∘</p>
        <p>+
) →BIAM (, ′, (′) ,  )
which, pumping (. , () ·</p>
        <p>·
  )   , allows us to close the diagram.</p>
        <p>Relating the BJAM and the KAM.</p>
        <p>We have related the BIAM and the BJAM. What is left is
then to relate the BJAM and the KAM. Intuitively, BJAM states are just KAM states decorated
with logged contexts. Moreover, the two machines morally behave the same. Indeed, logged
contexts are never used by the BJAM, because in transition →sub they are just thrown away
from the environment. This is why the proof of improvement (actually a strong bisimulation)
between the BJAM and the KAM is easy. As before, we first define a translation
from BJAM states to KAM states (and extended to all of their components) that just ignores
logged contexts, the rightmost dummy closure in the stack, and the ∙ symbol, as follows:
(· ) :  →  ,
(, , ,  · ) := (, ,  ,   )
( ·  ) :=  ·  
( · ) :=  · 
(∙ ·  ) :=</p>
        <p>( ) := 
⟨⟩ :=</p>
      </sec>
      <sec id="sec-4-2">
        <title>Then, we define the relation</title>
        <p>≃ ⊆  ×  that we want to prove being an improvement as:
 ≃  if and only if  and  are reachable and  = 
We immediately observe that ≃ is an improvement (actually a strong bisimulation).
Proposition 4.11. The BJAM and the KAM are strongly bisimilar.</p>
        <p>Then, we can state our main result, namely that the BIAM can simulate the KAM.
Theorem 4.12. There is an improvement between the BIAM and the KAM.</p>
        <p>Proof. Since the composition of two improvements is again an improvement, the desired
improvement is ≻ ; ≃.</p>
        <p>Corollary 4.13. The BIAM implements Closed Call-by-Name.</p>
        <p>Proof. Since improvements preserve (non)termination (Lemma 2).</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Further Remarks</title>
      <p>We have analyzed the relationship between the BIAM, the BJAM, and the KAM. We use this
section to clarify some points that we have (intentionally) overlooked, and that we leave for
further work.</p>
      <p>Relationship with the IAM. The reader may wonder what is the relationship between the
BIAM and the IAM obtained through the call-by-name translation of intuitionistic logic inside
linear logic. A simple inspection of the transitions rules of the BIAM reveals that the two
machines are likely to be strongly bisimilar. However, it is not clear whether and how it is
possible to prove the correspondence directly, i.e. by exhibiting a concrete strong bisimulation
between the states of the two machines, which are indeed very diferent. The length of the log
is in fact equal to the depth of the code context, which is defined in a diferent way in the two
translations. This question has to do with the intimate nature of the two translations, and is
thus intriguing.</p>
      <p>
        Call-by-Value Adequacy and Intersection Types. In [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], Accattoli and coauthors have
established a tight correspondence (a sort of isomorphism) between the IAM run on a term
, and the (non-idempotent) intersection type derivation for  itself. It seems then natural to
extend that correspondence to the “boring” case. Unfortunately, things are not straightforward.
Indeed, the non-idempotent intersection type system obtained from the call-by-value translation
is adequate for call-by-value evaluation (as one would expect), while here we have proved that
the BIAM is adequate for call-by-name. We think that types could help in better understanding
this mismatch, which deserves to be better studied.
      </p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusions</title>
      <p>
        With this paper we have clarified some obscure points in the relationship between Krivine’s
abstract machine, the call-by-value (or “boring”) Girard’s translation of intuitionistic logic inside
linear logic, and Girard’s geometry of interaction. The connection between these three concepts
was already considered by Danos and Regnier in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], but without detailed proofs, and relying
on the graphical syntax of linear logic proof-nets. Our exposition instead is fully formal and
does not require any prerequisite but the familiarity with the  -calculus.
      </p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments</title>
      <p>We would like to thank Beniamino Accattoli with whom we have discussed this topic. The first
author is funded by the ERC CoG “DIAPASoN” (GA 818616). The second author is supported by
the ANR PPS Project ANR-19-CE48-0014 and the European Union’s Horizon 2020 research and
innovation programme under the Marie Sklodowska-Curie grant agreement No. 101034255”.
in Computer Science, LICS 2017, Reykjavik, Iceland, June 20-23, 2017, IEEE Computer
Society, 2017, pp. 1–12. doi:10.1109/LICS.2017.8005112.
[26] P. Curien, H. Herbelin, Computing with abstract böhm trees, in: M. Sato, Y. Toyama (Eds.),
Third Fuji International Symposium on Functional and Logic Programming, FLOPS 1998,
Kyoto, Japan, Apil 2-4, 1998, World Scientific, Singapore, 1998, pp. 20–39.
[27] P. Curien, H. Herbelin, Abstract machines for dialogue games (2007). URL: http://arxiv.</p>
      <p>org/abs/0706.2544.
[28] U. Schöpp, On the relation of interaction semantics to continuations and
defunctionalization, Logical Methods in Computer Science 10 (2014). doi:10.2168/LMCS-10(4:
10)2014.
[29] U. Schöpp, From call-by-value to interaction by typed closure conversion, in: X. Feng,
S. Park (Eds.), Programming Languages and Systems - 13th Asian Symposium, APLAS
2015, Pohang, South Korea, November 30 - December 2, 2015, Proceedings, volume
9458 of Lecture Notes in Computer Science, Springer, 2015, pp. 251–270. doi:10.1007/
978-3-319-26529-2\_14.
[30] B. Accattoli, U. Dal Lago, G. Vanoni, The space of interaction, in: 2021 36th Annual
ACM/IEEE Symposium on Logic in Computer Science (LICS), 2021, pp. 1–13. doi:10.
1109/LICS52264.2021.9470726.
[31] B. Accattoli, B. Barras, Environments and the complexity of abstract machines, in: W.
Vanhoof, B. Pientka (Eds.), Proceedings of the 19th International Symposium on Principles
and Practice of Declarative Programming, Namur, Belgium, October 09 - 11, 2017, ACM,
2017, pp. 4–16. doi:10.1145/3131851.3131855.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Landin</surname>
          </string-name>
          ,
          <source>The Mechanical Evaluation of Expressions, The Computer Journal</source>
          <volume>6</volume>
          (
          <year>1964</year>
          )
          <fpage>308</fpage>
          -
          <lpage>320</lpage>
          . doi:
          <volume>10</volume>
          .1093/comjnl/6.4.308.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J.-L.</given-names>
            <surname>Krivine</surname>
          </string-name>
          ,
          <article-title>A Call-by-name Lambda-calculus Machine, Higher Order Symbol</article-title>
          .
          <source>Comput</source>
          .
          <volume>20</volume>
          (
          <year>2007</year>
          )
          <fpage>199</fpage>
          -
          <lpage>207</lpage>
          . doi:
          <volume>10</volume>
          .1007/s10990-007-9018-9.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>P.</given-names>
            <surname>Sestoft</surname>
          </string-name>
          ,
          <article-title>Deriving a lazy abstract machine</article-title>
          ,
          <source>J. Funct. Program. 7</source>
          (
          <year>1997</year>
          )
          <fpage>231</fpage>
          -
          <lpage>264</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M. S.</given-names>
            <surname>Ager</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Biernacki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Danvy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Midtgaard</surname>
          </string-name>
          ,
          <article-title>A functional correspondence between evaluators and abstract machines</article-title>
          ,
          <source>in: Proceedings of the 5th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming</source>
          ,
          <fpage>27</fpage>
          -29
          <source>August</source>
          <year>2003</year>
          , Uppsala, Sweden,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          ,
          <year>2003</year>
          , pp.
          <fpage>8</fpage>
          -
          <lpage>19</lpage>
          . doi:
          <volume>10</volume>
          .1145/888251.888254.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.-Y.</given-names>
            <surname>Girard</surname>
          </string-name>
          , Linear logic,
          <source>Theoretical Computer Science</source>
          <volume>50</volume>
          (
          <year>1987</year>
          )
          <fpage>1</fpage>
          -
          <lpage>101</lpage>
          . doi:
          <volume>10</volume>
          .1016/
          <fpage>0304</fpage>
          -
          <lpage>3975</lpage>
          (
          <issue>87</issue>
          )
          <fpage>90045</fpage>
          -
          <lpage>4</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.-Y.</given-names>
            <surname>Girard</surname>
          </string-name>
          ,
          <article-title>Geometry of Interaction 1: Interpretation of System F</article-title>
          , in: R.
          <string-name>
            <surname>Ferro</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Bonotto</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Valentini</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Zanardo (Eds.),
          <source>Studies in Logic and the Foundations of Mathematics</source>
          , volume
          <volume>127</volume>
          ,
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          ,
          <year>1989</year>
          , pp.
          <fpage>221</fpage>
          -
          <lpage>260</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>I. Mackie</surname>
          </string-name>
          , The Geometry of Interaction Machine, in: R. K. Cytron,
          <string-name>
            <surname>P.</surname>
          </string-name>
          Lee (Eds.),
          <source>Conference Record of POPL'95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages</source>
          , San Francisco, California, USA, January
          <volume>23</volume>
          -
          <issue>25</issue>
          ,
          <year>1995</year>
          , ACM Press,
          <year>1995</year>
          , pp.
          <fpage>198</fpage>
          -
          <lpage>208</lpage>
          . doi:
          <volume>10</volume>
          .1145/199448.199483.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>V.</given-names>
            <surname>Danos</surname>
          </string-name>
          , L. Regnier, Reversible, irreversible and optimal lambda-machines,
          <source>Theoretical Computer Science</source>
          <volume>227</volume>
          (
          <year>1999</year>
          )
          <fpage>79</fpage>
          -
          <lpage>97</lpage>
          . doi:
          <volume>10</volume>
          .1016/S0304-
          <volume>3975</volume>
          (
          <issue>99</issue>
          )
          <fpage>00049</fpage>
          -
          <lpage>3</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>B.</given-names>
            <surname>Accattoli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Dal Lago</surname>
          </string-name>
          ,
          <string-name>
            <surname>G. Vanoni,</surname>
          </string-name>
          <article-title>The machinery of interaction</article-title>
          ,
          <source>in: Proceedings of the 22nd International Symposium on Principles and Practice of Declarative Programming</source>
          ,
          <source>PPDP '20</source>
          ,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2020</year>
          . doi:
          <volume>10</volume>
          .1145/ 3414080.3414108.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fernández</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Mackie</surname>
          </string-name>
          ,
          <article-title>Call-by-value lambda-graph rewriting without rewriting</article-title>
          , in: A.
          <string-name>
            <surname>Corradini</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Ehrig</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Kreowski</surname>
          </string-name>
          , G. Rozenberg (Eds.),
          <string-name>
            <surname>Graph</surname>
            <given-names>Transformation</given-names>
          </string-name>
          , First International Conference, ICGT 2002, Barcelona, Spain, October 7-
          <issue>12</issue>
          ,
          <year>2002</year>
          , Proceedings, volume
          <volume>2505</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2002</year>
          , pp.
          <fpage>75</fpage>
          -
          <lpage>89</lpage>
          . doi:
          <volume>10</volume>
          .1007/ 3-540-45832-8\_8.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>U.</given-names>
            <surname>Dal Lago</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Faggian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Valiron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Yoshimizu</surname>
          </string-name>
          ,
          <article-title>Parallelism and synchronization in an infinitary context</article-title>
          ,
          <source>in: 30th Annual ACM/IEEE Symposium on Logic in Computer Science, LICS</source>
          <year>2015</year>
          , Kyoto, Japan, July 6-
          <issue>10</issue>
          ,
          <year>2015</year>
          , IEEE Computer Society,
          <year>2015</year>
          , pp.
          <fpage>559</fpage>
          -
          <lpage>572</lpage>
          . doi:
          <volume>10</volume>
          .1109/LICS.
          <year>2015</year>
          .
          <volume>58</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>J. M. E. Hyland</surname>
            ,
            <given-names>C. L.</given-names>
          </string-name>
          <string-name>
            <surname>Ong</surname>
          </string-name>
          ,
          <article-title>On full abstraction for PCF: i, ii, and III, Inf</article-title>
          . Comput.
          <volume>163</volume>
          (
          <year>2000</year>
          )
          <fpage>285</fpage>
          -
          <lpage>408</lpage>
          . URL: https://doi.org/10.1006/inco.
          <year>2000</year>
          .
          <volume>2917</volume>
          . doi:
          <volume>10</volume>
          .1006/inco.
          <year>2000</year>
          .
          <volume>2917</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>B.</given-names>
            <surname>Accattoli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Dal Lago</surname>
          </string-name>
          ,
          <string-name>
            <surname>G. Vanoni,</surname>
          </string-name>
          <article-title>The (in)eficiency of interaction</article-title>
          ,
          <source>Proc. ACM Program. Lang</source>
          .
          <volume>5</volume>
          (
          <year>2021</year>
          ). URL: https://doi.org/10.1145/3434332. doi:
          <volume>10</volume>
          .1145/3434332.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Joyal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Street</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Verity</surname>
          </string-name>
          , Traced monoidal categories,
          <source>Mathematical Proceedings of the Cambridge Philosophical Society</source>
          <volume>119</volume>
          (
          <year>1996</year>
          )
          <fpage>447</fpage>
          -
          <lpage>468</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S.</given-names>
            <surname>Abramsky</surname>
          </string-name>
          , E. Haghverdi,
          <string-name>
            <given-names>P.</given-names>
            <surname>Scott</surname>
          </string-name>
          ,
          <article-title>Geometry of Interaction and linear combinatory algebras</article-title>
          ,
          <source>Mathematical Structures in Computer Science</source>
          <volume>12</volume>
          (
          <year>2002</year>
          )
          <fpage>625</fpage>
          -
          <lpage>665</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>V.</given-names>
            <surname>Danos</surname>
          </string-name>
          , L. Regnier,
          <article-title>Local and asynchronous beta-reduction (an analysis of Girard's execution formula)</article-title>
          ,
          <source>in: Proceedings of the Eighth Annual Symposium on Logic in Computer Science (LICS '93)</source>
          , Montreal, Canada, June 19-23,
          <year>1993</year>
          , IEEE Computer Society,
          <year>1993</year>
          , pp.
          <fpage>296</fpage>
          -
          <lpage>306</lpage>
          . doi:
          <volume>10</volume>
          .1109/LICS.
          <year>1993</year>
          .
          <volume>287578</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>D. R.</given-names>
            <surname>Ghica</surname>
          </string-name>
          ,
          <article-title>Geometry of Synthesis: A Structured Approach to VLSI Design</article-title>
          , in: M.
          <string-name>
            <surname>Hofmann</surname>
          </string-name>
          , M. Felleisen (Eds.),
          <source>Proceedings of the 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL</source>
          <year>2007</year>
          , Nice, France,
          <source>January 17-19</source>
          ,
          <year>2007</year>
          , ACM,
          <year>2007</year>
          , pp.
          <fpage>363</fpage>
          -
          <lpage>375</lpage>
          . doi:
          <volume>10</volume>
          .1145/1190216.1190269.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>N.</given-names>
            <surname>Hoshino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Muroya</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Hasuo</surname>
          </string-name>
          ,
          <article-title>Memoryful geometry of interaction: from coalgebraic components to algebraic efects</article-title>
          , in: T. A.
          <string-name>
            <surname>Henzinger</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Miller</surname>
          </string-name>
          (Eds.),
          <source>Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)</source>
          ,
          <source>CSLLICS '14</source>
          , Vienna, Austria,
          <source>July 14 - 18</source>
          ,
          <year>2014</year>
          , ACM,
          <year>2014</year>
          , pp.
          <volume>52</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>52</lpage>
          :
          <fpage>10</fpage>
          . doi:
          <volume>10</volume>
          .1145/ 2603088.2603124.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>O.</given-names>
            <surname>Laurent</surname>
          </string-name>
          ,
          <article-title>A token machine for full geometry of interaction</article-title>
          , in: S. Abramsky (Ed.),
          <source>Typed Lambda Calculi and Applications</source>
          , 5th International Conference, TLCA 2001, Krakow, Poland, May 2-
          <issue>5</issue>
          ,
          <year>2001</year>
          , Proceedings, volume
          <volume>2044</volume>
          <source>of Lecture Notes in Computer Science</source>
          , Springer,
          <year>2001</year>
          , pp.
          <fpage>283</fpage>
          -
          <lpage>297</lpage>
          . doi:
          <volume>10</volume>
          .1007/3-540-45413-6\_
          <fpage>23</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>G.</given-names>
            <surname>Gonthier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Abadi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-J.</given-names>
            <surname>Lévy</surname>
          </string-name>
          ,
          <article-title>The Geometry of Optimal Lambda Reduction</article-title>
          ,
          <source>in: Proceedings of the 19th POPL</source>
          ,
          <year>1992</year>
          , pp.
          <fpage>15</fpage>
          -
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>U.</given-names>
            <surname>Dal Lago</surname>
          </string-name>
          , U. Schöpp,
          <article-title>Computation by interaction for space-bounded functional programming</article-title>
          ,
          <source>Information and Computation</source>
          <volume>248</volume>
          (
          <year>2016</year>
          )
          <fpage>150</fpage>
          -
          <lpage>194</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.ic.
          <year>2015</year>
          .
          <volume>04</volume>
          .006.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>D.</given-names>
            <surname>Mazza</surname>
          </string-name>
          ,
          <article-title>Simple parsimonious types and logarithmic space</article-title>
          , in: S. Kreutzer (Ed.),
          <source>24th EACSL Annual Conference on Computer Science Logic, CSL 2015, September 7-10</source>
          ,
          <year>2015</year>
          , Berlin, Germany, volume
          <volume>41</volume>
          of LIPIcs,
          <source>Schloss Dagstuhl - Leibniz-Zentrum für Informatik</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>24</fpage>
          -
          <lpage>40</lpage>
          . doi:
          <volume>10</volume>
          .4230/LIPIcs.CSL.
          <year>2015</year>
          .
          <volume>24</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>U.</given-names>
            <surname>Dal Lago</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Faggian</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Hasuo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Yoshimizu</surname>
          </string-name>
          ,
          <article-title>The geometry of synchronization</article-title>
          , in: T. A.
          <string-name>
            <surname>Henzinger</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Miller</surname>
          </string-name>
          (Eds.),
          <source>Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)</source>
          ,
          <source>CSL-LICS '14</source>
          , Vienna, Austria,
          <source>July 14 - 18</source>
          ,
          <year>2014</year>
          , ACM,
          <year>2014</year>
          , pp.
          <volume>35</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>35</lpage>
          :
          <fpage>10</fpage>
          . doi:
          <volume>10</volume>
          .1145/2603088.2603154.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>U.</given-names>
            <surname>Dal Lago</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Faggian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Valiron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Yoshimizu</surname>
          </string-name>
          ,
          <article-title>The geometry of parallelism: classical, probabilistic, and quantum efects</article-title>
          ,
          <source>in: Proceedings of the 44th POPL</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>833</fpage>
          -
          <lpage>845</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>U.</given-names>
            <surname>Dal Lago</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Tanaka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Yoshimizu</surname>
          </string-name>
          ,
          <article-title>The geometry of concurrent interaction: Handling multiple ports by way of multiple tokens</article-title>
          ,
          <source>in: 32nd Annual ACM/IEEE Symposium on Logic</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>