3.9 KiB
| title | weight |
|---|---|
| Interaction | 2 |
Matchable rays
Usually, in the theory of term unification, we say that two terms (which are
basically rays without polarities) are unifiable where there a substitution
of variables making them equal. For instance f(X) and f(h(Y)) are unifiable
with the substitution {X:=h(Y)} replacing X by h(Y).
We are usually interested in the most general substitution. We could have
{X:=h(c(a)); Y:={c(a)} but it would be less general.
In the same fashion, we say that two rays are matchable when their underlying
terms (obtained by dropping polarities) are unifiable but we also want opposite
polarities to face each other instead of looking for equal symbols: we want
symbols prefixed with + to match same symbols but prefixed with -:
+f(X)and-f(h(a))are matchable with{X:=h(a)};f(X)andf(h(a))are not matchable;+f(X)and+f(h(a))are not matchable;+f(+h(X))and-f(-h(a))are matchable with{X:=a};+f(+h(X))and-f(-h(+a))are matchable with{X:=+a};
Fusion
Stars are able to interact, through an operation called fusion, by using the
principle of Robinson's resolution rule. We define an operator <i,j> with
connects the ith ray of a star to the jth ray of another star.
Fusion is defined as follows for matchable rays r and r':
r r1 ... rk <0,0> r' r1' ... rk' == theta(r1) ... theta(rk) theta(r1') ... theta(rk')
where theta is the most general substitution induced by r and r'.
Notice that:
randr'interact and are annihilated;- the two stars are merged;
- the substitution resolving the conflict between
randr'is propagated to adjacent rays.
For example:
X +f(X) <1,0> -f(a) == a
{{< hint info >}} This corresponds to the cut rule for first-order logic except that we are in a logic-agnostic setting (our symbols do not hold any meaning). {{< /hint >}}
Execution
You have to put a focus on some stars to start a computation as in:
X1, f(X1);
+a(X2 Y2);
@-h(f(X3 Y3)) +a(+f(X4) h(-f(X4)));
An interaction configuration is an expression R |- I' where:
Ris a static constellation called reference constellation. It corresponds to unmarked stars;Iis a dynamic constellation called interaction space. It corresponds to all stars marked by a focus symbol@. It can be seen as a "working space".
The LSC execute constellations by looking for copies of partners in R for
each rays of I, as follows:
- select a ray
riin a starsofI; - look for possible connections with rays
rjbelonging to stars inR; - duplicate
sso that there is exactly one copy ofsinIfor everyrj; - replace every copy by its fusion
s <i,j> s', wheres'is the star to whichrjbelongs; - repeat until there is no possible interaction in
I.
The result of execution consists of all neutral stars that remain in I, i.e.
those without any polarized rays. Indeed, polarized stars are ignored/removed
because they correspond to unfinished (or stuck) computations.
Example
We want to execute the following constellation:
+7(l:X) +7(r:X); 3(X) +8(l:X); @+8(r:X) 6(X);
-7(X) -8(X);
We distinguish an interaction space on which we focus interaction and a
reference constellation where we copy possible partners. We prefix >> for
selected rays. We have:
+7(l:X) +7(r:X); 3(X) +8(l:X); -7(X) >>-8(X) |- >>+8(r:X) 6(X);
+7(l:X) +7(r:X); 3(X) +8(l:X); -7(X) -8(X) |- -7(r:X) 6(X);
+7(l:X) >>+7(r:X); 3(X) +8(l:X); -7(X) -8(X) |- >>-7(r:X) 6(X);
+7(l:X) +7(r:X); 3(X) +8(l:X); -7(X) -8(X) |- +7(l:X) 6(X);
+7(l:X) +7(r:X); 3(X) +8(l:X); >>-7(X) -8(X) |- >>+7(l:X) 6(X);
+7(l:X) +7(r:X); 3(X) +8(l:X); -7(X) -8(X) |- -8(l:X) 6(X);
+7(l:X) +7(r:X); 3(X) >>+8(l:X); -7(X) -8(X) |- >>-8(l:X) 6(X);
+7(l:X) +7(r:X); 3(X) +8(l:X); -7(X) -8(X) |- 3(X) 6(X);
The result of the computation is 3(X) 6(X);.