<p>Quoting from the paper:</p>
<blockquote>
<p>It is possible to define rules which lead to non-terminating computations, [...] but further constraints on nets can ensure that when a sequence of reductions terminates, the result can be interpreted as a meaningful answer rather than a deadlock situation.</p>
</blockquote>
<p>and:</p>
<blockquote>
<p>But if the net contains cycles, the situation is a deadlock, and it is these cases which should be eliminated.</p>
</blockquote>
<p>The goal is apparently to avoid deadlock.  Thus, my reading is that the design seeks to find a way to prevent construction of cycles that could cause deadlock.</p>

CC BY-SA 4.0
2023-01-21T04:46:33.720Z
Hi again. To understand bad cycles better, what is the difference between these cycles: "However, it is possible to distinguish between innocuous and pathological cycles"? What happens when it is say a deadlock that is different than when it is not?
geeko
CC BY-SA 4.0
2023-01-21T04:49:11.120Z
Also, I would like someone to explain this solution to me and why it works: "The solution is to divide the ports of each agent into partitions which are used in the following way. If a net is built up from the empty net by successively adding agents, which may or may not be connected to existing agents, then at any time the net consists of a number of connected components. Connecting two or more ports of a new agent to a single component forms a cycle in the net. The rule is that this can only be done if all the ports being connected to the same component are in the same partition."
geeko
CC BY-SA 4.0
2023-01-20T19:05:00.550Z
2023-01-20T19:05:00.550Z
D.W.
<p>Could someone explain to me the following quote from <a href="https://www.dcs.gla.ac.uk/%7Esimon/publications/diploma.pdf" rel="nofollow noreferrer">Interaction Nets 1991 paper by Simon Gay</a>. To be specific, what are bad cycles and how connected ports in the same partition eliminates them?</p>
<blockquote>
<p>The solution is to divide the ports of each agent into partitions
which are used in the following way. If a net is built up from the
empty net by successively adding agents, which may or may not be
connected to existing agents, then at any time the net consists of a
number of connected components. Connecting two or more ports of a new
agent to a single component forms a cycle in the net. The rule is that
this can only be done if all the ports being connected to the same
component are in the same partition. This guarantees that nets
containing bad cycles cannot be constructed; and, since the same
constraint applies to the net on the right hand side of an interaction
rule, that no bad cycles can be introduced by reductions.</p>
</blockquote>

CC BY-SA 4.0
2023-01-20T06:48:43.180Z
Can you [edit] your post to ask a more specific question and clarify what you are asking?  "I cannot fully get..." is not a question.  I'm not sure what you mean by "what kind..." or what it means to "element" a cycle.  It might help to tell us what you *do* understand and summarize the main ideas of the paper as you do understand them.
D.W.
CC BY-SA 4.0
2023-01-20T09:54:14.803Z
@D.W. Hi and thx for passing by. I have added more specific questions in my edit. Hopefully, someone can help me answering them.
geeko
CC BY-SA 4.0
2023-01-25T09:21:05.890Z
I am not sure I'll find the time to write an answer (sorry!), but you should look at Lafont's original paper (https://dl.acm.org/doi/pdf/10.1145/96709.96718), it defines everything formally and is much clearer.
Damiano Mazza
<recursion><interaction-nets>
Bad Cycles in Interaction Nets
geeko
# Bad Cycles in Interaction Nets

(Asked by: username_0 on 2023-01-20)

Could someone explain to me the following quote from [Interaction Nets 1991 paper by Simon Gay](https://www.dcs.gla.ac.uk/%7Esimon/publications/diploma.pdf). To be specific, what are bad cycles and how connected ports in the same partition eliminates them?

> The solution is to divide the ports of each agent into partitions
> which are used in the following way. If a net is built up from the
> empty net by successively adding agents, which may or may not be
> connected to existing agents, then at any time the net consists of a
> number of connected components. Connecting two or more ports of a new
> agent to a single component forms a cycle in the net. The rule is that
> this can only be done if all the ports being connected to the same
> component are in the same partition. This guarantees that nets
> containing bad cycles cannot be constructed; and, since the same
> constraint applies to the net on the right hand side of an interaction
> rule, that no bad cycles can be introduced by reductions.

**Tags:** recursion, interaction-nets
> **Comments:**
> **username_1**: Can you [edit] your post to ask a more specific question and clarify what you are asking?  "I cannot fully get..." is not a question.  I'm not sure what you mean by "what kind..." or what it means to "element" a cycle.  It might help to tell us what you *do* understand and summarize the main ideas of the paper as you do understand them.  
> **username_0**: @D.W. Hi and thx for passing by. I have added more specific questions in my edit. Hopefully, someone can help me answering them.  
> **username_2**: I am not sure I'll find the time to write an answer (sorry!), but you should look at Lafont's original paper (https://dl.acm.org/doi/pdf/10.1145/96709.96718), it defines everything formally and is much clearer.  

---

## 1 answers

### Answer by username_1 on 2023-01-20. Score: 1

Quoting from the paper:

> It is possible to define rules which lead to non-terminating computations, [...] but further constraints on nets can ensure that when a sequence of reductions terminates, the result can be interpreted as a meaningful answer rather than a deadlock situation.

and:

> But if the net contains cycles, the situation is a deadlock, and it is these cases which should be eliminated.

The goal is apparently to avoid deadlock. Thus, my reading is that the design seeks to find a way to prevent construction of cycles that could cause deadlock.

> **Comments:**
> **username_0**: Hi again. To understand bad cycles better, what is the difference between these cycles: "However, it is possible to distinguish between innocuous and pathological cycles"? What happens when it is say a deadlock that is different than when it is not?  
> **username_0**: Also, I would like someone to explain this solution to me and why it works: "The solution is to divide the ports of each agent into partitions which are used in the following way. If a net is built up from the empty net by successively adding agents, which may or may not be connected to existing agents, then at any time the net consists of a number of connected components. Connecting two or more ports of a new agent to a single component forms a cycle in the net. The rule is that this can only be done if all the ports being connected to the same component are in the same partition."  

---

