MARIUS BULIGA

(home)       (research subjects)       (pages to play and learn)
 

 
chemlambda v2
 
Chemlambda v2
 
(chemlambda v2 and hapax mol notation)
 
(Interaction Combinators and Chemlambda quines)
 
(Ouroboros: the story of the first chemlambda quine)
 
original resources
 
Github repository
Demos
Chemlambda for the people - slides
(arXiv) (DOI)- Molecular computers, text version (2018) of the original, open issue for comments at Github
(DOI)- The Chemlambda collection of simulations (2017)
(GitHub)- The library of chemlambda molecules (2016), instructions to use here
(GitHub)- Turing machines, chemlambda style (2015)
(html)- Molecular computers (2015)
(DOI) (journal)- Build a molecular computer. Journal of Brief Ideas (2015)
 

Nodes  
 
chemlambda v2, nodes
 
See this visual tutorial to understand how the nodes and the edges orientations are represented in the simulations, for example this one involving kinesin like graphs.  
 
chemlambda v2, kinesins
 
 
Beta family of graph rewrites  
 
chemlambda v2, beta, FI-FOE
 
DIST family of graph rewrites  
 
chemlambda v2, A-FO, A-FOE
 
chemlambda v2, FI-FO, FO-FOE
 
chemlambda v2, L-FO, L-FOE
 
Pruning family of graph rewrites  
 
chemlambda v2, A-T, FI-T
 
chemlambda v2, L-T
 
chemlambda v2, FO-T, FOE-T
 
alternative to FO-T, FOE-T are FO2-T, FOE2-T, FO3-T, FOE3-T  
 
chemlambda v2, FO2-T, FOE2-T
 
chemlambda v2, FO3-T, FOE3-T
 
Comb family of graph rewrites  
 
chemlambda v2, comb
 
 
Conflicts between rewrites are possible. One of them is between the Beta rewrite and A-FO or A-FOE. This conflict, by itself, does not affect the reduction of molecules (i.e. chemlambda graphs) which represent untyped lambda terms, because of the particular shape of those graphs. See arXiv:1305.5786, section 3, for the algorithm of representing a lambda term as a chemlambda molecule. (Just use the chemlambda v2 node notations for the nodes A, L, FI, FO, T instead of those from GLC from the article, the algorithm is the same.)  
 
Another conflict is between the FO-FOE rewrite and any *-FO rewrite from the DIST family. This conflict has two effects: it produces a supplimentary FO node, which may trigger more DIST rewrites, and it produces a supplimentary FI node which may not meet later a FOE node.  
 
Here are the two possible evolutions of a particular molecule where this happens. The conflict is between a L-FO rewrite and a FO-FOE rewrite. If we pick the L-FO rewrite first then we end with 3 copies of a small molecule (which represents the identity in lambda calculus).  
 
chemlambda v2, L-FO-FOE conflict
 
If we pick the FO-FOE rewrite first then we end with 4 copies of that small molecule, two of them connected to a FI node. Ther are more possible paths to the end result than those shown, depending on the order of application of FI-FOE and L-FO rewrites, but all end into the same place.  
 
chemlambda v2, L-FO-FOE conflict
 
There are several techniques to compensate for this phenomenon, from careful redesigning the molecule (an example. Or another example). The last one can be further modified to this simulation of a molecule inspired from the factorial of 5.  
 
chemlambda v2, tubefact
 
 
My favorite technique, which has the right chemical blend, is: amplify, let the reaction end, sample for result. We can always anihilate the unwanted FI nodes by replacing FROUT nodes with a sufficiently long chain of FOE nodes, and FRIN nodes, if they are present, with the same number of FI nodes.  
 
Creative Commons License  
 
content licensed (CC BY 4.0) unless otherwise specified