Pentagonal knitting of abstractions

Here is a pentagonal knitting pattern done in chemlambda, as appears after 20 steps:


The knitting is made of abstraction (lambda) nodes, in the middle, bordered by fanin nodes.

The knitting molecule appears after 3 steps, it can be then seen at the top of the figure.

The white small molecules are loops.

This pattern appeared after playing a bit more with switchers. Here is a video about switchers





Fresh brain with no thoughts, yet

I just like his picture obtained with chemlambda


because it gives many ideas, among them the following:

  • if multiplication (reproduction) is Nature’s way to do a fanout
  • and if a brain (and actually the whole organism) grows from a small seed
  • then it must be that we may think about a brain as having one neuron (self-multiplied according to the needs of the computation).

Ergo, the physical brain we see is the concrete embodiment of an universal computing seed, taking physical shape according to physical constraints.

That’s why I like this picture, because it gives ideas.

Here is the first realisation of a (mutant) Turing neuron  in chemlambda

which can be seen as a continuation of the old, but open thread which started with this teaser and continued up to this post on B type neurons.

UPDATE: compare with

which uses the same mechanism for another purpose, the one of assembling a DNA like tape.

I know people hate seeing two ideas in the same post, but here is the second one:

  • at different scales, the same mechanism:
  • be it about the DNA, RNA and proteins in a cell or
  • be it about the chemical connectome of a brain.

If you combine the two ideas from this post, what gives?


The Ackermann function in the chemlambda gui

UPDATE: The Ackermann function, the video:


I put this stuff on G+  some days ago and now I can find it only if I look for it on purpose. Older and newer posts, those I can see. I can see colored lobsters, funny nerd jokes, propaganda pro and con legacy publishing, propaganda hidden behind granpa’s way of communicating science, half baked philosophical ideas,  but not my post which I made only two days ago. On my page, I mean, not elsewhere.

Thank you G+ for this, once again. (Note not for humans: this was ironic.)  Don’t forget to draw another box next time when you think about a new algorithm.

A non-ironic thanks though for the very rare occasions when I did met very interesting people and very interesting ideas there.

OK, to the matter, now. But really, G+, what kind of algorithm you use which keeps a lobster on my page but deletes a post about the Ackermann function?

UPDATE: The post is back in sight now. Whew!
The post follows, slightly edited (by adding stuff).
The Ackermann function is an example of a total computable function which is not primitive recursive. It is therefore amusing to try to compute it.
The matter is not what is the value of Ack(m,n), because it grows so fast that very soon the problem of computing it is shadowed by the more trivial problem of storing its values. Instead,  more interesting is to see how your computing device handles the computation itself, things like stacks of calls, etc, because here it is manifest the fact that Ack is not primitive recursive.
To simplify it, the funny thing is to see how you can compute Ack(m,n) without any cheat.
I tried to do this with #chemlambda . I know since a long time that it can be done, as explained (very summary, true) in this old post
for GLC, not chemlambda (but since chemlambda does with only local moves what GLC does, it’s the same).
I want to show you some pictures about it.
It is about computing Ack(3,2). Everybody will point that Ack(3,2) = 29 and moreover that Ack(3,n) has an explicit expression, but this would be cheating, because I don’t want to use precomputed stuff.
No, what I want to use is a lambda calculus term for the Ackermann function (and one which is not eta reduced, because chemlambda does not have eta reduction!), and I want to apply it to the arguments 3 and 2 written as lambda terms as well (using the Church encoding). Then I want to see if after the reductions performed by the algorithm I have I get 29 as a Church number as well.
During all the algorithm I use only graph reductions!
After all there are no calls, no functions and during the computation the molecules which appear are not even representing lambda terms.
Indeed, lambda calculus does not have operations or concepts like fanin nodes, or FOE nodes, not reductions like FAN-IN or DIST. That’s the amazing point (or at least one of them), that even if it veers outside lambda calculus, it ends where it should (or better, that’s for another time).
I used the programs which are available at the site of the chemlambda gui
(which is btw online again, after 2 days of server corruption.)Here are some pictures.The first one is a screenshot of the Ack(3,2) “molecule”, i.e. the graph which is to be reduced according to the chemlambda rules and according to the reduction strategy which I call “viral”.
After almost 200 reductions I get 29, see the second figure, where it appears as the molecule which represents 29 as a Church numeral.
ack_3_2_finalWow, it really worked!
You can try it for yourself, I’ll give you the mol file to play with, but first some details about it.
I modified a bit the awk script which does the reductions, in the following place: when it introduces new nodes (after a DIST move) it has to invent new names for the new edges. In the script which is available for download the algorithm takes the max over all all ports names and concatenate it with a word which describes where the edge comes from. It is good for being able to track back where the nodes and edges come, but it results into a growth of the ports name which is exponential in the number of iterations of the reduction algorithm. This leads to very big names of some ports, after 200 iterations.
So I modified this part by choosing a naming procedure which is less helpful for tracking but better in the sense that now the growth of names is linear in the number of iterations. It is a quick fix, after all it is as easy to invent naming procedures which result in a logarithmic or almost constant length wrt the number of iterations.
For the Ackermann function the script which is available is just as good, it works well, only that it has this unpleasant feature of long names which enlarges unnecessarily the json files.
Details over, next now.
In the third picture you see the mol file for the Ack(3,2), i.e. the list of nodes and ports of the Ack(3,2) molecule, in the format used by the reduction program.
Btw, do you see in this screenshot the name of the updated script? Right, is foe_bubbles_09_10.awk, instead of foe_bubbles_06_10.awk which is available for download.
I don’t cheat at all, see?
I made some annotations which helps you to see which part corresponds to the Ackermann function (as a lambda term translated into chemlamda), which parts are the arguments “3” and “2”, and finally which part represents the Ackermann function applied to (3,2).
Soon enough, when I’ll be able to show you animated reductions (instead of the steps of reduction only), I think such an example will be very funny to examine, as it grows and then shrinks back to the result.




What is, what we understand and what we communicate about it

One of the major effects of the existence of the Net is that it challenges the cartesian method and shatters the foundations of science.  As the Net is still young and the traditions are old, comparatively, the effect is not yet clearly identified. But it is there already, and even if not named, it is  like a secret ailment which manifests here and there, stronger and stronger.

That which provokes the disease  is a lack of balance in the use  of the various ingredients of the cartesian method. The disbalance is provoked by the effort to fit what is, what we understand and what we communicate about it into the mould of the era when the method has been invented. It just does not fit, therefore it overflows in unexpected ways.

What is. Better is to say what is more, compared with the time when the cartesian metod was invented. There is a new virtual world in the making. Huge quantities of structured data, alternative  worlds evolved from seeds created by programmers, a whole new world of the Internet of Things in the making and, further away but really close though, an unification of the real world (defined as the one where Descartes lived and died) with these new, emerging ones.

The territory, suddenly, got much bigger.

What we understand. Better to say what we understand more than before. A huge body of scientific facts and discoveries which don’t quite fit ones with the others. Quantum mechanics with general Relativity has become an example for old boys and girls. We have models of the parts but we don’t understand C. Elegans with its 302 neurons.  There is though a building understanding of the fact that we do understand much more,  but the tools offer, each,  only a limited point of view. There are looming suspicions that data alone (what is) has more to tell us  than data filtered by a theory. We do understand, or starting to understand that semantics is  only a tool itself, a map maker, not the territory of what is.

The many maps we have don’t fit, we understand.

What we communicate. Better is to say that we communicate today in unparalleled ways than before. But what we communicate is a very small, rigidly formatted part of what we understand. It is hard to communicate science, and the channel constraints are damaging the message.

We have so much to communicate and the semantic maps don’t serve well this purpose.


Going back at the time of the cartesian method, we see that it has been made as a tool for isolated minds and very limited data inflow. More than this, the cartesian method is a collection of prescriptions about how to better understand and how to better communicate the understanding, which makes the rational choice for  those times, but an irrational one for our times:

  • it privileges what we understand over what is,
  • what we communicate over what we understand.
  • Then it optimizes what we communicate for the situation of one human mind which lays down the output in a book.

The book is then supposed to be distributed and multiplied  by means which are not of interest for the author, and then to hit other minds in an unidirectional way.

Descartes writes a book, then somebody else writes another book where he challenges or supports the ideas of a Dead Descartes Book, then yet another one writes a new book which contains references to the Dead Somebody Else Book. That’s the way of the science and Descartes proposed a wonderful path which ensures that the various Books are well written and contain Text as a sort of a program which can be easily debugged.

Descartes rules apply in an indiscriminate way to what is, what we understand and what we communicate about it.

Evidence and details in these two posts:


Saved version for direct download of the chemlambda gui

It appears that the site which hosts my chemlambda gui is down. Here is a save of the the playall archive for the chemlambda gui. You may use it if the original site is down.  Instructions about how to use it in this video:

UPDATE: The site is up again here  and I made a second video with a gun which shoots in two directions


DNA, err… tape replication pictures

Here are the kind of pictures you can get by using the chemlambda visualizer.

UPDATE: Here the first video about it:

Continuing with the post

The first is a screenshot of the initial tape  with bits on it (the tape contains “1010” as an example):

tape_with_bits_0And here is what you get after 6 reductions done by the algorithm:

tape_with_bitsI’ll explain in a moment what I did.

First I wrote the   tape.mol file which represents the initial molecule.

Then I used  which can be downloaded from the explanations/downloads page of the visualizer.

The script waits me to choose a .mol file,  which I did by writing at the prompter tape.mol.

Then I typed firefox look.html &  (use whatever browser with javascript enabled) to see the results.

UPDATE: Attention, just found out that in some versions of safari there is a problem with working with local files. I suspect, but if you know more then please tell me, that even if safari does handle the file// protocol and opens the look.html, it does not handle well the part where the look.html opens the json files file_0.json … file_10.json.

These json files are produced by the scripts, then they are turned into d3 force graphs by look.html.

So, it may happen that safari opens the file look.html, but when you click on the buttons to see the molecules in action, then safari fails to open the json files which look.html needs, so nothing happens further.

I don’t know yet any solution for this, other than “use firefox” for example. There should be an elegant one.

UPDATE 2: solved!  just download playall.tar.gz .


Now, everything (the scripts, libraries, the file look.html) are available at the said downloads page. This specific .mol file can be saved from the link provided.

I clicked on the “initial” button” and I got a whirling molecule. I let it settle a bit and then I used the click and drag to position some of the atoms in a fashion more understandable if there’s no move, in a picture.

Then I took the screenshot with a generic soft.

The same for the second picture, which shows what you get at step 6.  I combed the two replica of the tape (by click and drag) so that it is obvious that the replication went well.

Took a screenshot again.

And that’s it!

This is not yet part of the gallery of examples,  which I recommend in particular for getting other mol files.

The bit which I used (i.e. the green atoms molecule which is on the “tape” in some places) appears in the example named “the bit propagation“.


Varia: updates and preparations

Yesterday I found a bug in one of the programs for the chemlambda visualiser, namely an  unexpected functioning of the priority choice part when applied to a particular mol file (graph).

Today I took it methodically and found two bugs which create that behaviour. One was that the priority choice was not covering all the possibilities in a correct way, the other was a pure programming bug.

So I corrected everything and checked that on the examples from the gallery it works as expected, and also I checked it on many other examples which I have and it works well.

Of course, only to check a program on examples means nothing without a proof that the algorithm works well. I have done that, now the priority choice is indeed well implemented.

What is funny is that by trying to correct the priority choice part I have found the other stupid bug.

OK, so now all the new tar files are marked with 06_10_2014.

And anyway, as everything is open here, you may compare the versions and arrive to your own conclusions.

Mind that in a sense there is still a bug in the main_viral from the “play” archive:  it may happen that at some point the json file which is seen with look.html may be empty. This happens because in the “play” algorithm the loops are erased, and it is possible that a molecule reduces to a collection of loops, hence an empty json file eventually.

No problem with that, by using the “add_new” tar you have an algorithm which does not remove the loops (and also has the FOE node and its new moves). This one works perfectly now.

On a different subject: the  will launch soon. I don’t know yet if chorasimilarity and artificialagora will coexist, or if artificialagora will be the luxury version of chorasimilarity (hope not).

But soon enough we’ll see this.

Chorasimilarity site is still read in a strange way for a blog, because old posts receive comparable hits with new ones. Not all posts are good, for example posts as this one, where I indulge into telling about updates and preparations.


computing with space | open notebook

computing with space | open notebook


Against all odds.

The Quilt Project

writings on data, communication, and computation

Low Dimensional Topology

Recent Progress and Open Problems

Towards a 2nd Renaissance

The Internet of Things & Services: Renaissance Re-Born


A fine site


An expirimental non-gpu 3d voxel engine.

Theory, Evolution, and Games Group

The EGG studies theoretical computer science, evolution, and game theory. *

Out think, out search, out find * A blog by Olivier Charbonneau, Business Librarian at Concordia University (Montréal)

Sauropod Vertebra Picture of the Week

SV-POW! ... All sauropod vertebrae, except when we're talking about Open Access


computing with space | open notebook

DIANABUJA'S BLOG: Africa, The Middle East, Agriculture, History and Culture

Ambling through the present and past with thoughts about the future

Retraction Watch

Tracking retractions as a window into the scientific process


computing with space | open notebook

Theoretical Atlas

He had bought a large map representing the sea, / Without the least vestige of land: / And the crew were much pleased when they found it to be / A map they could all understand.

Gödel's Lost Letter and P=NP

a personal view of the theory of computation

The "Putnam Program"

Language & Brains, Machines & Minds

What's new

Updates on my research and expository papers, discussion of open problems, and other maths-related topics. By Terence Tao

%d bloggers like this: