**FALSE is a hybrid of TRUE**or how boolean values look in chemlambda.

Fact: booleans TRUE and FALSE can be expressed as lambda terms, which can then be turned into chemlambda molecules.

Then we can see how they work, geometrically.

The steps are the following:

**1.**Church encoding gives a way to define boolean values as terms in the lambda calculus.

It is easy:

TRUE= Lx.(Ly.x)

FALSE= Lx.(Ly.y)

So what? When we apply one of these terms to another two, arbitrary terms X and Y, look what happens:

(arrows are beta reductions (Lx.A)B - - > A[x:=B] )

(TRUE X) Y - - > (Ly.X) Y - - > X (meaning Y goes to the garbage)

(FALSE X) Y - - > (Ly.y) Y - - > Y (meaning X goes to the garbage)

It means that TRUE and FALSE select a way for X and Y: one of them survives, the other disappears.

Good: this selection is an essential ingredient for computation

Bad: too wasteful! why send a whole term to the garbage?

Then, we can see it otherwise: there are two outcomes: S(urvival) and G(arbage), there is a pair of terms X and Y.

- TRUE makes X to connect with S and Y to connect with G

- FALSE makes X to connect with G and Y to connect with S

**2.**The terms TRUE and FALSE appear as molecules in chemlambda, each one made of two red nodes (lambdas) and a T (termination) node.

But we may dispense of the T nodes, because they lead to waste, and keep only the lambda nodes.

So in chemlambda the TRUE and FALSE molecules are, each, made of two red (lambda) nodes and they have one FROUT (free out). They look almost alike, only they are wired differently.

We want to see how it looks to apply one term to X and then to Y, where X and Y are arbitrary.

In chemlambda, this means we have to add two green (A) application nodes, so TRUE or FALSE applied to some arbitrary X and Y appear, each,

as a 4 node molecule, made of two red (lambda) two green (A), with two FRIN (free in) nodes corresponding to X and Y and two FROUT (free out) nodes, corresponding: one to the deleted termination node, thus this is the G(arbage) outcome, and the other to the "output" of the lambda terms, thus this is the S(urvival) outcome.

**3.**But the configuration made of two green A nodes and two red L nodes is the familiar

**zipper**which you can look at in the post

https://plus.google.com/+MariusBuliga/posts/Gb4ZEQHrVdj

In the animation you see TRUE (at left) and FALSE (at right), with the magenta FROUT nodes and the yellow FRIN nodes.

The zipper configurations are visible as the two vertical strings made of two green, two red nodes.

What's more? Zippers, they do only one thing: they unzip.

**4.**The wiring of TRUE and FALSE is different. You can see the TRUE and FALSE in the lower part of the animation.

I added four Arrow (white) nodes in order to make the wiring more visible. Arrow nodes are eliminated in the COMB cycle, they have only a fleeting existence

(COMB cycle? see the list of rewrites, mind that colours are different because the background is black, but you can still recognize the patterns, or just read the rewrites

http://chorasimilarity.github.io/chemlambda-gui/dynamic/moves.html )

This shows what is really happening: look at each (TRUE-left, FALSE-right) configuration.

In the upper side you have 4 nodes, two magenta, two yellow, which are wired together at the end of the computation. In the case of TRUE they end up wired in a X pattern, in the case of FALSE they end up wired in a = pattern.

At the same time, in the lower side, before the start of the computation, you see the 4 white nodes which: in the case of TRUE are wired in a X pattern, in the case of FALSE are wired in a = pattern.

So what is happening is that the pattern ( X or = ) is teleported from the 4 white nodes to the 4 magenta-yellow nodes!

**5.**The only difference between the two molecules is in this wire pattern, X vs =. But one is the hybrid of the other, where

**hybridisation**is the operation (akin to the product of knots) which has been used and explained in the post about senescence

https://plus.google.com/+MariusBuliga/posts/MYBXkEb74Zh

and used again in more recent posts.

You just take a pair of bonds and switch the ends.

Therefore TRUE and FALSE are hybrids, one of the other.

**Validation means:**I used the mol file boole.mol and the script quiner.sh from the repository, see instructions here

https://github.com/chorasimilarity/chemlambda-gui/blob/gh-pages/dynamic/README.md

To make this "teleportation" visible I used the fact that I can fix nodes by chick and drag, and release them by double click.

- continues with this post about
**boolean wire**https://plus.google.com/+MariusBuliga/posts/XmRMNQgArUNJun 6, 2015 - These drawing r amazing!!!!!!Jun 6, 2015
- You can make your own :)Jun 7, 2015
- Thanks for posting some of the nomenclature behind chemlab. I'll try to understand your post.Jun 9, 2015

Add a comment...

Related Collections